Properties:
Methods:
The LeapTool class represents a tracked tool.
Property
Public Static Functionsdirection- (LeapVector *) directionThe direction in which this finger or tool is pointing.
LeapVector *direction = pointable.direction;The direction is expressed as a unit vector pointing in the same direction as the tip.
- Return
- The LeapVector pointing in the same direction as the tip of this LeapPointable object.
- Since 1.0
frame- (LeapFrame *) frameThe LeapFrame associated with this LeapPointable object.
LeapFrame *owningFrame = pointable.frame;This property is a weak reference to the LeapFrame object so it is only valid during the lifetime of the LeapFrame object while the LeapFrame object is in the history buffer or while your application maintains its own reference.
hand- (LeapHand *) handThe LeapHand associated with a finger.
LeapHand *owningHand = pointable.hand;This property is a weak reference to the LeapHand object so it is only valid during the lifetime of that LeapHand object in other words, while the parent LeapFrame object is valid or while your application maintains its own reference.
As of version 2, tools are not associated with hands, so this property always returns an invalid LeapHand object for tools.
id- (int32_t) idA unique ID assigned to this LeapPointable object, whose value remains the same across consecutive frames while the tracked finger or tool remains visible.
If tracking is lost, the Leap may assign a new ID when it detects the entity in a future frame.
int id = pointable.id;Use the ID value with the [LeapFrame pointable:] function to find this LeapPointable object in future frames.
int idOfInterest = 201; LeapPointable *pointableOfInterest = [frame pointable:idOfInterest];
- Return
- The ID assigned to this LeapPointable object.
- Since 1.0
isExtended- (BOOL) isExtendedWhether or not this Pointable is in an extended posture.
int extendedCount = 0; for (LeapPointable *pointable in frame.pointables) { if (pointable.isExtended) { extendedCount++; } }A finger is considered extended if it is extended straight from the hand as if pointing. A finger is not extended when it is bent down and curled towards the palm.
- Return
- True, if the pointable is extended.
- Since 2.0
isFinger- (BOOL) isFingerWhether or not the LeapPointable is classified a finger.
if (pointable.isFinger) { LeapFinger *finger = (LeapFinger *)pointable; }
- Return
- YES, if this LeapPointable is classified as a LeapFinger.
- Since 1.0
isTool- (BOOL) isToolWhether or not the LeapPointable is classified to be a tool.
if (pointable.isTool) { LeapTool *tool = (LeapTool *)pointable; }
- Return
- NO
isValid- (BOOL) isValidReports whether this is a valid LeapPointable object.
if(pointable.isValid){ //Use the data }
- Return
- YES, if this LeapPointable object contains valid tracking data.
- Since 1.0
length- (float) lengthThe estimated length of the finger or tool in millimeters.
The reported length is the visible length of the finger or tool. If the length isn’t known, then a value of 0 is returned.
float length = pointable.length;
- Return
- The estimated length of this LeapPointable object.
- Since 1.0
stabilizedTipPosition- (LeapVector *) stabilizedTipPositionThe stabilized tip position of this LeapPointable.
LeapVector *stabilizedPosition = pointable.stabilizedTipPosition;Smoothing and stabilization is performed in order to make this value more suitable for interaction with 2D content.
- Since 1.0
timeVisible- (float) timeVisibleThe duration of time this Pointable has been visible to the Leap Motion Controller.
float lifetime = pointable.timeVisible;
- Return
- The duration (in seconds) that this Pointable has been tracked.
- Since 1.0
tipPosition- (LeapVector *) tipPositionThe tip position in millimeters from the Leap origin.
LeapVector *position = pointable.tipPosition;
- Return
- The LeapVector containing the coordinates of the tip position.
- Since 1.0
tipVelocity- (LeapVector *) tipVelocityThe rate of change of the tip position in millimeters/second.
LeapVector *speed = pointable.tipVelocity;
- Return
- The LeapVector containing the coordinates of the tip velocity.
- Since 1.0
touchDistance- (float) touchDistanceA value proportional to the distance between this LeapPointable object and the adaptive touch plane.
float touchDistance = pointable.touchDistance;touchZone- (LeapPointableZone) touchZoneThe current touch zone of this LeapPointable object.
LeapPointableZone zone = pointable.touchZone;width- (float) widthThe estimated width of the finger or tool in millimeters.
The reported width is the average width of the visible portion of the finger or tool. If the width isn’t known, then a value of 0 is returned.
float width = pointable.width;
- Return
- The estimated width of this LeapPointable object.
- Since 1.0
+ (LeapPointable *) invalidReturns an invalid LeapPointable object.
LeapPointable *pointer = LeapPointable.invalid;
- Return
- The invalid LeapPointable instance.
- Since 1.0