Gesture Generator
C Reference » Production Nodes Functionality

## Functions

XN_C_API XnStatus XN_C_DECL | xnCreateGestureGenerator (XnContext *pContext, XnNodeHandle *phGestureGenerator, XnNodeQuery *pQuery, XnEnumerationErrors *pErrors)
XN_C_API XnStatus XN_C_DECL | xnAddGesture (XnNodeHandle hInstance, const XnChar *strGesture, XnBoundingBox3D *pArea)
XN_C_API XnStatus XN_C_DECL | xnRemoveGesture (XnNodeHandle hInstance, const XnChar *strGesture)
XN_C_API XnStatus XN_C_DECL | xnGetActiveGestures (XnNodeHandle hInstance, XnChar **pstrGestures, XnUInt16 *nGestures)
XN_C_API XnStatus XN_C_DECL | xnGetAllActiveGestures (XnNodeHandle hInstance, XnChar **pstrGestures, XnUInt32 nNameLength, XnUInt16 *nGestures)
XN_C_API XnStatus XN_C_DECL | xnEnumerateGestures (XnNodeHandle hInstance, XnChar **pstrGestures, XnUInt16 *nGestures)
XN_C_API XnStatus XN_C_DECL | xnEnumerateAllGestures (XnNodeHandle hInstance, XnChar **pstrGestures, XnUInt32 nNameLength, XnUInt16 *nGestures)
XN_C_API XnUInt16 XN_C_DECL | xnGetNumberOfAvailableGestures (XnNodeHandle hInstance)
XN_C_API XnBool XN_C_DECL | xnIsGestureAvailable (XnNodeHandle hInstance, const XnChar *strGesture)
XN_C_API XnBool XN_C_DECL | xnIsGestureProgressSupported (XnNodeHandle hInstance, const XnChar *strGesture)
XN_C_API XnStatus XN_C_DECL | xnRegisterGestureCallbacks (XnNodeHandle hInstance, XnGestureRecognized RecognizedCB, XnGestureProgress ProgressCB, void *pCookie, XnCallbackHandle *phCallback)
XN_C_API void XN_C_DECL | xnUnregisterGestureCallbacks (XnNodeHandle hInstance, XnCallbackHandle hCallback)
XN_C_API XnStatus XN_C_DECL | xnRegisterToGestureChange (XnNodeHandle hInstance, XnStateChangedHandler handler, void *pCookie, XnCallbackHandle *phCallback)
XN_C_API void XN_C_DECL | xnUnregisterFromGestureChange (XnNodeHandle hInstance, XnCallbackHandle hCallback)
XN_C_API XnStatus XN_C_DECL | xnRegisterToGestureIntermediateStageCompleted (XnNodeHandle hInstance, XnGestureIntermediateStageCompleted handler, void *pCookie, XnCallbackHandle *phCallback)
XN_C_API void XN_C_DECL | xnUnregisterFromGestureIntermediateStageCompleted (XnNodeHandle hInstance, XnCallbackHandle hCallback)
XN_C_API XnStatus XN_C_DECL | xnRegisterToGestureReadyForNextIntermediateStage (XnNodeHandle hInstance, XnGestureReadyForNextIntermediateStage handler, void *pCookie, XnCallbackHandle *phCallback)
XN_C_API void XN_C_DECL | xnUnregisterFromGestureReadyForNextIntermediateStage (XnNodeHandle hInstance, XnCallbackHandle hCallback)

## Detailed Description

A Gestures Generator node is a Generator that recognizes certain gestures. It supports all Generator functions, and adds additional functions.

## Function Documentation

## xnAddGesture()

XN_C_API XnStatus XN_C_DECL xnAddGesture | ( | XnNodeHandle | hInstance,
|  | const XnChar * | strGesture,
|  | XnBoundingBox3D * | pArea )

Turn on gesture. The generator will now look for this gesture.

Parameters

  hInstance | [in] A handle to the instance
  strGesture | [in] The name of the gesture to look for
  pArea | [in] The area in which to look for the gesture (in Real-World coordinates)

## xnCreateGestureGenerator()

