[go: up one dir, main page]

File: macros.dox

package info (click to toggle)
coin3 3.1.3-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 48,344 kB
  • ctags: 70,042
  • sloc: cpp: 314,328; ansic: 15,927; sh: 13,635; makefile: 8,780; perl: 2,149; lex: 1,302; lisp: 1,247; yacc: 184; xml: 175; sed: 68
file content (157 lines) | stat: -rw-r--r-- 4,383 bytes parent folder | download | duplicates (2)
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
/**************************************************************************\
 *
 *  This file is part of the Coin 3D visualization library.
 *  Copyright (C) by Kongsberg Oil & Gas Technologies.
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU General Public License
 *  ("GPL") version 2 as published by the Free Software Foundation.
 *  See the file LICENSE.GPL at the root directory of this source
 *  distribution for additional information about the GNU GPL.
 *
 *  For using Coin with software that can not be combined with the GNU
 *  GPL, and for taking advantage of the additional benefits of our
 *  support services, please contact Kongsberg Oil & Gas Technologies
 *  about acquiring a Coin Professional Edition License.
 *
 *  See http://www.coin3d.org/ for more information.
 *
 *  Kongsberg Oil & Gas Technologies, Bygdoy Alle 5, 0257 Oslo, NORWAY.
 *  http://www.sim.no/  sales@sim.no  coin-support@coin3d.org
 *
\**************************************************************************/

/*!
  \page macros_nodes

  <h2>Node Macros</h2>

  - \ref SO_NODE_HEADER
  - \ref SO_NODE_ABSTRACT_HEADER
  - \ref SO_NODE_SOURCE
  - \ref SO_NODE_ABSTRACT_SOURCE
  - \ref SO_NODE_INIT_CLASS
  - \ref SO_NODE_INIT_ABSTRACT_CLASS
  - \ref SO_NODE_IS_FIRST_INSTANCE
  - \ref SO_NODE_CONSTRUCTOR
  - \ref SO_NODE_ADD_FIELD
  - \ref SO_NODE_DEFINE_ENUM_VALUE

  \ingroup macros
*/

#define SO_NODE_HEADER(classname)
/*!
  \def SO_NODE_HEADER(classname)

  This macro adds standard declarations needed in Coin nodes for
  object creation and type identification.

  \sa SO_NODE_SOURCE
  \ingroup nodes
*/

#define SO_NODE_ABSTRACT_HEADER(classname)
/*!
  \def SO_NODE_ABSTRACT_HEADER(classname)

  This macro adds standard declarations needed in Coin nodes for
  type identification.  It differs from \ref SO_NODE_HEADER in that
  the object creation part is omitted.

  \sa SO_NODE_ABSTRACT_SOURCE
  \ingroup nodes
*/

#define SO_NODE_INIT_CLASS(classname, parentclass, parentname)
/*!
  \def SO_NODE_INIT_CLASS(classname, parentclass, parentname)

  This macro is used in the initClass-function in a node class. It
  registers the class by name (by creating a new SoType for the
  class), so file reading will be able to create a node of this type
  and fill it with its field values.

  \sa SO_NODE_INIT_ABSTRACT_CLASS
  \ingroup nodes
*/

#define SO_NODE_INIT_ABSTRACT_CLASS(classname, parentclass, parentname)
/*!
  \def SO_NODE_INIT_ABSTRACT_CLASS(classname, parentclass, parentname)

  This macro is used in the initClass-function in abstract node classes.
  It registers the class by name (by creating a new SoType for the
  class) for type identification purposes.

  \sa SO_NODE_INIT_CLASS
  \ingroup nodes
*/

#define SO_NODE_SOURCE(classname)
/*!
  \def SO_NODE_SOURCE(classname)

  This macro sets up the impementation of the declarations in \ref
  SO_NODE_HEADER.  It chould be placed in the implementation file for
  extension nodes.

  \sa SO_NODE_HEADER
  \ingroup nodes
*/

#define SO_NODE_ABSTRACT_SOURCE(classname)
/*!
  \def SO_NODE_ABSTRACT_SOURCE(classname)

  This macro sets up the impementation of the declarations in \ref
  SO_NODE_ABSTRACT_HEADER.  It chould be placed in the implementation
  file for abstract extension nodes.

  \sa SO_NODE_ABSTRACT_HEADER
  \ingroup nodes
*/

#define SO_NODE_CONSTRUCTOR(classname)
/*!
  \def SO_NODE_CONSTRUCTOR(classname)

  Place this in the node constructor.  It sets up the fielddata object
  for the node class.

  \ingroup nodes
*/

#define SO_NODE_IS_FIRST_INSTANCE()
/*!
  \def SO_NODE_IS_FIRST_INSTANCE()

  This macro can be used as a predicate to test if the constructed
  node is the first constructed instance of a node class, in case some
  extra initialization needs to be done that can't be done in the
  initClass() function.

  \ingroup nodes
*/

#define SO_NODE_ADD_FIELD(field, defaultvalue)
/*!
  \def SO_NODE_ADD_FIELD(field, (defaultvalue))

  This registers a field for a node, and sets its value to the default
  value.  For use in the constructor, below the \ref
  SO_NODE_CONSTRUCTOR macro.

  \ingroup nodes
*/

#define SO_NODE_DEFINE_ENUM_VALUE(enumname, enumvalue)
/*!
  \def SO_NODE_DEFINE_ENUM_VALUE(enumname, enumvalue)

  This macro associates enum names with values, used for file
  input/output.

  \ingroup nodes
*/