InteractionBox类(Leap:: InteractionBox)
这个类代表了一个完全处于Leap Motion控制器视线内的盒状区域。InteractionBox是一个轴对齐的直角棱镜,在它的的盒中提供了手、手指和工具的归一化坐标。这个类使得把Leap Motion坐标系下的坐标映射为2D或3D坐标变的很容易。这个区域定义为一个中心和x,y,z轴三个维度。从Frame对象中可以得到一个InteractionBox对象。
Vector center(): 表示InteractionBox的中心(设备的坐标,毫米为单位),这个点到合资的各边等距。
用法:Vector boxCenter=InteractionBox.center();
Vector normalizePoint(const Vector & Position,bool clamp =true): 表示用这个盒子归一化一个点的坐标。Leap Motion坐标系下的坐标被转化到0到1的范围内,即InteractionBox的最小值映射为0,InteractionBox的最大值映射为1.其中参数position是输入位置的设备坐标,参数clamp判断当输入位置在InteractionBox之外,是否要把输出的值限制在0到1的范围内,默认为true。
Vector denormalizePoint(const Vector & normalizePosition): 把由归一化的InteractionBox坐标定义的位置转化为设备坐标(毫米为单位)。这个函数是normalizePoint()的逆。
用法:InteractionBox interactionBox = frame.interactionBox();
Vector point = Vector(100, 75, -125);
Vector normalizedCoordinates = interactionBox.normalizePoint(point, false);
Vector denormalizedCoordinates = interactionBox.denormalizePoint(normalized
Coordinates);
// denormalizedCoordinates == point
float depth(): 表示InteractionBox的深度(毫米为单位)。
用法:float boxDimensionAlongZAxis = interactionBox.depth();
float height(): 表示InteractionBox的高度(毫米为单位)。
用法:float boxDimensionAlongYAxis = interactionBox.height();
float width(): 表示InteractionBox的宽度(毫米为单位)。
用法:float boxDimensionAlongXAxis = interactionBox.width();
bool isValid(): 判断这是否是个有效的InteractionBox对象。如果这个对象包含有效的数据,返回True。
bool operator!=(const InteractionBox & other): 比较InteractionBox对象是否不相等。两个InteractionBox对象相等当且仅当都表示同样的一个InteractionBox,而且都是有效的。
bool operator==(const Vector & other): 比较InteractionBox对象是否相等。
std::string toString(): 表示一个包含对InteractionBox对象的简单描述的字符串。
译自:https://developer.leapmotion.com/documentation/cpp/api/Leap.InteractionBox.html