Class SparseSpatialMap
Предоставляет основные функции системы SparseSpatialMap, включая генерацию и хранение карт, загрузку карт и локализацию, а также возможность получения информации об окружающей среде, такой как облака точек, плоскости, и выполнение hitTest.
SparseSpatialMap использует 2 буфера камеры. Следует использовать setBufferCapacity камеры для установки количества буферов камеры, не меньшего, чем количество, используемое всеми компонентами.
SparseSpatialMap
Методы
isAvailable
Проверяет, доступен ли SparseSpatialMap. Всегда возвращает true.
bool easyar_SparseSpatialMap_isAvailable(void)
static bool isAvailable()
public static boolean isAvailable()
companion object fun isAvailable(): Boolean
public static func isAvailable() -> Bool
public static bool isAvailable()
Возвращаемое значение
Входной порт для входных кадров. Входные кадры SparseSpatialMap должны содержать параметры камеры, информацию о временной метке и пространственную информацию (cameraTransform и trackingStatus). См. InputFrameSink.
Примечание: камера поддерживает модели камеры с точечным отверстием и рыбий глаз, использование камеры с рыбим глазом может повлиять на производительность.
void easyar_SparseSpatialMap_inputFrameSink(easyar_SparseSpatialMap * This, easyar_InputFrameSink * * Return)
std::shared_ptr<InputFrameSink> inputFrameSink()
public @Nonnull InputFrameSink inputFrameSink()
fun inputFrameSink(): InputFrameSink
- (easyar_InputFrameSink *)inputFrameSink
public func inputFrameSink() -> InputFrameSink
public virtual InputFrameSink inputFrameSink()
Возвращаемое значение
bufferRequirement
Количество буферов камеры, используемых текущим компонентом.
int easyar_SparseSpatialMap_bufferRequirement(easyar_SparseSpatialMap * This)
public int bufferRequirement()
fun bufferRequirement(): Int
public func bufferRequirement() -> Int32
public virtual int bufferRequirement()
Возвращаемое значение
outputFrameSource
void easyar_SparseSpatialMap_outputFrameSource(easyar_SparseSpatialMap * This, easyar_OutputFrameSource * * Return)
std::shared_ptr<OutputFrameSource> outputFrameSource()
public @Nonnull OutputFrameSource outputFrameSource()
fun outputFrameSource(): OutputFrameSource
- (easyar_OutputFrameSource *)outputFrameSource
public func outputFrameSource() -> OutputFrameSource
public virtual OutputFrameSource outputFrameSource()
Возвращаемое значение
create
Конструирует SparseSpatialMap.
void easyar_SparseSpatialMap_create(easyar_SparseSpatialMap * * Return)
static std::shared_ptr<SparseSpatialMap> create()
public static @Nonnull SparseSpatialMap create()
companion object fun create(): SparseSpatialMap
+ (easyar_SparseSpatialMap *)create
public static func create() -> SparseSpatialMap
public static SparseSpatialMap create()
Возвращаемое значение
setResultPoseType
Устанавливает тип стабилизации результата. По умолчанию enableStabilization равно false. Действительно только если InputFrame содержит пространственную информацию.
void easyar_SparseSpatialMap_setResultPoseType(easyar_SparseSpatialMap * This, bool enableStabilization)
void setResultPoseType(bool enableStabilization)
public void setResultPoseType(boolean enableStabilization)
fun setResultPoseType(enableStabilization: Boolean): Unit
- (void)setResultPoseType:(bool)enableStabilization
public func setResultPoseType(_ enableStabilization: Bool) -> Void
public virtual void setResultPoseType(bool enableStabilization)
Параметры
| Имя |
Тип |
Описание |
| enableStabilization |
Boolean |
|
Возвращаемое значение
setResultAsyncMode
Устанавливает асинхронный режим для результатов. Если результаты выводятся через outputFrameSource, следует установить в true; если результаты получаются через getSyncResult, следует установить в false. По умолчанию enableAsync равно true. Синхронный режим работает только если входной кадр содержит пространственную информацию и используется XR License.
bool easyar_SparseSpatialMap_setResultAsyncMode(easyar_SparseSpatialMap * This, bool enableAsync)
bool setResultAsyncMode(bool enableAsync)
public boolean setResultAsyncMode(boolean enableAsync)
fun setResultAsyncMode(enableAsync: Boolean): Boolean
- (bool)setResultAsyncMode:(bool)enableAsync
public func setResultAsyncMode(_ enableAsync: Bool) -> Bool
public virtual bool setResultAsyncMode(bool enableAsync)
Параметры
| Имя |
Тип |
Описание |
| enableAsync |
Boolean |
|
Возвращаемое значение
start
Запускает алгоритм SparseSpatialMap.
bool easyar_SparseSpatialMap_start(easyar_SparseSpatialMap * This)
public func start() -> Bool
public virtual bool start()
Возвращаемое значение
stop
Останавливает алгоритм SparseSpatialMap. Вызовите start для повторного запуска.
void easyar_SparseSpatialMap_stop(easyar_SparseSpatialMap * This)
public func stop() -> Void
public virtual void stop()
Возвращаемое значение
close
Закрывает SparseSpatialMap. Не следует использовать после close.
void easyar_SparseSpatialMap_close(easyar_SparseSpatialMap * This)
public func close() -> Void
public virtual void close()
Возвращаемое значение
getPointCloudBuffer
Получает информацию о местоположении текущих данных облака точек. Положения облака точек находятся в мировой системе координат, каждый точку в буфере представляют три последовательных значения, обозначающих координаты по осям X, Y, Z, каждое значение занимает 4 байта.
void easyar_SparseSpatialMap_getPointCloudBuffer(easyar_SparseSpatialMap * This, easyar_Buffer * * Return)
std::shared_ptr<Buffer> getPointCloudBuffer()
public @Nonnull Buffer getPointCloudBuffer()
fun getPointCloudBuffer(): Buffer
- (easyar_Buffer *)getPointCloudBuffer
public func getPointCloudBuffer() -> Buffer
public virtual Buffer getPointCloudBuffer()
Возвращаемое значение
getMapPlanes
Получает обнаруженные плоскости, тип PlaneType.
void easyar_SparseSpatialMap_getMapPlanes(easyar_SparseSpatialMap * This, easyar_ListOfPlaneData * * Return)
std::vector<std::shared_ptr<PlaneData>> getMapPlanes()
public java.util.@Nonnull ArrayList<@Nonnull PlaneData> getMapPlanes()
fun getMapPlanes(): ArrayList<PlaneData>
- (NSArray<easyar_PlaneData *> *)getMapPlanes
public func getMapPlanes() -> [PlaneData]
public virtual List<PlaneData> getMapPlanes()
Возвращаемое значение
hitTestAgainstPointCloud
Выполняет HitTest в текущем облаке точек, получает n (n>=0) координат местоположения вдоль луча от камеры от ближнего к дальнему.
void easyar_SparseSpatialMap_hitTestAgainstPointCloud(easyar_SparseSpatialMap * This, easyar_Vec2F cameraImagePoint, easyar_ListOfVec3F * * Return)
std::vector<Vec3F> hitTestAgainstPointCloud(Vec2F cameraImagePoint)
public java.util.@Nonnull ArrayList<@Nonnull Vec3F> hitTestAgainstPointCloud(@Nonnull Vec2F cameraImagePoint)
fun hitTestAgainstPointCloud(cameraImagePoint: Vec2F): ArrayList<Vec3F>
- (NSArray<easyar_Vec3F *> *)hitTestAgainstPointCloud:(easyar_Vec2F *)cameraImagePoint
public func hitTestAgainstPointCloud(_ cameraImagePoint: Vec2F) -> [Vec3F]
public virtual List<Vec3F> hitTestAgainstPointCloud(Vec2F cameraImagePoint)
Параметры
| Имя |
Тип |
Описание |
| cameraImagePoint |
Vec2F |
|
Возвращаемое значение
hitTestAgainstPlanes
Выполняет HitTest на текущей обнаруженной плоскости, получает n (n>=0) координат местоположения вдоль луча от камеры от ближнего к дальнему.
Входная система координат изображения ([0, 1]^2) имеет x вправо, y вниз, начало координат в левом верхнем углу. Можно использовать imageCoordinatesFromScreenCoordinates для преобразования экранных координат в координаты изображения.
Выходные данные - координаты облака точек в мировой системе координат.
void easyar_SparseSpatialMap_hitTestAgainstPlanes(easyar_SparseSpatialMap * This, easyar_Vec2F cameraImagePoint, easyar_ListOfVec3F * * Return)
std::vector<Vec3F> hitTestAgainstPlanes(Vec2F cameraImagePoint)
public java.util.@Nonnull ArrayList<@Nonnull Vec3F> hitTestAgainstPlanes(@Nonnull Vec2F cameraImagePoint)
fun hitTestAgainstPlanes(cameraImagePoint: Vec2F): ArrayList<Vec3F>
- (NSArray<easyar_Vec3F *> *)hitTestAgainstPlanes:(easyar_Vec2F *)cameraImagePoint
public func hitTestAgainstPlanes(_ cameraImagePoint: Vec2F) -> [Vec3F]
public virtual List<Vec3F> hitTestAgainstPlanes(Vec2F cameraImagePoint)
Параметры
| Имя |
Тип |
Описание |
| cameraImagePoint |
Vec2F |
|
Возвращаемое значение
getMapVersion
Получает текущую версию карты SparseSpatialMap.
void easyar_SparseSpatialMap_getMapVersion(easyar_String * * Return)
static std::string getMapVersion()
public static java.lang.@Nonnull String getMapVersion()
companion object fun getMapVersion(): String
+ (NSString *)getMapVersion
public static func getMapVersion() -> String
public static string getMapVersion()
Возвращаемое значение
unloadMap
Выгружает указанные данные карты SparseSpatialMap через обратный вызов. Можно определить, успешна ли выгрузка, по возвращаемому значению обратного вызова: возвращает true при успехе, false в противном случае.
void easyar_SparseSpatialMap_unloadMap(easyar_SparseSpatialMap * This, easyar_String * mapID, easyar_CallbackScheduler * callbackScheduler, easyar_OptionalOfFunctorOfVoidFromBool resultCallBack)
void unloadMap(std::string mapID, std::shared_ptr<CallbackScheduler> callbackScheduler, std::optional<std::function<void(bool)>> resultCallBack)
public void unloadMap(java.lang.@Nonnull String mapID, @Nonnull CallbackScheduler callbackScheduler, @Nullable FunctorOfVoidFromBool resultCallBack)
fun unloadMap(mapID: String, callbackScheduler: CallbackScheduler, resultCallBack: FunctorOfVoidFromBool?): Unit
- (void)unloadMap:(NSString *)mapID callbackScheduler:(easyar_CallbackScheduler *)callbackScheduler resultCallBack:(void (^)(bool))resultCallBack
public func unloadMap(_ mapID: String, _ callbackScheduler: CallbackScheduler, _ resultCallBack: ((Bool) -> Void)?) -> Void
public virtual void unloadMap(string mapID, CallbackScheduler callbackScheduler, Optional<Action<bool>> resultCallBack)
Параметры
| Имя |
Тип |
Описание |
| mapID |
String |
|
| callbackScheduler |
CallbackScheduler |
|
| resultCallBack |
Optional<Action<>> |
|
Возвращаемое значение
setConfig
void easyar_SparseSpatialMap_setConfig(easyar_SparseSpatialMap * This, easyar_SparseSpatialMapConfig * config)
void setConfig(std::shared_ptr<SparseSpatialMapConfig> config)
public void setConfig(@Nonnull SparseSpatialMapConfig config)
fun setConfig(config: SparseSpatialMapConfig): Unit
- (void)setConfig:(easyar_SparseSpatialMapConfig *)config
public func setConfig(_ config: SparseSpatialMapConfig) -> Void
public virtual void setConfig(SparseSpatialMapConfig config)
Параметры
Возвращаемое значение
getConfig
void easyar_SparseSpatialMap_getConfig(easyar_SparseSpatialMap * This, easyar_SparseSpatialMapConfig * * Return)
std::shared_ptr<SparseSpatialMapConfig> getConfig()
public @Nonnull SparseSpatialMapConfig getConfig()
fun getConfig(): SparseSpatialMapConfig
- (easyar_SparseSpatialMapConfig *)getConfig
public func getConfig() -> SparseSpatialMapConfig
public virtual SparseSpatialMapConfig getConfig()
Возвращаемое значение
startLocalization
Начинает попытку локализации в загруженной карте. Перед этим необходимо установить требуемые параметры конфигурации. См. LocalizationMode.
bool easyar_SparseSpatialMap_startLocalization(easyar_SparseSpatialMap * This)
public boolean startLocalization()
fun startLocalization(): Boolean
- (bool)startLocalization
public func startLocalization() -> Bool
public virtual bool startLocalization()
Возвращаемое значение
stopLocalization
Останавливает текущий процесс локализации.
void easyar_SparseSpatialMap_stopLocalization(easyar_SparseSpatialMap * This)
public void stopLocalization()
fun stopLocalization(): Unit
public func stopLocalization() -> Void
public virtual void stopLocalization()
Возвращаемое значение
getSyncResult
Получает синхронный выходной результат. Если SparseSpatialMap приостановлен или асинхронный режим результатов не установлен в false через setResultAsyncMode, возвращаемое значение пусто.
void easyar_SparseSpatialMap_getSyncResult(easyar_SparseSpatialMap * This, easyar_MotionInputData * motionInputData, easyar_OptionalOfSparseSpatialMapResult * Return)
std::optional<std::shared_ptr<SparseSpatialMapResult>> getSyncResult(std::shared_ptr<MotionInputData> motionInputData)
public @Nullable SparseSpatialMapResult getSyncResult(@Nonnull MotionInputData motionInputData)
fun getSyncResult(motionInputData: MotionInputData): SparseSpatialMapResult?
- (easyar_SparseSpatialMapResult *)getSyncResult:(easyar_MotionInputData *)motionInputData
public func getSyncResult(_ motionInputData: MotionInputData) -> SparseSpatialMapResult?
public virtual Optional<SparseSpatialMapResult> getSyncResult(MotionInputData motionInputData)
Параметры
Возвращаемое значение