ObjectTarget Class¶
Inherits: Target
Description¶
ObjectTarget表示3D object target,它可以被 ObjectTracker 所跟踪。
ObjectTarget的大小由 obj 文件决定。可以通过修改 scale 达到修改size的目的。 scale 默认为1。
ObjectTarget内的数值在可以被读取之前需要首先通过setup方法载入。然后再通过 ObjectTracker.loadTarget 或 ObjectTracker.loadTargetBlocked 成功载入 ObjectTracker 之后可以被 ObjectTracker 检测和跟踪。
Constructor¶
- C: void easyar_ObjectTarget__ctor(easyar_ObjectTarget * * Return)¶
- C++11: ObjectTarget()¶
- Traditional C++: ObjectTarget()¶
- Java: public ObjectTarget()¶
- Objective-C: + (easyar_ObjectTarget *) create¶
- Swift (since EasyAR SDK 2.1.0): public convenience init()¶
setup¶
从一个json文件或json字符串配置target。这个方法只会解析json文件或字符串。
如果name非空则配置名字为name的target,否则配置第一个target。
如果 path 是json文件的路径,storageType应该设成 App 或 Assets 或 Absolute ,表示路径的类型。json文件内部的路径应该是绝对路径或相对于json文件的相对路径。
如果 path 是json字符串, storageType应该设成 (App | Json) 或 (Assets | Json) 或 ( Absolute | Json) 。json字符串里的路径应该是绝对路径或相对于storageType所指向的根目录的相对路径。
关于StorageType的详细描述参见 StorageType 。
- C: bool easyar_ObjectTarget_setup(easyar_ObjectTarget * This, easyar_String * path, int storageType, easyar_String * name)¶
- C++11: bool setup(std::string path, int storageType, std::string name)¶
- Traditional C++: bool setup(String * path, int storageType, String * name)¶
- Java: public native boolean setup(java.lang.String path, int storageType, java.lang.String name)¶
- Objective-C: - (bool)setup:(NSString *)path storageType:(int)storageType name:(NSString *)name¶
- Swift (since EasyAR SDK 2.1.0): public func setup(_ path: String, _ storageType: Int32, _ name: String) -> Bool¶
setupAll¶
从类型为 storageType 的 path 中配置json文件或json字符串中列出的所有target。关于storageType和json文件的详细描述参见setup和 StorageType 。
- C: void easyar_ObjectTarget_setupAll(easyar_String * path, int storageType, easyar_ListOfPointerOfObjectTarget * * Return)¶
- Traditional C++: static void setupAll(String * path, int storageType, ListOfPointerOfObjectTarget * * Return)¶
- Java: public static native java.util.ArrayList<ObjectTarget> setupAll(java.lang.String path, int storageType)¶
- Objective-C: + (NSArray<easyar_ObjectTarget *> *)setupAll:(NSString *)path storageType:(int)storageType¶
- Swift (since EasyAR SDK 2.1.0): public static func setupAll(_ path: String, _ storageType: Int32) -> [ObjectTarget]¶
scale¶
ObjectTarget的scale。默认值为1。
- C: float easyar_ObjectTarget_scale(const easyar_ObjectTarget * This)¶
- C++11: float scale()¶
- Traditional C++: float scale()¶
- Java: public native float scale()¶
- Objective-C: - (float)scale¶
- Swift (since EasyAR SDK 2.1.0): public func scale() -> Float¶
boundingBox¶
物体的包围盒,包括盒子的8个顶点。
- C: void easyar_ObjectTarget_boundingBox(easyar_ObjectTarget * This, easyar_ListOfVec3F * * Return)¶
- C++11: std::vector<Vec3F> boundingBox()¶
- Traditional C++: void boundingBox(ListOfVec3F * * Return)¶
- Java: public native java.util.ArrayList<Vec3F> boundingBox()¶
- Objective-C: - (NSArray<easyar_Vec3F *> *)boundingBox¶
- Swift (since EasyAR SDK 2.1.0): public func boundingBox() -> [Vec3F]¶
boundingBoxGL¶
使用OpenGL坐标系和矩阵格式的物体的包围盒,包括盒子的8个顶点。
- C: void easyar_ObjectTarget_boundingBoxGL(easyar_ObjectTarget * This, easyar_ListOfVec3F * * Return)¶
- C++11: std::vector<Vec3F> boundingBoxGL()¶
- Traditional C++: void boundingBoxGL(ListOfVec3F * * Return)¶
- Java: public native java.util.ArrayList<Vec3F> boundingBoxGL()¶
- Objective-C: - (NSArray<easyar_Vec3F *> *)boundingBoxGL¶
- Swift (since EasyAR SDK 2.1.0): public func boundingBoxGL() -> [Vec3F]¶
setScale¶
设置ObjectTarget的scale。
- C: bool easyar_ObjectTarget_setScale(easyar_ObjectTarget * This, float scale)¶
- C++11: bool setScale(float scale)¶
- Traditional C++: bool setScale(float scale)¶
- Java: public native boolean setScale(float scale)¶
- Objective-C: - (bool)setScale:(float)scale¶
- Swift (since EasyAR SDK 2.1.0): public func setScale(_ scale: Float) -> Bool¶
runtimeID¶
返回target id。target id是运行时创建的整型数据,只有在成功的配置之后才是有效(非0)的。这个id是非0且全局递增的。
- C: int easyar_ObjectTarget_runtimeID(const easyar_ObjectTarget * This)¶
- C++11: int runtimeID()¶
- Traditional C++: int runtimeID()¶
- Java: public native int runtimeID()¶
- Objective-C: - (int)runtimeID¶
- Swift (since EasyAR SDK 2.1.0): public override func runtimeID() -> Int32¶
uid¶
返回target uid。target uid在云识别算法中使用。在没有接入云识别的时候,你可以在json配置中设置这个uid,在自己的代码中作为另一种区分target的方法。
- C: void easyar_ObjectTarget_uid(const easyar_ObjectTarget * This, easyar_String * * Return)¶
- C++11: std::string uid()¶
- Traditional C++: void uid(String * * Return)¶
- Java: public native java.lang.String uid()¶
- Objective-C: - (NSString *)uid¶
- Swift (since EasyAR SDK 2.1.0): public override func uid() -> String¶
name¶
返回target名字。名字用来在json文件中区分target。更多描述参见setup。
- C: void easyar_ObjectTarget_name(const easyar_ObjectTarget * This, easyar_String * * Return)¶
- C++11: std::string name()¶
- Traditional C++: void name(String * * Return)¶
- Java: public native java.lang.String name()¶
- Objective-C: - (NSString *)name¶
- Swift (since EasyAR SDK 2.1.0): public override func name() -> String¶
meta¶
返回setMetaData所设置的meta data。或者在云识别返回的target里面,返回云端服务器所设置的meta data。
- C: void easyar_ObjectTarget_meta(const easyar_ObjectTarget * This, easyar_String * * Return)¶
- C++11: std::string meta()¶
- Traditional C++: void meta(String * * Return)¶
- Java: public native java.lang.String meta()¶
- Objective-C: - (NSString *)meta¶
- Swift (since EasyAR SDK 2.1.0): public override func meta() -> String¶
setMeta¶
设置meta data。这个操作会覆盖上一次的设置或是云端返回的数据。
- C: void easyar_ObjectTarget_setMeta(easyar_ObjectTarget * This, easyar_String * data)¶
- C++11: void setMeta(std::string data)¶
- Traditional C++: void setMeta(String * data)¶
- Java: public native void setMeta(java.lang.String data)¶
- Objective-C: - (void)setMeta:(NSString *)data¶
- Swift (since EasyAR SDK 2.1.0): public override func setMeta(_ data: String) -> Void¶