GEIS  2.0
Gesture Engine Interface Support
Gesture Frames

Gesture state information. More...

Data Structures

class  GeisGroup
 A collection of gesture frames. More...
class  GeisGroupSet
 A collection of GeisGroups. More...
class  GeisTouch
 An instance of a touch. More...
class  GeisTouchId
 Relates a touch in a frame to a touch object in a set. More...
class  GeisTouchSet
 A collection of GeisTouch. More...
class  GeisFrame
 A collection of information describing the state of a gesture. More...

Functions

GeisStatus geis_gesture_accept (Geis geis, GeisGroup group, GeisGestureId gesture_id)
 Marks a gesture as accepted.
GeisStatus geis_gesture_reject (Geis geis, GeisGroup group, GeisGestureId gesture_id)
 Marks a gesture as rejected.
GeisSize geis_groupset_group_count (GeisGroupSet groupset)
 Gets the number of gesture groups in a groupset.
GeisGroup geis_groupset_group (GeisGroupSet groupset, GeisSize index)
 Gets an indicated gesture group from a groupset.
GeisInteger geis_group_id (GeisGroup group)
 Gets the identifier of a gesture group.
GeisSize geis_group_frame_count (GeisGroup group)
 Gets the number of gesture frames in a gesture group.
GeisFrame geis_group_frame (GeisGroup group, GeisSize index)
 Gets an indicated gesture frame from a gesture group.
void geis_group_reject (GeisGroup group)
 Marks a gesture group as rejected.
GeisSize geis_touchset_touch_count (GeisTouchSet touchset)
 Gets the number of touches in a touchset.
GeisTouch geis_touchset_touch (GeisTouchSet touchset, GeisSize index)
 Gets an indicated touch from a touchset.
GeisTouch geis_touchset_touch_by_id (GeisTouchSet touchset, GeisTouchId touchid)
 Gets an identified touch from a touchset.
GeisTouchId geis_touch_id (GeisTouch touch)
 Gets the identifier of a touch.
GeisSize geis_touch_attr_count (GeisTouch touch)
 Gets the number of attrs associated with a touch.
GeisAttr geis_touch_attr (GeisTouch touch, GeisSize index)
 Gets an indicated attr from a touch.
GeisAttr geis_touch_attr_by_name (GeisTouch touch, GeisString name)
 Gets a named attr from a touch.
GeisGestureId geis_frame_id (GeisFrame frame)
 Gets the identifier of a gesture frame.
GeisBoolean geis_frame_is_class (GeisFrame frame, GeisGestureClass gesture_class)
 Indicates if a gesture frame belongs to a gesture class.
GeisSize geis_frame_attr_count (GeisFrame frame)
 Gets the number of attrs associated with a gesture frame.
GeisAttr geis_frame_attr (GeisFrame frame, GeisSize index)
 Gets an indicated attr from a gesture frame.
GeisAttr geis_frame_attr_by_name (GeisFrame frame, GeisString name)
 Gets a named attr from a gesture frame.
GeisFloat * geis_frame_matrix (GeisFrame frame)
 Gets the current transform matrix of a gesture.
GeisSize geis_frame_touchid_count (GeisFrame frame)
 Gets the number of touches making up a gesture for the frame.
GeisTouchId geis_frame_touchid (GeisFrame frame, GeisSize index)
 Gets the ID of the indicated touch within the gesture frame.

Gesture Frame Event Attributes

A gesture event (GEIS_EVENT_GESTURE_BEGIN, GEIS_EVENT_GESTURE_UPDATE, GEIS_EVENT_GESTURE_END) should have two GEIS_ATTR_TYPE_POINTER attributes, one containing a GeisGroupSet and one containing a GeisTouchSet.

For example: If four fingers are being simultaneously moved over a touchpad or touchscreen surface, Geis could start generating gesture events containing two groups: One group having a single frame from a four-fingers gesture of some class and a second group having two frames, each from a different two-fingers gesture (like one from a Rotate and the other from a Pinch gesture). This means that geis could interpret the movements of those four touch points as both a single four-fingers gesture and as two separate two-fingers gestures.

There can be only a single frame per gesture in a gesture event. I.e. no two frames will return the same GeisGestureId in the same gesture event.

#define GEIS_EVENT_ATTRIBUTE_GROUPSET
 The event attribute containing a pointer to a GeisGroupSet.
#define GEIS_EVENT_ATTRIBUTE_TOUCHSET
 The event attribute containing a pointer to a GeisTouchSet.

Touch Attributes

Each touch has zero or more attributes associated with it. Differing hardware is capable of reporting differing sets of touch attributes, so there is no guarantee that any or all of the defined touch attributes will bre present.

If the touch comes from a direct device (see GEIS_DEVICE_ATTRIBUTE_DIRECT_TOUCH) its position (x and y attributes) will be in window coordinates, otherwise it will be in the input device's own coordinate system.

#define GEIS_TOUCH_ATTRIBUTE_ID
 Identifies the touch.
#define GEIS_TOUCH_ATTRIBUTE_X
 The X coordinate of the touch.
#define GEIS_TOUCH_ATTRIBUTE_Y
 The Y coordinate of the touch.

Detailed Description

Gesture state information.

Gesture frames, and their associated groups and touches, convey information about the current state of recognized gestures.


Define Documentation

The event attribute containing a pointer to a GeisGroupSet.

