#include <Leap.h>
Public Types | |
enum | State { STATE_INVALID = -1, STATE_START = 1, STATE_UPDATE = 2, STATE_STOP = 3 } |
enum | Type { TYPE_INVALID = -1, TYPE_SWIPE = 1, TYPE_CIRCLE = 4, TYPE_SCREEN_TAP = 5, TYPE_KEY_TAP = 6 } |
Public Member Functions | |
def | __eq__ (self, rhs) |
def | __init__ (self, args) |
def | __ne__ (self, rhs) |
def | __str__ (self) |
LEAP_EXPORT int64_t | duration () const |
LEAP_EXPORT float | durationSeconds () const |
LEAP_EXPORT Frame | frame () const |
Gesture (GestureImplementation *) | |
LEAP_EXPORT | Gesture () |
LEAP_EXPORT | Gesture (const Gesture &rhs) |
LEAP_EXPORT HandList | hands () const |
LEAP_EXPORT int32_t | id () const |
LEAP_EXPORT bool | isValid () const |
LEAP_EXPORT bool | operator!= (const Gesture &rhs) const |
LEAP_EXPORT bool | operator== (const Gesture &rhs) const |
LEAP_EXPORT PointableList | pointables () const |
LEAP_EXPORT State | state () const |
std::string | toString () const |
LEAP_EXPORT Type | type () const |
Public Member Functions inherited from Leap::Interface | |
def | __init__ (self, args, kwargs) |
Static Public Member Functions | |
static LEAP_EXPORT const Gesture & | invalid () |
Public Attributes | |
this | |
Static Public Attributes | |
duration = _swig_property(LeapPython.Gesture_duration_get) | |
duration_seconds = _swig_property(LeapPython.Gesture_duration_seconds_get) | |
frame = _swig_property(LeapPython.Gesture_frame_get) | |
hands = _swig_property(LeapPython.Gesture_hands_get) | |
id = _swig_property(LeapPython.Gesture_id_get) | |
is_valid = _swig_property(LeapPython.Gesture_is_valid_get) | |
pointables = _swig_property(LeapPython.Gesture_pointables_get) | |
state = _swig_property(LeapPython.Gesture_state_get) | |
STATE_INVALID = LeapPython.Gesture_STATE_INVALID | |
STATE_START = LeapPython.Gesture_STATE_START | |
STATE_STOP = LeapPython.Gesture_STATE_STOP | |
STATE_UPDATE = LeapPython.Gesture_STATE_UPDATE | |
type = _swig_property(LeapPython.Gesture_type_get) | |
TYPE_CIRCLE = LeapPython.Gesture_TYPE_CIRCLE | |
TYPE_INVALID = LeapPython.Gesture_TYPE_INVALID | |
TYPE_KEY_TAP = LeapPython.Gesture_TYPE_KEY_TAP | |
TYPE_SCREEN_TAP = LeapPython.Gesture_TYPE_SCREEN_TAP | |
TYPE_SWIPE = LeapPython.Gesture_TYPE_SWIPE | |
Private Member Functions | |
LEAP_EXPORT const char * | toCString () const |
Static Private Attributes | |
__getattr__ = lambdaself,name:_swig_getattr(self, Gesture, name) | |
__repr__ = _swig_repr | |
__setattr__ = lambdaself,name,value:_swig_setattr(self, Gesture, name, value) | |
__swig_destroy__ = LeapPython.delete_Gesture | |
dictionary | __swig_getmethods__ = {} |
dictionary | __swig_setmethods__ = {} |
Additional Inherited Members | |
Protected Member Functions inherited from Leap::Interface | |
template<typename T > | |
T * | get () const |
LEAP_EXPORT | Interface (void *owner) |
LEAP_EXPORT | Interface (Implementation *reference, void *owner) |
LEAP_EXPORT | Interface (const Interface &rhs) |
Interface (class SharedObject *object) | |
LEAP_EXPORT Interface & | operator= (const Interface &rhs) |
virtual LEAP_EXPORT | ~Interface () |
Static Protected Member Functions inherited from Leap::Interface | |
static LEAP_EXPORT void | deleteCString (const char *cstr) |
Protected Attributes inherited from Leap::Interface | |
class SharedObject * | m_object |
The Gesture class represents a recognized movement by the user.
The Leap Motion Controller watches the activity within its field of view for certain movement patterns typical of a user gesture or command. For example, a movement from side to side with the hand can indicate a swipe gesture, while a finger poking forward can indicate a screen tap gesture.
When the Leap Motion software recognizes a gesture, it assigns an ID and adds a Gesture object to the frame gesture list. For continuous gestures, which occur over many frames, the Leap Motion software updates the gesture by adding a Gesture object having the same ID and updated properties in each subsequent frame.
Important: Recognition for each type of gesture must be enabled using the Controller::enableGesture() function; otherwise no gestures are recognized or reported.
Subclasses of Gesture define the properties for the specific movement patterns recognized by the Leap Motion software.
The Gesture subclasses include:
CircleGesture – A circular movement by a finger.
SwipeGesture – A straight line movement by the hand with fingers extended.
ScreenTapGesture – A forward tapping movement by a finger.
KeyTapGesture – A downward tapping movement by a finger.
Circle and swipe gestures are continuous and these objects can have a state of start, update, and stop.
The screen tap gesture is a discrete gesture. The Leap Motion software only creates a single ScreenTapGesture object for each tap and it always has a stop state.
Get valid Gesture instances from a Frame object. You can get a list of gestures with the Frame::gestures() method. You can get a list of gestures since a specified frame with the Frame::gestures(const Frame&)
method. You can also use the Frame::gesture()
method to find a gesture in the current frame using an ID value obtained in a previous frame.
Gesture objects can be invalid. For example, when you get a gesture by ID using Frame::gesture()
, and there is no gesture with that ID in the current frame, then gesture()
returns an Invalid Gesture object (rather than a null value). Always check object validity in situations where a gesture might be invalid.
The following keys can be used with the Config class to configure the gesture recognizer:
==================================== ========== ============= ======= Key string Value type Default value Units ==================================== ========== ============= ======= Gesture.Circle.MinRadius float 5.0 mm Gesture.Circle.MinArc float 1.5 * pi radians Gesture.Swipe.MinLength float 150 mm Gesture.Swipe.MinVelocity float 1000 mm/s Gesture.KeyTap.MinDownVelocity float 50 mm/s Gesture.KeyTap.HistorySeconds float 0.1 s Gesture.KeyTap.MinDistance float 3.0 mm Gesture.ScreenTap.MinForwardVelocity float 50 mm/s Gesture.ScreenTap.HistorySeconds float 0.1 s Gesture.ScreenTap.MinDistance float 5.0 mm ==================================== ========== ============= =======
enum Leap::Gesture::State |
The possible gesture states.
enum Leap::Gesture::Type |
The supported types of gestures.
Leap::Gesture::Gesture | ( | GestureImplementation * | ) |
LEAP_EXPORT Leap::Gesture::Gesture | ( | ) |
LEAP_EXPORT Leap::Gesture::Gesture | ( | const Gesture & | rhs | ) |
Constructs a new copy of an Gesture object.
LEAP_EXPORT int64_t Leap::Gesture::duration | ( | ) | const |
The elapsed duration of the recognized movement up to the frame containing this Gesture object, in microseconds.
The duration reported for the first Gesture in the sequence (with the STATE_START state) will typically be a small positive number since the movement must progress far enough for the Leap Motion software to recognize it as an intentional gesture.
LEAP_EXPORT float Leap::Gesture::durationSeconds | ( | ) | const |
The elapsed duration in seconds.
LEAP_EXPORT Frame Leap::Gesture::frame | ( | ) | const |
LEAP_EXPORT HandList Leap::Gesture::hands | ( | ) | const |
LEAP_EXPORT int32_t Leap::Gesture::id | ( | ) | const |
The gesture ID.
All Gesture objects belonging to the same recognized movement share the same ID value. Use the ID value with the Frame::gesture() method to find updates related to this Gesture object in subsequent frames.
|
static |
Returns an invalid Gesture object.
You can use the instance returned by this function in comparisons testing whether a given Gesture instance is valid or invalid. (You can also use the Gesture::isValid() function.)
LEAP_EXPORT bool Leap::Gesture::isValid | ( | ) | const |
Reports whether this Gesture instance represents a valid Gesture.
An invalid Gesture object does not represent a snapshot of a recognized movement. Invalid Gesture objects are returned when a valid object cannot be provided. For example, when you get an gesture by ID using Frame::gesture(), and there is no gesture with that ID in the current frame, then gesture() returns an Invalid Gesture object (rather than a null value). Always check object validity in situations where an gesture might be invalid.
LEAP_EXPORT bool Leap::Gesture::operator!= | ( | const Gesture & | rhs | ) | const |
Compare Gesture object inequality.
Two Gestures are equal only if they represent the same snapshot of the same recognized movement.
LEAP_EXPORT bool Leap::Gesture::operator== | ( | const Gesture & | rhs | ) | const |
Compare Gesture object equality.
Two Gestures are equal if they represent the same snapshot of the same recognized movement.
LEAP_EXPORT PointableList Leap::Gesture::pointables | ( | ) | const |
The list of fingers and tools associated with this Gesture, if any.
If no Pointable objects are related to this gesture, the list is empty.
LEAP_EXPORT State Leap::Gesture::state | ( | ) | const |
The gesture state.
Recognized movements occur over time and have a beginning, a middle, and an end. The 'state()' attribute reports where in that sequence this Gesture object falls.
|
private |
|
inline |
LEAP_EXPORT Type Leap::Gesture::type | ( | ) | const |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |