SparseSpatialMap Class¶
Description¶
Provides core components for SparseSpatialMap, can be used for sparse spatial map building as well as localization using existing map. Also provides utilities for point cloud and plane access.
SparseSpatialMap occupies 2 buffers of camera. Use setBufferCapacity of camera to set an amount of buffers that is not less than the sum of amount of buffers occupied by all components. Refer to Overview .
isAvailable¶
Check whether SparseSpatialMap is is available, always return true.
- C
bool easyar_SparseSpatialMap_isAvailable(void)
- C++
static bool isAvailable()
- Java
public static boolean isAvailable()
- Kotlin
companion object fun isAvailable(): Boolean
- Objective-C
+ (bool)isAvailable
- Swift
public static func isAvailable() -> Bool
- C#
public static bool isAvailable()
inputFrameSink¶
Input port for input frame. For SparseSpatialMap to work, the inputFrame must include camera parameters, timestamp and spatial information. See also InputFrameSink
Note: Both pinhole and fisheye camera are supported. But performance may decrease while using a fisheye camera.
- C
void easyar_SparseSpatialMap_inputFrameSink(easyar_SparseSpatialMap * This, easyar_InputFrameSink * * Return)
- C++
std::shared_ptr<InputFrameSink> inputFrameSink()
- Java
public @Nonnull InputFrameSink inputFrameSink()
- Kotlin
fun inputFrameSink(): InputFrameSink
- Objective-C
- (easyar_InputFrameSink *)inputFrameSink
- Swift
public func inputFrameSink() -> InputFrameSink
- C#
public virtual InputFrameSink inputFrameSink()
bufferRequirement¶
Camera buffers occupied in this component.
- C
int easyar_SparseSpatialMap_bufferRequirement(easyar_SparseSpatialMap * This)
- C++
int bufferRequirement()
- Java
public int bufferRequirement()
- Kotlin
fun bufferRequirement(): Int
- Objective-C
- (int)bufferRequirement
- Swift
public func bufferRequirement() -> Int32
- C#
public virtual int bufferRequirement()
outputFrameSource¶
Output port for output frame. See also OutputFrameSource
- C
void easyar_SparseSpatialMap_outputFrameSource(easyar_SparseSpatialMap * This, easyar_OutputFrameSource * * Return)
- C++
std::shared_ptr<OutputFrameSource> outputFrameSource()
- Java
public @Nonnull OutputFrameSource outputFrameSource()
- Kotlin
fun outputFrameSource(): OutputFrameSource
- Objective-C
- (easyar_OutputFrameSource *)outputFrameSource
- Swift
public func outputFrameSource() -> OutputFrameSource
- C#
public virtual OutputFrameSource outputFrameSource()
create¶
Construct SparseSpatialMap.
- C
void easyar_SparseSpatialMap_create(easyar_SparseSpatialMap * * Return)
- C++
static std::shared_ptr<SparseSpatialMap> create()
- Java
public static @Nonnull SparseSpatialMap create()
- Kotlin
companion object fun create(): SparseSpatialMap
- Objective-C
+ (easyar_SparseSpatialMap *)create
- Swift
public static func create() -> SparseSpatialMap
- C#
public static SparseSpatialMap create()
setResultPoseType¶
Sets type of result pose. enableStabilization defaults to false. It only takes effect when InputFrame contains spatial information.
- C
void easyar_SparseSpatialMap_setResultPoseType(easyar_SparseSpatialMap * This, bool enableStabilization)
- C++
void setResultPoseType(bool enableStabilization)
- Java
public void setResultPoseType(boolean enableStabilization)
- Kotlin
fun setResultPoseType(enableStabilization: Boolean): Unit
- Objective-C
- (void)setResultPoseType:(bool)enableStabilization
- Swift
public func setResultPoseType(_ enableStabilization: Bool) -> Void
- C#
public virtual void setResultPoseType(bool enableStabilization)
setResultAsyncMode¶
Sets result async mode. Set true If results are to be outputted via outputFrameSource, false if results are to be fetched via getSyncResult. enableAsync defaults to true. Sync mode is only available with input frames including spatial information and with a XR license.
- C
bool easyar_SparseSpatialMap_setResultAsyncMode(easyar_SparseSpatialMap * This, bool enableAsync)
- C++
bool setResultAsyncMode(bool enableAsync)
- Java
public boolean setResultAsyncMode(boolean enableAsync)
- Kotlin
fun setResultAsyncMode(enableAsync: Boolean): Boolean
- Objective-C
- (bool)setResultAsyncMode:(bool)enableAsync
- Swift
public func setResultAsyncMode(_ enableAsync: Bool) -> Bool
- C#
public virtual bool setResultAsyncMode(bool enableAsync)
start¶
Start SparseSpatialMap system.
- C
bool easyar_SparseSpatialMap_start(easyar_SparseSpatialMap * This)
- C++
bool start()
- Java
public boolean start()
- Kotlin
fun start(): Boolean
- Objective-C
- (bool)start
- Swift
public func start() -> Bool
- C#
public virtual bool start()
stop¶
Stop SparseSpatialMap from running。Can resume running by calling start().
- C
void easyar_SparseSpatialMap_stop(easyar_SparseSpatialMap * This)
- C++
void stop()
- Java
public void stop()
- Kotlin
fun stop(): Unit
- Objective-C
- (void)stop
- Swift
public func stop() -> Void
- C#
public virtual void stop()
close¶
Close SparseSpatialMap. SparseSpatialMap can no longer be used.
- C
void easyar_SparseSpatialMap_close(easyar_SparseSpatialMap * This)
- C++
void close()
- Java
public void close()
- Kotlin
fun close(): Unit
- Objective-C
- (void)close
- Swift
public func close() -> Void
- C#
public virtual void close()
getPointCloudBuffer¶
Returns the buffer of point cloud coordinate. Each 3D point is represented by three consecutive values, representing X, Y, Z position coordinates in the world coordinate space, each of which takes 4 bytes.
- C
void easyar_SparseSpatialMap_getPointCloudBuffer(easyar_SparseSpatialMap * This, easyar_Buffer * * Return)
- C++
std::shared_ptr<Buffer> getPointCloudBuffer()
- Java
public @Nonnull Buffer getPointCloudBuffer()
- Kotlin
fun getPointCloudBuffer(): Buffer
- Objective-C
- (easyar_Buffer *)getPointCloudBuffer
- Swift
public func getPointCloudBuffer() -> Buffer
- C#
public virtual Buffer getPointCloudBuffer()
getMapPlanes¶
Returns detected planes in SparseSpatialMap.
- C
void easyar_SparseSpatialMap_getMapPlanes(easyar_SparseSpatialMap * This, easyar_ListOfPlaneData * * Return)
- C++
std::vector<std::shared_ptr<PlaneData>> getMapPlanes()
- Java
public java.util.@Nonnull ArrayList<@Nonnull PlaneData> getMapPlanes()
- Kotlin
fun getMapPlanes(): ArrayList<PlaneData>
- Objective-C
- (NSArray<easyar_PlaneData *> *)getMapPlanes
- Swift
public func getMapPlanes() -> [PlaneData]
- C#
public virtual List<PlaneData> getMapPlanes()
hitTestAgainstPointCloud¶
Perform hit test against the point cloud. The results are returned sorted by their distance to the camera in ascending order.
- C
void easyar_SparseSpatialMap_hitTestAgainstPointCloud(easyar_SparseSpatialMap * This, easyar_Vec2F cameraImagePoint, easyar_ListOfVec3F * * Return)
- C++
std::vector<Vec3F> hitTestAgainstPointCloud(Vec2F cameraImagePoint)
- Java
public java.util.@Nonnull ArrayList<@Nonnull Vec3F> hitTestAgainstPointCloud(@Nonnull Vec2F cameraImagePoint)
- Kotlin
fun hitTestAgainstPointCloud(cameraImagePoint: Vec2F): ArrayList<Vec3F>
- Objective-C
- (NSArray<easyar_Vec3F *> *)hitTestAgainstPointCloud:(easyar_Vec2F *)cameraImagePoint
- Swift
public func hitTestAgainstPointCloud(_ cameraImagePoint: Vec2F) -> [Vec3F]
- C#
public virtual List<Vec3F> hitTestAgainstPointCloud(Vec2F cameraImagePoint)
hitTestAgainstPlanes¶
Performs ray cast from the user’s device in the direction of given screen point.
Intersections with detected planes are returned. 3D positions on physical planes are sorted by distance from the device in ascending order.
For the camera image coordinate system ([0, 1]^2), x-right, y-down, and origin is at left-top corner. CameraParameters.imageCoordinatesFromScreenCoordinates can be used to convert points from screen coordinate system to camera image coordinate system.
The output point cloud coordinate is in the world coordinate system.
- C
void easyar_SparseSpatialMap_hitTestAgainstPlanes(easyar_SparseSpatialMap * This, easyar_Vec2F cameraImagePoint, easyar_ListOfVec3F * * Return)
- C++
std::vector<Vec3F> hitTestAgainstPlanes(Vec2F cameraImagePoint)
- Java
public java.util.@Nonnull ArrayList<@Nonnull Vec3F> hitTestAgainstPlanes(@Nonnull Vec2F cameraImagePoint)
- Kotlin
fun hitTestAgainstPlanes(cameraImagePoint: Vec2F): ArrayList<Vec3F>
- Objective-C
- (NSArray<easyar_Vec3F *> *)hitTestAgainstPlanes:(easyar_Vec2F *)cameraImagePoint
- Swift
public func hitTestAgainstPlanes(_ cameraImagePoint: Vec2F) -> [Vec3F]
- C#
public virtual List<Vec3F> hitTestAgainstPlanes(Vec2F cameraImagePoint)
getMapVersion¶
Get the map data version of the current SparseSpatialMap.
- C
void easyar_SparseSpatialMap_getMapVersion(easyar_String * * Return)
- C++
static std::string getMapVersion()
- Java
public static java.lang.@Nonnull String getMapVersion()
- Kotlin
companion object fun getMapVersion(): String
- Objective-C
+ (NSString *)getMapVersion
- Swift
public static func getMapVersion() -> String
- C#
public static string getMapVersion()
unloadMap¶
UnloadMap specified SparseSpatialMap data via callback function.The return value of callback indicates whether unload map succeeds (true) or fails (false).
- C
void easyar_SparseSpatialMap_unloadMap(easyar_SparseSpatialMap * This, easyar_String * mapID, easyar_CallbackScheduler * callbackScheduler, easyar_OptionalOfFunctorOfVoidFromBool resultCallBack)
- C++
void unloadMap(std::string mapID, std::shared_ptr<CallbackScheduler> callbackScheduler, std::optional<std::function<void(bool)>> resultCallBack)
- Java
public void unloadMap(java.lang.@Nonnull String mapID, @Nonnull CallbackScheduler callbackScheduler, @Nullable FunctorOfVoidFromBool resultCallBack)
- Kotlin
fun unloadMap(mapID: String, callbackScheduler: CallbackScheduler, resultCallBack: FunctorOfVoidFromBool?): Unit
- Objective-C
- (void)unloadMap:(NSString *)mapID callbackScheduler:(easyar_CallbackScheduler *)callbackScheduler resultCallBack:(void (^)(bool))resultCallBack
- Swift
public func unloadMap(_ mapID: String, _ callbackScheduler: CallbackScheduler, _ resultCallBack: ((Bool) -> Void)?) -> Void
- C#
public virtual void unloadMap(string mapID, CallbackScheduler callbackScheduler, Optional<Action<bool>> resultCallBack)
setConfig¶
Set configurations for SparseSpatialMap. See also SparseSpatialMapConfig .
- C
void easyar_SparseSpatialMap_setConfig(easyar_SparseSpatialMap * This, easyar_SparseSpatialMapConfig * config)
- C++
void setConfig(std::shared_ptr<SparseSpatialMapConfig> config)
- Java
public void setConfig(@Nonnull SparseSpatialMapConfig config)
- Kotlin
fun setConfig(config: SparseSpatialMapConfig): Unit
- Objective-C
- (void)setConfig:(easyar_SparseSpatialMapConfig *)config
- Swift
public func setConfig(_ config: SparseSpatialMapConfig) -> Void
- C#
public virtual void setConfig(SparseSpatialMapConfig config)
getConfig¶
Returns configurations for SparseSpatialMap. See also SparseSpatialMapConfig .
- C
void easyar_SparseSpatialMap_getConfig(easyar_SparseSpatialMap * This, easyar_SparseSpatialMapConfig * * Return)
- C++
std::shared_ptr<SparseSpatialMapConfig> getConfig()
- Java
public @Nonnull SparseSpatialMapConfig getConfig()
- Kotlin
fun getConfig(): SparseSpatialMapConfig
- Objective-C
- (easyar_SparseSpatialMapConfig *)getConfig
- Swift
public func getConfig() -> SparseSpatialMapConfig
- C#
public virtual SparseSpatialMapConfig getConfig()
startLocalization¶
Start localization in loaded maps. Should set LocalizationMode first.
- C
bool easyar_SparseSpatialMap_startLocalization(easyar_SparseSpatialMap * This)
- C++
bool startLocalization()
- Java
public boolean startLocalization()
- Kotlin
fun startLocalization(): Boolean
- Objective-C
- (bool)startLocalization
- Swift
public func startLocalization() -> Bool
- C#
public virtual bool startLocalization()
stopLocalization¶
Stop localization in loaded maps.
- C
void easyar_SparseSpatialMap_stopLocalization(easyar_SparseSpatialMap * This)
- C++
void stopLocalization()
- Java
public void stopLocalization()
- Kotlin
fun stopLocalization(): Unit
- Objective-C
- (void)stopLocalization
- Swift
public func stopLocalization() -> Void
- C#
public virtual void stopLocalization()
getSyncResult¶
Get synchronized result. If SparseSpatialMap is paused, or the result async mode is not set to false through setResultAsyncMode, the return value is empty.
- C
void easyar_SparseSpatialMap_getSyncResult(easyar_SparseSpatialMap * This, double timestamp, easyar_Matrix44F cameraTransform, easyar_MotionTrackingStatus trackingStatus, easyar_OptionalOfSparseSpatialMapResult * Return)
- C++
std::optional<std::shared_ptr<SparseSpatialMapResult>> getSyncResult(double timestamp, Matrix44F cameraTransform, MotionTrackingStatus trackingStatus)
- Java
public @Nullable SparseSpatialMapResult getSyncResult(double timestamp, @Nonnull Matrix44F cameraTransform, int trackingStatus)
- Kotlin
fun getSyncResult(timestamp: Double, cameraTransform: Matrix44F, trackingStatus: Int): SparseSpatialMapResult?
- Objective-C
- (easyar_SparseSpatialMapResult *)getSyncResult:(double)timestamp cameraTransform:(easyar_Matrix44F *)cameraTransform trackingStatus:(easyar_MotionTrackingStatus)trackingStatus
- Swift
public func getSyncResult(_ timestamp: Double, _ cameraTransform: Matrix44F, _ trackingStatus: MotionTrackingStatus) -> SparseSpatialMapResult?
- C#
public virtual Optional<SparseSpatialMapResult> getSyncResult(double timestamp, Matrix44F cameraTransform, MotionTrackingStatus trackingStatus)