XN_C_API XnStatus XN_C_DECL xnCreateGestureGenerator | ( | XnContext * | pContext,
|  | XnNodeHandle * | phGestureGenerator,
|  | XnNodeQuery * | pQuery,
|  | XnEnumerationErrors * | pErrors )

Creates a Gesture Generator.

Parameters

  pContext | [in] The context in which to create the gesture generator.
  phGestureGenerator | [out] A handle to the created gesture generator.
  pQuery | [in] Optional. Can be used to select which Gesture node to create. If not specified, this function may create any gesture node that is available.
  pErrors | [in] Optional. If provided, will be filled with information about gesture nodes that could not be created.

## xnEnumerateAllGestures()

XN_C_API XnStatus XN_C_DECL xnEnumerateAllGestures | ( | XnNodeHandle | hInstance,
|  | XnChar ** | pstrGestures,
|  | XnUInt32 | nNameLength,
|  | XnUInt16 * | nGestures )

Get the names of all gestures available.

Parameters

  hInstance | [in] A handle to the instance
  pstrGestures | [out] Preallocated memory, for the gesture names
  nNameLength | [in] Memory size for each gesture name
  nGestures | [in,out] The size of the preallocated memory. Changed to number of gestures

## xnEnumerateGestures()

XN_C_API XnStatus XN_C_DECL xnEnumerateGestures | ( | XnNodeHandle | hInstance,
|  | XnChar ** | pstrGestures,
|  | XnUInt16 * | nGestures )

Get the names of all gestures available.

Parameters

  hInstance | [in] A handle to the instance
  pstrGestures | [out] Preallocated memory, for the gesture names
  nGestures | [in,out] The size of the preallocated memory. Changed to number of gestures

## xnGetActiveGestures()

XN_C_API XnStatus XN_C_DECL xnGetActiveGestures | ( | XnNodeHandle | hInstance,
|  | XnChar ** | pstrGestures,
|  | XnUInt16 * | nGestures )

Get the names of the gestures that are currently active.

Parameters

  hInstance | [in] A handle to the instance
  pstrGestures | [out] Preallocated memory, for the gesture names
  nGestures | [in,out] The size of the preallocated memory. Changed to number of gestures

## xnGetAllActiveGestures()

XN_C_API XnStatus XN_C_DECL xnGetAllActiveGestures | ( | XnNodeHandle | hInstance,
|  | XnChar ** | pstrGestures,
|  | XnUInt32 | nNameLength,
|  | XnUInt16 * | nGestures )

Get the names of the gestures that are currently active.

Parameters

  hInstance | [in] A handle to the instance
  pstrGestures | [out] Preallocated memory, for the gesture names
  nNameLength | [in] Memory size for each gesture name
  nGestures | [in,out] The size of the preallocated memory. Changed to number of gestures

## xnGetNumberOfAvailableGestures()

XN_C_API XnUInt16 XN_C_DECL xnGetNumberOfAvailableGestures | ( | XnNodeHandle | hInstance | ) |

Get the number of all gestures available.

Parameters

  hInstance | [in] A handle to the instance

Returns
  the number of gestures available

## xnIsGestureAvailable()

XN_C_API XnBool XN_C_DECL xnIsGestureAvailable | ( | XnNodeHandle | hInstance,
|  | const XnChar * | strGesture )

Check if a specific gesture is available in this generator.

Parameters

  hInstance | [in] A handle to the instance
  strGesture | [in] Name of the gesture to check

## xnIsGestureProgressSupported()

XN_C_API XnBool XN_C_DECL xnIsGestureProgressSupported | ( | XnNodeHandle | hInstance,
|  | const XnChar * | strGesture )

Check if the specific gesture supports 'in progress' callbacks.

Parameters

  hInstance | [in] A handle to the instance
  strGesture | [in] Name of the gesture to check

## xnRegisterGestureCallbacks()

XN_C_API XnStatus XN_C_DECL xnRegisterGestureCallbacks | ( | XnNodeHandle | hInstance,
|  | XnGestureRecognized | RecognizedCB,
|  | XnGestureProgress | ProgressCB,
|  | void * | pCookie,
|  | XnCallbackHandle * | phCallback )

