Class SparseSpatialMap
Fornece as principais funções do sistema SparseSpatialMap, incluindo geração e armazenamento de mapas, carregamento e localização de mapas, além de obter informações ambientais como nuvem de pontos, planos e realizar hit Test.
SparseSpatialMap ocupa 2 buffers de camera. Use setBufferCapacity da camera para configurar um número não inferior ao total de buffers de camera ocupados por todos os componentes.
SparseSpatialMap
Métodos
isAvailable
Verifica se o SparseSpatialMap está disponível. Sempre retorna 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()
Retorna
Porta de entrada de frames de entrada. O frame de entrada para SparseSpatialMap deve conter parâmetros da camera, informações de timestamp e informações espaciais (cameraTransform e trackingStatus). Consulte InputFrameSink.
Nota: A camera suporta modelos de câmera pinhole e fisheye; o desempenho será afetado ao usar uma câmera fisheye.
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()
Retorna
bufferRequirement
Número de buffers de camera ocupados pelo componente atual.
int easyar_SparseSpatialMap_bufferRequirement(easyar_SparseSpatialMap * This)
public int bufferRequirement()
fun bufferRequirement(): Int
public func bufferRequirement() -> Int32
public virtual int bufferRequirement()
Retorna
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()
Retorna
create
Constrói o 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()
Retorna
setResultPoseType
Define o tipo de postura do resultado. Por padrão, enableStabilization é false. Só é eficaz quando InputFrame contém informações espaciais.
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)
Parâmetros
| Nome |
Tipo |
Descrição |
| enableStabilization |
Boolean |
|
Retorna
setResultAsyncMode
Define o modo assíncrono do resultado. Se o resultado for emitido via outputFrameSource, defina como true; se o resultado for obtido via getSyncResult, defina como false. Por padrão, enableAsync é true. O modo síncrono só é eficaz quando o frame de entrada contém informações espaciais e uma licença XR é usada.
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)
Parâmetros
| Nome |
Tipo |
Descrição |
| enableAsync |
Boolean |
|
Retorna
start
Inicia o algoritmo SparseSpatialMap.
bool easyar_SparseSpatialMap_start(easyar_SparseSpatialMap * This)
public func start() -> Bool
public virtual bool start()
Retorna
stop
Para o algoritmo SparseSpatialMap. Chame start para executar novamente.
void easyar_SparseSpatialMap_stop(easyar_SparseSpatialMap * This)
public func stop() -> Void
public virtual void stop()
Retorna
close
Fecha o SparseSpatialMap. Não deve continuar a ser usado após close.
void easyar_SparseSpatialMap_close(easyar_SparseSpatialMap * This)
public func close() -> Void
public virtual void close()
Retorna
getPointCloudBuffer
Obtém informações de posição dos dados atuais da nuvem de pontos. As posições da nuvem de pontos estão no sistema de coordenadas mundial. Cada ponto no buffer é representado por três valores consecutivos, correspondendo às coordenadas nos eixos X, Y e Z, com cada valor ocupando 4 bytes.
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()
Retorna
getMapPlanes
Obtém os planos detectados, do tipo 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()
Retorna
hitTestAgainstPointCloud
Realiza Hit Test na nuvem de pontos atual, obtendo as coordenadas de n (n>=0) posições ao longo de um raio da câmera, ordenadas da mais próxima para a mais distante.
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)
Parâmetros
| Nome |
Tipo |
Descrição |
| cameraImagePoint |
Vec2F |
|
Retorna
| Tipo |
Descrição |
| List<Vec3F> |
|
hitTestAgainstPlanes
Realiza Hit Test no plano detectado atual, obtendo as coordenadas de n (n>=0) posições ao longo de um raio da câmera, ordenadas da mais próxima para a mais distante.
As coordenadas de entrada no sistema de imagem ([0, 1]^2) têm x para a direita e y para baixo, com origem no canto superior esquerdo. Use imageCoordinatesFromScreenCoordinates para converter coordenadas de tela em coordenadas de imagem.
A saída são as coordenadas da nuvem de pontos no sistema de coordenadas mundial.
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)
Parâmetros
| Nome |
Tipo |
Descrição |
| cameraImagePoint |
Vec2F |
|
Retorna
| Tipo |
Descrição |
| List<Vec3F> |
|
getMapVersion
Obtém a versão do mapa atual do 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()
Retorna
unloadMap
Descarrega os dados de mapa SparseSpatialMap especificados por callback. O retorno do callback indica se o descarregamento foi bem-sucedido (true) ou não (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)
Parâmetros
| Nome |
Tipo |
Descrição |
| mapID |
String |
|
| callbackScheduler |
CallbackScheduler |
|
| resultCallBack |
Optional<Action<>> |
|
Retorna
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)
Parâmetros
Retorna
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()
Retorna
startLocalization
Inicia a tentativa de localização dentro dos mapas já carregados. Antes disso, os parâmetros de configuração necessários devem ser definidos. Consulte LocalizationMode.
bool easyar_SparseSpatialMap_startLocalization(easyar_SparseSpatialMap * This)
public boolean startLocalization()
fun startLocalization(): Boolean
- (bool)startLocalization
public func startLocalization() -> Bool
public virtual bool startLocalization()
Retorna
stopLocalization
Interrompe o processo de localização atual.
void easyar_SparseSpatialMap_stopLocalization(easyar_SparseSpatialMap * This)
public void stopLocalization()
fun stopLocalization(): Unit
public func stopLocalization() -> Void
public virtual void stopLocalization()
Retorna
getSyncResult
Obtém o resultado de saída sincronizado. Retorna vazio se o SparseSpatialMap estiver pausado ou se o modo de resultado assíncrono não tiver sido definido como false via 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)
Parâmetros
Retorna