/** @page modules_node_interface Implement the Proper Interface Note that OpenNI has a different interface for a node implementation (MPI) than the actual API of the node. Although they seem superficially very similar, the MPI and API interfaces are different. The module's MPI interfaces (C++ ones) are defined in file @ref XnModuleCppInterface.h. The following table lists current OpenNI node types and their module interface.
Node Type Module Interface
Production Node @ref xn::ModuleProductionNode
Device @ref xn::ModuleDevice
Generator @ref xn::ModuleGenerator
Recorder @ref xn::ModuleRecorder
Player @ref xn::ModulePlayer
Map Generator @ref xn::ModuleMapGenerator
Depth Generator @ref xn::ModuleDepthGenerator
Image Generator @ref xn::ModuleImageGenerator
IR Generator @ref xn::ModuleIRGenerator
Gestures Generator @ref xn::ModuleGestureGenerator
Scene Analyzer @ref xn::ModuleSceneAnalyzer
Hands Generator @ref xn::ModuleHandsGenerator
User Generator @ref xn::ModuleUserGenerator
Audio Generator @ref xn::ModuleAudioGenerator
Codec @ref xn::ModuleCodec
Script @ref xn::ModuleScriptNode
When you want to create a new class, it must inherit virtually from the corresponding interface. For example, if you are developing a hand generator, the class declaration must be as follows: @code class MyHandGenerator: public virtual xn::ModuleHandsGenerator { ... }; @endcode */