/** @page conc_capabilities Capabilities Mechanism OpenNI defines core functionality which is always supported by all node implementations of a specific node type. Additional optional functionality is also defined by OpenNI and exposed as "capabilities". The @ref xn::ProductionNode class provides the @ref xn::ProductionNode::IsCapabilitySupported "IsCapabilitySupported()" method to check if this specific implementation supports a certain capability. In summary, there are two separate functionality sets: - Obligatory functionality that is accessible through the methods provided by the principle OpenNI production node classes, i.e., the @ref xn::ProductionNode "ProductionNode" class and its derivatives. Developers wishing to implement their own nodes are obliged to implement these functionalities (events, methods, etc.) - Optional functionality that is accessible through the capabilities mechanism. The developers can optionally implement these classes and their members. The capability's functionality is then accessible through the capability's name. OpenNI supports a defined list of optional capabilities. An example of a capability is the @ref xn::MirrorCapability "MirrorCapability" class. When this capability is supported by any particular production node, the application can call its @ref xn::MirrorCapability::SetMirror() "SetMirror()" method. */