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 boolload(const char* path, int storageType, const char* name = 0)
static TargetListloadAll(const char* path, int storageType) (since 1.3.0)
Vec2Fsize() const
boolsetSize(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应该设成kStorageAppkStorageAssetskStorageAbsolute,表示路径的类型。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)

从类型为storageTypepath中加载json文件或json字符串中列出的所有target。关于storageType和json文件的详细描述参见loadStorageType