OpenNI 1.5.2
Implement the Proper Interface

Note that OpenNI has a different interface for a node implementation than the actual API of the node. However sometimes very similar, those interfaces are different.

The module's interfaces (C++ ones) are defined in file XnModuleCppInterface.h.

The following table lists current OpenNI node types and their module interface.

Node Type Module Interface
Production Node xn::ModuleProductionNode
Device xn::ModuleDevice
Generator xn::ModuleGenerator
Recorder xn::ModuleRecorder
Player xn::ModulePlayer
Map Generator xn::ModuleMapGenerator
Depth Generator xn::ModuleDepthGenerator
Image Generator xn::ModuleImageGenerator
IR Generator xn::ModuleIRGenerator
Gestures Generator xn::ModuleGestureGenerator
Scene Analyzer xn::ModuleSceneAnalyzer
Hands Generator xn::ModuleHandsGenerator
User Generator xn::ModuleUserGenerator
Audio Generator xn::ModuleAudioGenerator
Codec xn::ModuleCodec
Script xn::ModuleScriptNode

Our newly created class should inherit virtually from the proper interface. For example, if we're creating a hand generator then our class declaration should start with:

class MyHandGenerator: public virtual xn::ModuleHandsGenerator
{
...
};