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::loadTargetImageTracker::loadTargetBlocked 成功载入 ImageTracker 之后可以被 ImageTracker 检测和跟踪。

Public Functions

ImageTarget()
virtual ~ImageTarget()
virtual bool load(const char* path, int storageType, const char* name = 0)
static TargetList loadAll(const char* path, int storageType) (since 1.3.0)
Vec2F size() const
bool setSize(const Vec2F& size)

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应该设成 kStorageAppkStorageAssets

kStorageAbsolute ,表示路径的类型。json文件内部的路径应该是绝对路径或相对于json文件的相对路径。

如果 path 是json字符串, storageType应该设成 (kStorageApp | kStorageJson)(kStorageAssets | kStorageJson)( kStorageAbsolute |kStorageJson) 。json字符串里的路径应该是绝对路径或相对于storageType所指向的根目录的相对路径。

关于StorageType的详细描述参见 StorageType

Vec2F size() const

返回image target的大小。这个大小只有在使用 ImageTracker::loadTargetImageTracker::loadTargetBlocked 成功加载入 ImageTracker ,或是通过setSize手动设置之后才是有效(非0)的。

如果size没有通过json或setSize设置,将会返回通过图像分辨率进行计算得出的默认大小。

bool setSize(const Vec2F& size)

设置image target的大小,设置之后会覆盖默认值以及在json文件中设的数值。

size将会在 ImageTracker::loadTargetImageTracker::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