File: Modules.CreatingNode.Interface.txt

package info (click to toggle)
openni 1.5.4.0%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 44,844 kB
  • sloc: cpp: 116,706; ansic: 58,777; sh: 10,287; cs: 7,698; java: 7,402; python: 1,541; makefile: 492; xml: 167
file content (96 lines) | stat: -rw-r--r-- 2,100 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/**
@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. 

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

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

*/