DenseSpatialMap Class

Description

DenseSpatialMap用来对环境进行精确的三维稠密重建,其重建的模型用三角网格表示,称为mesh。

DenseSpatialMap占用1个camera的buffer。

isAvailable

当设备支持稠密重建功能时返回True,否则返回False。

C

bool easyar_DenseSpatialMap_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

输入帧输入端口。DenseSpatialMap输入帧必须包含图像和对应的camera参数、空间信息(cameraTransform和trackingStatus)。参考 InputFrameSink

注意:camera支持针孔和鱼眼相机模型,使用鱼眼相机性能会受影响。

C

void easyar_DenseSpatialMap_inputFrameSink(easyar_DenseSpatialMap * 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 buffer的数量。

C

int easyar_DenseSpatialMap_bufferRequirement(easyar_DenseSpatialMap * 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()

create

创建DenseSpatialMap对象。

C

void easyar_DenseSpatialMap_create(easyar_DenseSpatialMap * * Return)

C++

static std::shared_ptr<DenseSpatialMap> create()

Java

public static @Nonnull DenseSpatialMap create()

Kotlin

companion object fun create(): DenseSpatialMap

Objective-C

+ (easyar_DenseSpatialMap *)create

Swift

public static func create() -> DenseSpatialMap

C#

public static DenseSpatialMap create()

start

开始重建或从暂停中恢复,继续重建。

C

bool easyar_DenseSpatialMap_start(easyar_DenseSpatialMap * 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

暂停重建过程。调用start来继续重建过程。

C

void easyar_DenseSpatialMap_stop(easyar_DenseSpatialMap * 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之后不应继续使用。

C

void easyar_DenseSpatialMap_close(easyar_DenseSpatialMap * 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()

getMesh

获取 SceneMesh 类型的mesh管理对象。其中的内容会在调用 DenseSpatialMap.updateSceneMesh 函数之后自动更新。

C

void easyar_DenseSpatialMap_getMesh(easyar_DenseSpatialMap * This, easyar_SceneMesh * * Return)

C++

std::shared_ptr<SceneMesh> getMesh()

Java

public @Nonnull SceneMesh getMesh()

Kotlin

fun getMesh(): SceneMesh

Objective-C

- (easyar_SceneMesh *)getMesh

Swift

public func getMesh() -> SceneMesh

C#

public virtual SceneMesh getMesh()

updateSceneMesh

获取最近更新的mesh,保存到由 DenseSpatialMap.getMesh 得到的 SceneMesh 对象中。

参数updateMeshAll指明是进行full update还是incremental update。当updateMeshAll为True时进行full update,所有的mesh都会保存到 SceneMesh 中;当updateMeshAll为False时进行incremental update,只保存最近更新的mesh到 SceneMesh 中。

进行full update将占用额外的时间和内存空间,导致性能下降。

C

bool easyar_DenseSpatialMap_updateSceneMesh(easyar_DenseSpatialMap * This, bool updateMeshAll)

C++

bool updateSceneMesh(bool updateMeshAll)

Java

public boolean updateSceneMesh(boolean updateMeshAll)

Kotlin

fun updateSceneMesh(updateMeshAll: Boolean): Boolean

Objective-C

- (bool)updateSceneMesh:(bool)updateMeshAll

Swift

public func updateSceneMesh(_ updateMeshAll: Bool) -> Bool

C#

public virtual bool updateSceneMesh(bool updateMeshAll)