![]() |
Leap C++ API Reference
0.7.9
|
The CircleGesture classes represents a circular finger movement. More...
Inherits Leap::Gesture.
Public Member Functions | |
Vector | center () const |
The center point of the circle within the Leap frame of reference. | |
CircleGesture () | |
Constructs a new CircleGesture object. | |
CircleGesture (const Gesture &rhs) | |
Constructs a CircleGesture object from an instance of the Gesture class. | |
Vector | normal () const |
Returns the normal vector for the circle being traced. | |
Pointable | pointable () const |
The finger performing the circle gesture. | |
float | progress () const |
The number of times the finger tip has traversed the circle. | |
float | radius () const |
The radius of the circle. | |
![]() | |
int64_t | duration () const |
The elapsed duration of the recognized movement up to the frame containing this Gesture object, in microseconds. | |
float | durationSeconds () const |
The elapsed duration in seconds. | |
Frame | frame () const |
The Frame containing this Gesture instance. | |
Gesture () | |
Constructs a new Gesture object. | |
Gesture (const Gesture &rhs) | |
Constructs a new copy of an Gesture object. | |
HandList | hands () const |
The list of hands associated with this Gesture, if any. | |
int32_t | id () const |
The gesture ID. | |
bool | isValid () const |
Reports whether this Gesture instance represents a valid Gesture. | |
bool | operator!= (const Gesture &rhs) const |
Compare Gesture object inequality. | |
bool | operator== (const Gesture &rhs) const |
Compare Gesture object equality. | |
PointableList | pointables () const |
The list of fingers and tools associated with this Gesture, if any. | |
State | state () const |
The gesture state. | |
std::string | toString () const |
A string containing a brief, human-readable description of this Gesture. | |
Type | type () const |
The gesture type. | |
Static Public Member Functions | |
static Type | classType () |
The circle gesture type. | |
![]() | |
static const Gesture & | invalid () |
Returns an invalid Gesture object. | |
Additional Inherited Members | |
![]() | |
enum | State { STATE_INVALID = -1, STATE_START = 1, STATE_UPDATE = 2, STATE_STOP = 3 } |
The possible gesture states. More... | |
enum | Type { TYPE_INVALID = -1, TYPE_SWIPE = 1, TYPE_CIRCLE = 4, TYPE_SCREEN_TAP = 5, TYPE_KEY_TAP = 6 } |
The supported types of gestures. More... | |
The CircleGesture classes represents a circular finger movement.
A circle movement is recognized when the tip of a finger draws a circle within the Leap field of view.
Important: To use circle gestures in your application, you must enable recognition of the circle gesture. You can enable recognition with:
Circle gestures are continuous. The CircleGesture objects for the gesture have three possible states:
You can set the minimum radius and minimum arc length required for a movement to be recognized as a circle using the config attribute of a connected Controller object. Use the following keys to configure circle recognition:
Key string | Value type | Default value | Units |
---|---|---|---|
Gesture.Circle.MinRadius | float | 5.0 | mm |
Gesture.Circle.MinArc | float | 1.5*pi | radians |
The following example demonstrates how to set the circle configuration parameters:
Leap::CircleGesture::CircleGesture | ( | ) |
Constructs a new CircleGesture object.
An uninitialized CircleGesture object is considered invalid. Get valid instances of the CircleGesture class from a Frame object.
Leap::CircleGesture::CircleGesture | ( | const Gesture & | rhs | ) |
Constructs a CircleGesture object from an instance of the Gesture class.
rhs | The Gesture instance to specialize. This Gesture instance must be a CircleGesture object. |
Vector Leap::CircleGesture::center | ( | ) | const |
The center point of the circle within the Leap frame of reference.
|
inlinestatic |
The circle gesture type.
Vector Leap::CircleGesture::normal | ( | ) | const |
Returns the normal vector for the circle being traced.
If you draw the circle clockwise, the normal vector points in the same general direction as the pointable object drawing the circle. If you draw the circle counterclockwise, the normal points back toward the pointable. If the angle between the normal and the pointable object drawing the circle is less than 90 degrees, then the circle is clockwise.
std::string clockwiseness; if (circle.pointable().direction().angleTo(circle.normal()) <= PI/4) { clockwiseness = "clockwise"; } else { clockwiseness = "counterclockwise"; }
Pointable Leap::CircleGesture::pointable | ( | ) | const |
float Leap::CircleGesture::progress | ( | ) | const |
The number of times the finger tip has traversed the circle.
Progress is reported as a positive number of the number. For example, a progress value of .5 indicates that the finger has gone halfway around, while a value of 3 indicates that the finger has gone around the the circle three times.
Progress starts where the circle gesture began. Since it the circle must be partially formed before the Leap can recognize it, progress will be greater than zero when a circle gesture first appears in the frame.
float Leap::CircleGesture::radius | ( | ) | const |
The radius of the circle.