ARSceneTracker Class

Inherits: FrameFilter

Description

EasyAR 的SLAM功能在 Android 和 iOS 设备上做了专门优化。不推荐在 Windows 和 Mac 上运行SLAM,算法效果将完全不同。Windows 和 Mac 上的SLAM只用于开发中简化内容创建。

ARSceneTracker实现了SLAM跟踪。

ARSceneTracker跟踪 ARScene 。你需要首先调用 attachStreamerFrameStreamer 连接至ImageTracker,然后 FrameStreamer 的输出图像将被tracker使用。你可以通过start/stop来开始和停止跟踪。start和stop是非常轻量的调用。

在Target被跟踪之前不需要load到tracker中, FrameStreamer.peek 返回的 Frame 会自动包含ARScene类型的target。

可以使用 FrameStreamer.peek 来获取一帧 Frame 。Frame中包含当前的camera图像和跟踪到的 TargetInstance

Constructor

C: void easyar_ARSceneTracker__ctor(easyar_ARSceneTracker * * Return)
C++11: ARSceneTracker()
Traditional C++: ARSceneTracker()
Java: public ARSceneTracker()
Objective-C: + (easyar_ARSceneTracker *) create
Swift (since EasyAR SDK 2.1.0): public convenience init()

attachStreamer

将FrameStreamer连接到tracker。在有FrameStreamer连接之前,tracker不会开始运行跟踪。

Attach null object 将会断开tracker之前与 FrameStreamer 的连接。

C: bool easyar_ARSceneTracker_attachStreamer(easyar_ARSceneTracker * This, easyar_FrameStreamer * obj)
C++11: bool attachStreamer(std::shared_ptr<FrameStreamer> obj)
Traditional C++: bool attachStreamer(FrameStreamer * obj)
Java: public native boolean attachStreamer(FrameStreamer obj)
Objective-C: - (bool)attachStreamer:(easyar_FrameStreamer *)obj
Swift (since EasyAR SDK 2.1.0): public override func attachStreamer(_ obj: FrameStreamer?) -> Bool

start

开始跟踪算法。在有FrameStreamer连接之前跟踪不会真正开始。

C: bool easyar_ARSceneTracker_start(easyar_ARSceneTracker * This)
C++11: bool start()
Traditional C++: bool start()
Java: public native boolean start()
Objective-C: - (bool)start
Swift (since EasyAR SDK 2.1.0): public override func start() -> Bool

stop

停止跟踪算法。调用start来重新启动跟踪。

C: bool easyar_ARSceneTracker_stop(easyar_ARSceneTracker * This)
C++11: bool stop()
Traditional C++: bool stop()
Java: public native boolean stop()
Objective-C: - (bool)stop
Swift (since EasyAR SDK 2.1.0): public override func stop() -> Bool