Leap Motion C# API Reference  0.8.0
Leap.CircleGesture Class Reference

The CircleGesture classes represents a circular finger movement. More...

Inherits Leap.Gesture.

Public Member Functions

 CircleGesture ()
 Constructs a new CircleGesture object.
 
 CircleGesture (Gesture rhs)
 Constructs a CircleGesture object from an instance of the Gesture class.
 
- Public Member Functions inherited from Leap.Gesture
bool Equals (Gesture rhs)
 Compare Gesture object equality.
 
 Gesture ()
 Constructs a new Gesture object.
 
 Gesture (Gesture rhs)
 Constructs a new copy of an Gesture object.
 
override string ToString ()
 A string containing a brief, human-readable description of this Gesture.
 

Static Public Member Functions

static Gesture.GestureType ClassType ()
 The circle gesture type.
 

Properties

Vector Center [get]
 The center point of the circle within the Leap Motion frame of reference.
 
Vector Normal [get]
 Returns the normal vector for the circle being traced.
 
Pointable Pointable [get]
 The finger performing the circle gesture.
 
float Progress [get]
 The number of times the finger tip has traversed the circle.
 
float Radius [get]
 The radius of the circle.
 
- Properties inherited from Leap.Gesture
long Duration [get]
 The elapsed duration of the recognized movement up to the frame containing this Gesture object, in microseconds.
 
float DurationSeconds [get]
 The elapsed duration in seconds.
 
Frame Frame [get]
 The Frame containing this Gesture instance.
 
HandList Hands [get]
 The list of hands associated with this Gesture, if any.
 
int Id [get]
 The gesture ID.
 
static Gesture Invalid [get]
 Returns an invalid Gesture object.
 
bool IsValid [get]
 Reports whether this Gesture instance represents a valid Gesture.
 
PointableList Pointables [get]
 The list of fingers and tools associated with this Gesture, if any.
 
Gesture.GestureState State [get]
 The gesture state.
 
Gesture.GestureType Type [get]
 The gesture type.
 

Additional Inherited Members

- Public Types inherited from Leap.Gesture
enum  GestureState { STATEINVALID = -1, STATESTART = 1, STATEUPDATE = 2, STATESTOP = 3 }
 The possible gesture states. More...
 
enum  GestureType {
  TYPEINVALID = -1, TYPESWIPE = 1, TYPECIRCLE = 4, TYPESCREENTAP = 5,
  TYPEKEYTAP = 6
}
 The supported types of gestures. More...
 

Detailed Description

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 Motion device 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:

  • State::STATE_START – The circle gesture has just started. The movement has progressed far enough for the recognizer to classify it as a circle.
  • State::STATE_UPDATE – The circle gesture is continuing.
  • State::STATE_STOP – The circle gesture is finished.

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:

Constructor & Destructor Documentation

Leap.CircleGesture.CircleGesture ( )
inline

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 ( Gesture  rhs)
inline

Constructs a CircleGesture object from an instance of the Gesture class.

Parameters
rhsThe Gesture instance to specialize. This Gesture instance must be a CircleGesture object.

Member Function Documentation

static Gesture.GestureType Leap.CircleGesture.ClassType ( )
inlinestatic

The circle gesture type.

Returns
Type The type value designating a circle gesture.

Property Documentation

Vector Leap.CircleGesture.Center
get

The center point of the circle within the Leap Motion frame of reference.

Returns
Vector The center of the circle in mm from the Leap Motion origin.
Vector Leap.CircleGesture.Normal
get

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.

String clockwiseness;
if (circle.Pointable.Direction.AngleTo(circle.Normal) <= Math.PI/2) {
clockwiseness = "clockwise";
}
else
{
clockwiseness = "counterclockwise";
}
Returns
Vector the normal vector for the circle being traced
Pointable Leap.CircleGesture.Pointable
get

The finger performing the circle gesture.

Returns
Pointable A Pointable object representing the circling finger.
float Leap.CircleGesture.Progress
get

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 the circle must be partially formed before the Leap Motion software can recognize it, progress will be greater than zero when a circle gesture first appears in the frame.

Returns
float A positive number indicating the gesture progress.
float Leap.CircleGesture.Radius
get

The radius of the circle.

Returns
The circle radius in mm.