ARSceneTracker Class¶
Inherits: FrameFilter
Description¶
EasyAR 的SLAM功能在 Android 和 iOS 设备上做了专门优化。不推荐在 Windows 和 Mac 上运行SLAM,算法效果将完全不同。Windows 和 Mac 上的SLAM只用于开发中简化内容创建。
ARSceneTracker实现了SLAM跟踪。
ARSceneTracker跟踪 ARScene 。你需要首先调用 attachStreamer 将 FrameStreamer 连接至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)¶
- 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¶