ImageTarget Class¶
Header: #include "easyar/target.hpp" (until 1.2.1)
Header: #include "easyar/imagetarget.hpp" (since 1.3.0)
Inherits: Target
Description¶
ImageTarget表示平面图像的target,它可以被 ImageTracker 所跟踪。
ImageTarget的大小可以在json文件里设置并通过load方法载入,或者如果没有在进口中提供,将会从图像分辨率计算。
ImageTarget内的数值在可以被读取之前需要首先通过load方法载入。然后再通过 ImageTracker::loadTarget 或 ImageTracker::loadTargetBlocked 成功载入 ImageTracker 之后可以被 ImageTracker 检测和跟踪。
Public Functions¶
ImageTarget()¶
创建ImageTarget实例。
virtual ~ImageTarget()¶
销毁ImageTarget实例。
virtual bool load(const char* path, int storageType, const char* name = 0)¶
加载一个json文件或json字符串。这个方法只会解析json文件或字符串。
如果name非空则加载名字为name的target,否则加载第一个target。
- 如果 path 是json文件的路径,storageType应该设成 kStorageApp 或 kStorageAssets 或
kStorageAbsolute ,表示路径的类型。json文件内部的路径应该是绝对路径或相对于json文件的相对路径。
如果 path 是json字符串, storageType应该设成 (kStorageApp | kStorageJson) 或 (kStorageAssets | kStorageJson) 或 ( kStorageAbsolute |kStorageJson) 。json字符串里的路径应该是绝对路径或相对于storageType所指向的根目录的相对路径。
关于StorageType的详细描述参见 StorageType 。
Vec2F size() const¶
返回image target的大小。这个大小只有在使用 ImageTracker::loadTarget 或 ImageTracker::loadTargetBlocked 成功加载入 ImageTracker ,或是通过setSize手动设置之后才是有效(非0)的。
如果size没有通过json或setSize设置,将会返回通过图像分辨率进行计算得出的默认大小。
bool setSize(const Vec2F& size)¶
设置image target的大小,设置之后会覆盖默认值以及在json文件中设的数值。
size将会在 ImageTracker::loadTarget 或 ImageTracker::loadTargetBlocked 调 用之后通过图像分辨率重新计算。在计算之后,size的最大值将被保持不变,仍为最大值,另一个维度则通过分辨率计算更新。需要在target成功加 载之后调用size来获取实际使用的size数值。
如果size长宽比例在设置的时候就保证和图像分辨率一致,则在计算之后size不会发生变化。
static TargetList loadAll(const char* path, int storageType) (since 1.3.0)¶
从类型为 storageType 的 path 中加载json文件或json字符串中列出的所有target。关于storageType和js on文件的详细描述参见load和 StorageType 。