Register to all gesture callbacks.

Parameters

  hInstance | [in] A handle to the instance
  RecognizedCB | [in] A callback to be called when a gesture is recognized
  ProgressCB | [in] A callback to be called when a gesture is on its way to be recognized
  pCookie | [in] User's cookie, to be delivered to the callbacks
  phCallback | [out] The handle to these callbacks, to allow unregistration

## xnRegisterToGestureChange()

XN_C_API XnStatus XN_C_DECL xnRegisterToGestureChange | ( | XnNodeHandle | hInstance,
|  | XnStateChangedHandler | handler,
|  | void * | pCookie,
|  | XnCallbackHandle * | phCallback )

Register to when gestures are added or removed.

Parameters

  hInstance | [in] A handle to the instance
  handler | [in] The callback to be called when gesture configuration changes.
  pCookie | [in] User's cookie, to be delivered to the callbacks
  phCallback | [out] The handle to these callbacks, to allow unregistration

## xnRegisterToGestureIntermediateStageCompleted()

XN_C_API XnStatus XN_C_DECL xnRegisterToGestureIntermediateStageCompleted | ( | XnNodeHandle | hInstance,
|  | XnGestureIntermediateStageCompleted | handler,
|  | void * | pCookie,
|  | XnCallbackHandle * | phCallback )

Register to when a gesture is in progress.

Parameters

  hInstance | [in] A handle to the instance
  handler | [in] The callback to be called when the gesture is in progress
  pCookie | [in] User's cookie, to be delivered to the callback
  phCallback | [out] The handle to the callback, to allow unregistration

## xnRegisterToGestureReadyForNextIntermediateStage()

XN_C_API XnStatus XN_C_DECL xnRegisterToGestureReadyForNextIntermediateStage | ( | XnNodeHandle | hInstance,
|  | XnGestureReadyForNextIntermediateStage | handler,
|  | void * | pCookie,
|  | XnCallbackHandle * | phCallback )

Register to when a gesture is ready for its next stage (specific to the gesture).

Parameters

  hInstance | [in] A handle to the instance
  handler | [in] The callback to be called when the gesture is ready for its next stage
  pCookie | [in] User's cookie, to be delivered to the callback
  phCallback | [out] The handle to this callback, to allow unregistration

## xnRemoveGesture()

XN_C_API XnStatus XN_C_DECL xnRemoveGesture | ( | XnNodeHandle | hInstance,
|  | const XnChar * | strGesture )

Turn off gesture. The generator will no longer look for this gesture.

Parameters

  hInstance | [in] A handle to the instance
  strGesture | [in] The name of the gesture to not look for anymore

## xnUnregisterFromGestureChange()

XN_C_API void XN_C_DECL xnUnregisterFromGestureChange | ( | XnNodeHandle | hInstance,
|  | XnCallbackHandle | hCallback )

Unregister from when gestures are added or removed.

Parameters

  hInstance | [in] A handle to the instance
  hCallback | [in] The handle received from registration

## xnUnregisterFromGestureIntermediateStageCompleted()

XN_C_API void XN_C_DECL xnUnregisterFromGestureIntermediateStageCompleted | ( | XnNodeHandle | hInstance,
|  | XnCallbackHandle | hCallback )

Unregister from when a gesture is in progress.

Parameters

  hInstance | [in] A handle to the instance
  hCallback | [in] The handle received from registration

## xnUnregisterFromGestureReadyForNextIntermediateStage()

XN_C_API void XN_C_DECL xnUnregisterFromGestureReadyForNextIntermediateStage | ( | XnNodeHandle | hInstance,
|  | XnCallbackHandle | hCallback )

Unregister from when a gesture is ready for its next stage.

Parameters

  hInstance | [in] A handle to the instance
  hCallback | [in] The handle received from registration

## xnUnregisterGestureCallbacks()

XN_C_API void XN_C_DECL xnUnregisterGestureCallbacks | ( | XnNodeHandle | hInstance,
|  | XnCallbackHandle | hCallback )

Unregister from gesture callbacks.

Parameters

  hInstance | [in] A handle to the instance
  hCallback | [in] The handle received from registration