The event attribute containing a pointer to a GeisTouchSet.

Identifies the touch.

The X coordinate of the touch.

The Y coordinate of the touch.


Function Documentation

GeisAttr geis_frame_attr ( GeisFrame  frame,
GeisSize  index 
)

Gets an indicated attr from a gesture frame.

Parameters:
[in]frameThe gesture frame.
[in]indexIndicates which attr to retrieve.
GeisAttr geis_frame_attr_by_name ( GeisFrame  frame,
GeisString  name 
)

Gets a named attr from a gesture frame.

Parameters:
[in]frameThe gesture frame.
[in]nameNames the attr to retrieve, such as one of the GEIS_GESTURE_ATTRIBUTE_* constants.
Returns:
the named attr if it is present, NULL otherwise.

Usage example:

GeisSize geis_frame_attr_count ( GeisFrame  frame)

Gets the number of attrs associated with a gesture frame.

Parameters:
[in]frameThe gesture frame.
GeisGestureId geis_frame_id ( GeisFrame  frame)

Gets the identifier of a gesture frame.

Parameters:
[in]framethe gesture frame.
Returns:
the identifier of the gesture to which the given frame belongs.
GeisBoolean geis_frame_is_class ( GeisFrame  frame,
GeisGestureClass  gesture_class 
)

Indicates if a gesture frame belongs to a gesture class.

Parameters:
[in]frameThe gesture frame.
[in]gesture_classThe gesture class.
Returns:
true if the gesture can currently be classified by the gesture_class, false otherwise.
GeisFloat * geis_frame_matrix ( GeisFrame  frame)

Gets the current transform matrix of a gesture.

Parameters:
[in]frameThe gesture frame.
GeisTouchId geis_frame_touchid ( GeisFrame  frame,
GeisSize  index 
)

Gets the ID of the indicated touch within the gesture frame.

Parameters:
[in]frameThe gesture frame.
[in]indexIndicates which touch ID to retrieve.
GeisSize geis_frame_touchid_count ( GeisFrame  frame)

Gets the number of touches making up a gesture for the frame.

Parameters:
[in]frameThe gesture frame.
GeisStatus geis_gesture_accept ( Geis  geis,
GeisGroup  group,
GeisGestureId  gesture_id 
)

Marks a gesture as accepted.

Parameters:
[in]geisThe GEIS instance.
[in]groupThe gesture group containing the accepted gesture.
[in]gesture_idIdentifies the gesture.
See also:
geis_frame_id
GeisStatus geis_gesture_reject ( Geis  geis,
GeisGroup  group,
GeisGestureId  gesture_id 
)

Marks a gesture as rejected.

Parameters:
[in]geisThe GEIS instance.
[in]groupThe gesture group containing the rejected gesture.
[in]gesture_idIdentifies the gesture.

After you reject a gesture you no longer get its frames.

See also:
geis_frame_id
GeisFrame geis_group_frame ( GeisGroup  group,
GeisSize  index 
)

Gets an indicated gesture frame from a gesture group.

Parameters:
[in]groupThe gesture group.
[in]indexIndicates which gesture frame to retrieve.
GeisSize geis_group_frame_count ( GeisGroup  group)

Gets the number of gesture frames in a gesture group.

Parameters:
[in]groupThe gesture group.
GeisInteger geis_group_id ( GeisGroup  group)

Gets the identifier of a gesture group.

Parameters:
[in]groupThe gesture group.
void geis_group_reject ( GeisGroup  group)

Marks a gesture group as rejected.

Parameters:
[in]groupThe gesture group to reject.
GeisGroup geis_groupset_group ( GeisGroupSet  groupset,
GeisSize  index 
)

Gets an indicated gesture group from a groupset.

Parameters:
[in]groupsetThe groupset.
[in]indexIndicates which gesture group to retrieve.
GeisSize geis_groupset_group_count ( GeisGroupSet  groupset)

Gets the number of gesture groups in a groupset.

Parameters:
[in]groupsetThe groupset.
GeisAttr geis_touch_attr ( GeisTouch  touch,
GeisSize  index 
)

Gets an indicated attr from a touch.

Parameters:
[in]touchThe touch.
[in]indexIndicates which attr to retrieve.
GeisAttr geis_touch_attr_by_name ( GeisTouch  touch,
GeisString  name 
)

Gets a named attr from a touch.

Parameters:
[in]touchThe touch.
[in]nameNames the attr to retrieve.
Returns:
the named attr if it is present, NULL otherwise.
GeisSize geis_touch_attr_count ( GeisTouch  touch)

Gets the number of attrs associated with a touch.

Parameters:
[in]touchThe touch.

Gets the identifier of a touch.

Parameters:
[in]touchThe touch.
GeisTouch geis_touchset_touch ( GeisTouchSet  touchset,
GeisSize  index 
)

Gets an indicated touch from a touchset.

Parameters:
[in]touchsetThe touchset.
[in]indexIndicates which touch to retrieve.

Gets an identified touch from a touchset.

Parameters:
[in]touchsetThe touchset.
[in]touchidIdentifies a touch.

Returns the identified touch, or NULL if the touchid is not in the touchset.

GeisSize geis_touchset_touch_count ( GeisTouchSet  touchset)

Gets the number of touches in a touchset.

Parameters:
[in]touchsetThe touchset,
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines