.TH "coin_nodes" 3 "Tue Dec 26 2023 17:59:22" "Version 4.0.2" "Coin" \" -*- nroff -*- .ad l .nh .SH NAME coin_nodes \- Node Classes .PP \- Nodes are scene based objects performs various actions such as rendering\&. .SH SYNOPSIS .br .PP .SS "Classes" .in +1c .ti -1c .RI "class \fBSoAlphaTest\fP" .br .RI "The \fBSoAlphaTest\fP class is a node used to control the GL alpha test function\&. " .ti -1c .RI "class \fBSoAnnotation\fP" .br .RI "The \fBSoAnnotation\fP node draws all its child geometry on top of other geometry\&. " .ti -1c .RI "class \fBSoAntiSquish\fP" .br .RI "The \fBSoAntiSquish\fP class is used to reset to uniform scaling\&. " .ti -1c .RI "class \fBSoArray\fP" .br .RI "The \fBSoArray\fP class is a group node for setting up regular arrays of subgraphs\&. " .ti -1c .RI "class \fBSoBaseColor\fP" .br .RI "The \fBSoBaseColor\fP class provides a node type for convenient setting of the base material color\&. " .ti -1c .RI "class \fBSoBlinker\fP" .br .RI "The \fBSoBlinker\fP class is a cycling switch node\&. " .ti -1c .RI "class \fBSoBumpMap\fP" .br .RI "The \fBSoBumpMap\fP class is used to map a bump map onto subsequent shapes\&. " .ti -1c .RI "class \fBSoBumpMapCoordinate\fP" .br .RI "The \fBSoBumpMapCoordinate\fP class is a node for providing bump map coordinates to shape nodes\&. " .ti -1c .RI "class \fBSoBumpMapTransform\fP" .br .RI "The \fBSoBumpMapTransform\fP class is used to define 2D bump map transformations\&. " .ti -1c .RI "class \fBSoCallback\fP" .br .RI "The \fBSoCallback\fP class is a node type which provides a means of setting callback hooks in the scene graph\&. " .ti -1c .RI "class \fBSoCacheHint\fP" .br .RI "The \fBSoCacheHint\fP class is a node containing hints about how to cache geometry\&. " .ti -1c .RI "class \fBSoCamera\fP" .br .RI "The \fBSoCamera\fP class is the abstract base class for camera definition nodes\&. " .ti -1c .RI "class \fBSoClipPlane\fP" .br .RI "The \fBSoClipPlane\fP class is a node type for specifying clipping planes\&. " .ti -1c .RI "class \fBSoColorIndex\fP" .br .RI "The \fBSoColorIndex\fP class is used to specify color indices for subsequent shapes\&. " .ti -1c .RI "class \fBSoComplexity\fP" .br .RI "The \fBSoComplexity\fP class is a node type which is used to set the trade-off between quality and performance\&. " .ti -1c .RI "class \fBSoCoordinate3\fP" .br .RI "The \fBSoCoordinate3\fP class is a node for providing coordinates to shape nodes\&. " .ti -1c .RI "class \fBSoCoordinate4\fP" .br .RI "The \fBSoCoordinate4\fP class is a node for providing coordinates to shape nodes\&. " .ti -1c .RI "class \fBSoDepthBuffer\fP" .br .RI "The \fBSoDepthBuffer\fP class is a node used to control the GL depth buffer\&. " .ti -1c .RI "class \fBSoDirectionalLight\fP" .br .RI "The \fBSoDirectionalLight\fP class is a node type for specifying directional light sources\&. " .ti -1c .RI "class \fBSoDrawStyle\fP" .br .RI "The \fBSoDrawStyle\fP class specifies common rendering properties for shapes\&. " .ti -1c .RI "class \fBSoEnvironment\fP" .br .RI "The \fBSoEnvironment\fP class is a node for specifying global rendering parameters\&. " .ti -1c .RI "class \fBSoEventCallback\fP" .br .RI "The \fBSoEventCallback\fP class provides functionality for catching events\&. " .ti -1c .RI "class \fBSoExtSelection\fP" .br .RI "The \fBSoExtSelection\fP class can be used for extended selection functionality\&. " .ti -1c .RI "class \fBSoFile\fP" .br .RI "The \fBSoFile\fP class is node container for another model file\&. " .ti -1c .RI "class \fBSoFont\fP" .br .RI "The \fBSoFont\fP class is an appearance node for setting fonts\&. " .ti -1c .RI "class \fBSoFontStyle\fP" .br .RI "The \fBSoFontStyle\fP class changes the appearance of fonts for text rendering nodes\&. " .ti -1c .RI "class \fBSoFrustumCamera\fP" .br .RI "The \fBSoFrustumCamera\fP class defines a camera with a generic frustum\&.\&. " .ti -1c .RI "class \fBSoGroup\fP" .br .RI "The \fBSoGroup\fP class is a node which managed other node instances\&. " .ti -1c .RI "class \fBSoInfo\fP" .br .RI "The \fBSoInfo\fP class is a node for holding text information\&. " .ti -1c .RI "class \fBSoLOD\fP" .br .RI "The \fBSoLOD\fP class is used to choose a child based distance between viewer and object\&. " .ti -1c .RI "class \fBSoLabel\fP" .br .RI "The \fBSoLabel\fP class is a node for holding label information in a scene graph\&. " .ti -1c .RI "class \fBSoLevelOfDetail\fP" .br .RI "The \fBSoLevelOfDetail\fP class is used to choose a child based on projected size\&. " .ti -1c .RI "class \fBSoLight\fP" .br .RI "The \fBSoLight\fP class is the base class for light emitting nodes\&. " .ti -1c .RI "class \fBSoLightModel\fP" .br .RI "The \fBSoLightModel\fP class is a node for specifying the model for geometry lighting\&. " .ti -1c .RI "class \fBSoLinearProfile\fP" .br .RI "The \fBSoLinearProfile\fP class is a node for specifying linear profile curves\&. " .ti -1c .RI "class \fBSoListener\fP" .br .RI "The \fBSoListener\fP class defines listener attributes used when rendering sound\&. " .ti -1c .RI "class \fBSoLocateHighlight\fP" .br .RI "The \fBSoLocateHighlight\fP class highlights geometry under the cursor\&. " .ti -1c .RI "class \fBSoMaterial\fP" .br .RI "The \fBSoMaterial\fP class is a node type for setting up material values for scene geometry\&. " .ti -1c .RI "class \fBSoMaterialBinding\fP" .br .RI "The \fBSoMaterialBinding\fP class is a node for setting up how materials are mapped to shapes\&. " .ti -1c .RI "class \fBSoMatrixTransform\fP" .br .RI "The \fBSoMatrixTransform\fP class is a transformation node\&. " .ti -1c .RI "class \fBSoMultipleCopy\fP" .br .RI "The \fBSoMultipleCopy\fP class redraws its children multiple times at different transformations\&. " .ti -1c .RI "class \fBSoNode\fP" .br .RI "The \fBSoNode\fP class is the base class for nodes used in scene graphs\&. " .ti -1c .RI "class \fBSoNormal\fP" .br .RI "The \fBSoNormal\fP class is a node for providing normals to the state\&. " .ti -1c .RI "class \fBSoNormalBinding\fP" .br .RI "The \fBSoNormalBinding\fP class is a node for specifying normal vector bindings\&. " .ti -1c .RI "class \fBSoNurbsProfile\fP" .br .RI "The \fBSoNurbsProfile\fP class is a node for specifying smooth profile curves\&. " .ti -1c .RI "class \fBSoOrthographicCamera\fP" .br .RI "The \fBSoOrthographicCamera\fP class defines a camera node with orthographic rendering\&. " .ti -1c .RI "class \fBSoPackedColor\fP" .br .RI "The \fBSoPackedColor\fP class is a node for setting diffuse and transparency material values\&. " .ti -1c .RI "class \fBSoPathSwitch\fP" .br .RI "The \fBSoPathSwitch\fP class traverses only when current path matches a configurable path\&. " .ti -1c .RI "class \fBSoPendulum\fP" .br .RI "The \fBSoPendulum\fP class is used to create oscillating rotations\&. " .ti -1c .RI "class \fBSoPerspectiveCamera\fP" .br .RI "The \fBSoPerspectiveCamera\fP class defines a camera node with perspective rendering\&. " .ti -1c .RI "class \fBSoPickStyle\fP" .br .RI "The \fBSoPickStyle\fP class is a node for setting up how to do picking\&. " .ti -1c .RI "class \fBSoPointLight\fP" .br .RI "The \fBSoPointLight\fP class is a node type for light sources\&. " .ti -1c .RI "class \fBSoPolygonOffset\fP" .br .RI "The \fBSoPolygonOffset\fP class is a node type for 'layering' rendering primitives\&. " .ti -1c .RI "class \fBSoProfile\fP" .br .RI "The \fBSoProfile\fP class is the abstract superclass for profile definitions\&. " .ti -1c .RI "class \fBSoProfileCoordinate2\fP" .br .RI "The \fBSoProfileCoordinate2\fP class is a node specifying a set of 2D coordinates for profiles\&. " .ti -1c .RI "class \fBSoProfileCoordinate3\fP" .br .RI "The \fBSoProfileCoordinate3\fP class is a node specifying a set of 3D coordinates for profiles\&. " .ti -1c .RI "class \fBSoResetTransform\fP" .br .RI "The \fBSoResetTransform\fP class is a node type which makes it possible to 'nullify' state during traversal\&. " .ti -1c .RI "class \fBSoReversePerspectiveCamera\fP" .br .RI "The \fBSoReversePerspectiveCamera\fP class defines a camera node with reverse perspective rendering\&. " .ti -1c .RI "class \fBSoRotation\fP" .br .RI "The \fBSoRotation\fP class specifies a rotation transformation\&. " .ti -1c .RI "class \fBSoRotationXYZ\fP" .br .RI "The \fBSoRotationXYZ\fP class is a node type for specifying rotation around a particular axis\&. " .ti -1c .RI "class \fBSoRotor\fP" .br .RI "The \fBSoRotor\fP class is a node used to animate rotations\&. " .ti -1c .RI "class \fBSoScale\fP" .br .RI "The \fBSoScale\fP class is a node type for scaling scene graph geometry\&. " .ti -1c .RI "class \fBSoSceneTexture2\fP" .br .RI "The \fBSoSceneTexture2\fP class is used to create a 2D texture from a Coin scene graph\&. " .ti -1c .RI "class \fBSoSceneTextureCubeMap\fP" .br .RI "Renders a scene into a texture cube map\&. " .ti -1c .RI "class \fBSoSelection\fP" .br .RI "The \fBSoSelection\fP class manages a list of selected nodes\&. " .ti -1c .RI "class \fBSoSeparator\fP" .br .RI "The \fBSoSeparator\fP class is a state-preserving group node\&. " .ti -1c .RI "class \fBSoShapeHints\fP" .br .RI "The \fBSoShapeHints\fP class is a node containing hints about how to render geometry\&. " .ti -1c .RI "class \fBSoShuttle\fP" .br .RI "The \fBSoShuttle\fP class is used to oscillate between two translations\&. " .ti -1c .RI "class \fBSoSpotLight\fP" .br .RI "The \fBSoSpotLight\fP class is a node type for light sources with a cone shaped light volume\&. " .ti -1c .RI "class \fBSoSurroundScale\fP" .br .RI "The \fBSoSurroundScale\fP class is used to automatically scale geometry to surround other geometry\&. " .ti -1c .RI "class \fBSoSwitch\fP" .br .RI "The \fBSoSwitch\fP class is a group node which selects one child subgraph for traversal\&. " .ti -1c .RI "class \fBSoTexture\fP" .br .RI "Common base class for texture nodes\&. " .ti -1c .RI "class \fBSoTexture2\fP" .br .RI "The \fBSoTexture2\fP class is used to map a 2D texture onto subsequent geometry in the scene graph\&. " .ti -1c .RI "class \fBSoTexture3\fP" .br .RI "The \fBSoTexture3\fP class is used to map a 3D texture onto geometry\&. " .ti -1c .RI "class \fBSoTexture2Transform\fP" .br .RI "The \fBSoTexture2Transform\fP class is used to define 2D texture transformations\&. " .ti -1c .RI "class \fBSoTexture3Transform\fP" .br .RI "The \fBSoTexture3Transform\fP class is used to define 3D texture transformations\&. " .ti -1c .RI "class \fBSoTextureCombine\fP" .br .RI "The \fBSoTextureCombine\fP class is a node for setting texture combine functions\&. " .ti -1c .RI "class \fBSoTextureCoordinate2\fP" .br .RI "The \fBSoTextureCoordinate2\fP class contains a set of coordinates for the mapping of 2D textures\&. " .ti -1c .RI "class \fBSoTextureCoordinate3\fP" .br .RI "The \fBSoTextureCoordinate3\fP class contains a set of coordinates for the mapping of 2D textures\&. " .ti -1c .RI "class \fBSoTextureCoordinateBinding\fP" .br .RI "The \fBSoTextureCoordinateBinding\fP class says how texture coordinates should be bound to shapes\&. " .ti -1c .RI "class \fBSoTextureCoordinateCube\fP" .br .RI "The \fBSoTextureCoordinateCube\fP class generates cube mapped texture coordinates for shapes\&. " .ti -1c .RI "class \fBSoTextureCoordinateCylinder\fP" .br .RI "The \fBSoTextureCoordinateCylinder\fP class generates cylinder mapped texture coordinates for shapes\&. " .ti -1c .RI "class \fBSoTextureCoordinateSphere\fP" .br .RI "The \fBSoTextureCoordinateSphere\fP class generates sphere mapped texture coordinates for shapes\&. " .ti -1c .RI "class \fBSoTextureCoordinateDefault\fP" .br .RI "The \fBSoTextureCoordinateDefault\fP class removes texture coordinates from the state\&. " .ti -1c .RI "class \fBSoTextureCoordinateEnvironment\fP" .br .RI "The \fBSoTextureCoordinateEnvironment\fP class generates texture coordinates by projecting onto a surrounding texture\&. " .ti -1c .RI "class \fBSoTextureCoordinateFunction\fP" .br .RI "The \fBSoTextureCoordinateFunction\fP class is an abstract base class for texture coordinate generating nodes\&. " .ti -1c .RI "class \fBSoTextureCoordinatePlane\fP" .br .RI "The \fBSoTextureCoordinatePlane\fP class generates texture coordinates by projecting onto a plane\&. " .ti -1c .RI "class \fBSoTextureCoordinateNormalMap\fP" .br .RI "The \fBSoTextureCoordinateNormalMap\fP class generates texture coordinates by projecting onto a surrounding texture\&. " .ti -1c .RI "class \fBSoTextureCoordinateReflectionMap\fP" .br .RI "The \fBSoTextureCoordinateReflectionMap\fP class generates 3D reflection texture coordinates\&. " .ti -1c .RI "class \fBSoTextureCoordinateObject\fP" .br .RI "The \fBSoTextureCoordinateObject\fP class generates texture coordinates by\&.\&.\&. " .ti -1c .RI "class \fBSoTextureCubeMap\fP" .br .RI "The \fBSoTextureCubeMap\fP class is used to map a cube map onto subsequent shape nodes\&. " .ti -1c .RI "class \fBSoTextureMatrixTransform\fP" .br .RI "The \fBSoTextureMatrixTransform\fP class is used to define a texture matrix transformation\&. " .ti -1c .RI "class \fBSoTextureScalePolicy\fP" .br .RI "The \fBSoTextureScalePolicy\fP class is a node for controlling the texture scale policy\&. " .ti -1c .RI "class \fBSoTextureUnit\fP" .br .RI "The \fBSoTextureUnit\fP class is a node for setting the active texture unit\&. " .ti -1c .RI "class \fBSoTransform\fP" .br .RI "The \fBSoTransform\fP class is the 'all-purpose' transformation node type\&. " .ti -1c .RI "class \fBSoTransparencyType\fP" .br .RI "The \fBSoTransparencyType\fP class is a node for setting the transparency type for shapes\&. " .ti -1c .RI "class \fBSoTransformSeparator\fP" .br .RI "The \fBSoTransformSeparator\fP class is a group node preserving the current transformations\&. " .ti -1c .RI "class \fBSoTransformation\fP" .br .RI "The \fBSoTransformation\fP class is the abstract base class for transformation nodes\&. " .ti -1c .RI "class \fBSoTranslation\fP" .br .RI "The \fBSoTranslation\fP class is a node type for specifying geometry translations\&. " .ti -1c .RI "class \fBSoUnits\fP" .br .RI "The \fBSoUnits\fP class is a node for setting unit types\&. " .ti -1c .RI "class \fBSoVertexProperty\fP" .br .RI "The \fBSoVertexProperty\fP class collects the functionality of various appearance nodes\&. " .ti -1c .RI "class \fBSoWWWAnchor\fP" .br .RI "The \fBSoWWWAnchor\fP class adds URL callbacks to the highlighted geometry\&. " .ti -1c .RI "class \fBSoWWWInline\fP" .br .RI "The \fBSoWWWInline\fP class is a node used to include data from an URL\&. " .ti -1c .RI "class \fBSoAsciiText\fP" .br .RI "The \fBSoAsciiText\fP class renders flat 3D text\&. " .ti -1c .RI "class \fBSoCone\fP" .br .RI "The \fBSoCone\fP class is for rendering cone shapes\&. " .ti -1c .RI "class \fBSoCube\fP" .br .RI "The \fBSoCube\fP class is for rendering cubes\&. " .ti -1c .RI "class \fBSoCylinder\fP" .br .RI "The \fBSoCylinder\fP class is for rendering cylinder shapes\&. " .ti -1c .RI "class \fBSoFaceSet\fP" .br .RI "The \fBSoFaceSet\fP class is used to render and organize non-indexed polygonal face data\&. " .ti -1c .RI "class \fBSoImage\fP" .br .RI "The \fBSoImage\fP class draws a 2D image on the viewport\&. " .ti -1c .RI "class \fBSoIndexedFaceSet\fP" .br .RI "The \fBSoIndexedFaceSet\fP class is used to handle generic indexed facesets\&. " .ti -1c .RI "class \fBSoIndexedLineSet\fP" .br .RI "The \fBSoIndexedLineSet\fP class is used to render and otherwise represent indexed lines\&. " .ti -1c .RI "class \fBSoIndexedMarkerSet\fP" .br .RI "The \fBSoIndexedMarkerSet\fP class is used to display a set of bitmap markers at 3D positions\&. " .ti -1c .RI "class \fBSoIndexedNurbsCurve\fP" .br .RI "The \fBSoIndexedNurbsCurve\fP class is a node for representing smooth curves\&. " .ti -1c .RI "class \fBSoIndexedNurbsSurface\fP" .br .RI "The \fBSoIndexedNurbsSurface\fP class can be used to render NURBS surfaces\&. " .ti -1c .RI "class \fBSoIndexedPointSet\fP" .br .RI "The \fBSoIndexedPointSet\fP class is used to display a set of 3D points\&. " .ti -1c .RI "class \fBSoIndexedShape\fP" .br .RI "The \fBSoIndexedShape\fP class is the superclass for all indexed vertex shapes\&. " .ti -1c .RI "class \fBSoIndexedTriangleStripSet\fP" .br .RI "The \fBSoIndexedTriangleStripSet\fP class keeps data for rendering and otherwise representing triangle strips\&. " .ti -1c .RI "class \fBSoLineSet\fP" .br .RI "The \fBSoLineSet\fP class is used to render and organize non-indexed polylines\&. " .ti -1c .RI "class \fBSoMarkerSet\fP" .br .RI "The \fBSoMarkerSet\fP class displays a set of 2D bitmap markers in 3D\&. " .ti -1c .RI "class \fBSoNonIndexedShape\fP" .br .RI "The \fBSoNonIndexedShape\fP class is the superclass for all non-indexed vertex based shapes\&. " .ti -1c .RI "class \fBSoNurbsCurve\fP" .br .RI "The \fBSoNurbsCurve\fP class is a node for representing smooth curves\&. " .ti -1c .RI "class \fBSoNurbsSurface\fP" .br .RI "The \fBSoNurbsSurface\fP class is used to render smooth surfaces\&. " .ti -1c .RI "class \fBSoPointSet\fP" .br .RI "The \fBSoPointSet\fP class is used to display a set of 3D points\&. " .ti -1c .RI "class \fBSoQuadMesh\fP" .br .RI "The \fBSoQuadMesh\fP class is used to render and optimize a quadrilateral mesh\&. " .ti -1c .RI "class \fBSoShape\fP" .br .RI "The \fBSoShape\fP class is the superclass for geometry shapes\&. " .ti -1c .RI "class \fBSoSphere\fP" .br .RI "The \fBSoSphere\fP class is for rendering sphere shapes\&. " .ti -1c .RI "class \fBSoText2\fP" .br .RI "The \fBSoText2\fP class is a node type for visualizing 2D text aligned with the camera plane\&. " .ti -1c .RI "class \fBSoText3\fP" .br .RI "The \fBSoText3\fP class renders extruded 3D text\&. " .ti -1c .RI "class \fBSoTriangleStripSet\fP" .br .RI "The \fBSoTriangleStripSet\fP class is used to render and control non-indexed triangle strips\&. " .ti -1c .RI "class \fBSoVertexShape\fP" .br .RI "The \fBSoVertexShape\fP class is the superclass for all vertex based shapes\&. " .ti -1c .RI "class \fBSoShadowStyle\fP" .br .RI "The \fBSoShadowStyle\fP class is a node for setting the shadow style on nodes\&. " .ti -1c .RI "class \fBSoShadowSpotLight\fP" .br .RI "The \fBSoShadowSpotLight\fP class is a node for setting up a spot light which casts shadows\&. " .ti -1c .RI "class \fBSoShadowCulling\fP" .br .RI "The \fBSoShadowCulling\fP class is a node for setting the shadow style on nodes\&. " .ti -1c .RI "class \fBSoGeoOrigin\fP" .br .RI "The \fBSoGeoOrigin\fP class is used to specify an absolute geographic location against which geometry is referenced\&. " .ti -1c .RI "class \fBSoGeoLocation\fP" .br .RI "The \fBSoGeoLocation\fP class is used to georeference the following nodes\&. " .ti -1c .RI "class \fBSoGeoSeparator\fP" .br .RI "The \fBSoGeoSeparator\fP class is used to georeference a scene graph\&. " .ti -1c .RI "class \fBSoGeoCoordinate\fP" .br .RI "The \fBSoGeoCoordinate\fP class is used to specify a list of geographical coordinates\&. " .in -1c .SS "Macros" .in +1c .ti -1c .RI "#\fBdefine\fP \fBSO_NODE_HEADER\fP(\fBclassname\fP)" .br .ti -1c .RI "#\fBdefine\fP \fBSO_NODE_ABSTRACT_HEADER\fP(\fBclassname\fP)" .br .ti -1c .RI "#\fBdefine\fP \fBSO_NODE_INIT_CLASS\fP(\fBclassname\fP, \fBparentclass\fP, parentname)" .br .ti -1c .RI "#\fBdefine\fP \fBSO_NODE_INIT_ABSTRACT_CLASS\fP(\fBclassname\fP, \fBparentclass\fP, parentname)" .br .ti -1c .RI "#\fBdefine\fP \fBSO_NODE_SOURCE\fP(\fBclassname\fP)" .br .ti -1c .RI "#\fBdefine\fP \fBSO_NODE_ABSTRACT_SOURCE\fP(\fBclassname\fP)" .br .ti -1c .RI "#\fBdefine\fP \fBSO_NODE_CONSTRUCTOR\fP(\fBclassname\fP)" .br .ti -1c .RI "#\fBdefine\fP \fBSO_NODE_IS_FIRST_INSTANCE\fP()" .br .ti -1c .RI "#\fBdefine\fP \fBSO_NODE_ADD_FIELD\fP(\fBfield\fP, \fBdefaultvalue\fP)" .br .ti -1c .RI "#\fBdefine\fP \fBSO_NODE_DEFINE_ENUM_VALUE\fP(\fBenumname\fP, \fBenumvalue\fP)" .br .in -1c .SH "Detailed Description" .PP Nodes are scene based objects performs various actions such as rendering\&. This is the set of nodes Coin implements using the original Open Inventor pattern, meaning they read and write to and from files using the Inventor/VRML1 format, and produce side-effects for subsequent siblings under the same \fBSoSeparator\fP node during action traversal\&. .PP A subset of these nodes constitute the VRML1 format, and a bigger subset constitutes the Inventor format\&. The rest of the nodes are extensions that are not part of any standardized format\&. .PP For VRML97 nodes, see the \fBVRMLnodes\fP page\&. .PP The VRML1\&.0 specification is at http://www.web3d.org/x3d/specifications/vrml/VRML1.0/index.html .SH "Macro Definition Documentation" .PP .SS "#\fBdefine\fP SO_NODE_HEADER(\fBclassname\fP)" This macro adds standard declarations needed in Coin nodes for object creation and type identification\&. .PP \fBSee also\fP .RS 4 \fBSO_NODE_SOURCE\fP .RE .PP .SS "#\fBdefine\fP SO_NODE_ABSTRACT_HEADER(\fBclassname\fP)" This macro adds standard declarations needed in Coin nodes for type identification\&. It differs from \fBSO_NODE_HEADER\fP in that the object creation part is omitted\&. .PP \fBSee also\fP .RS 4 \fBSO_NODE_ABSTRACT_SOURCE\fP .RE .PP .SS "#\fBdefine\fP SO_NODE_INIT_CLASS(\fBclassname\fP, \fBparentclass\fP, parentname)" This macro is used in the initClass-function in a node class\&. It registers the class by name (by creating a new \fBSoType\fP for the class), so file reading will be able to create a node of this type and fill it with its field values\&. .PP \fBSee also\fP .RS 4 \fBSO_NODE_INIT_ABSTRACT_CLASS\fP .RE .PP .SS "#\fBdefine\fP SO_NODE_INIT_ABSTRACT_CLASS(\fBclassname\fP, \fBparentclass\fP, parentname)" This macro is used in the initClass-function in abstract node classes\&. It registers the class by name (by creating a new \fBSoType\fP for the class) for type identification purposes\&. .PP \fBSee also\fP .RS 4 \fBSO_NODE_INIT_CLASS\fP .RE .PP .SS "#\fBdefine\fP SO_NODE_SOURCE(\fBclassname\fP)" This macro sets up the implementation of the declarations in \fBSO_NODE_HEADER\fP\&. It should be placed in the implementation file for extension nodes\&. .PP \fBSee also\fP .RS 4 \fBSO_NODE_HEADER\fP .RE .PP .SS "#\fBdefine\fP SO_NODE_ABSTRACT_SOURCE(\fBclassname\fP)" This macro sets up the implementation of the declarations in \fBSO_NODE_ABSTRACT_HEADER\fP\&. It should be placed in the implementation file for abstract extension nodes\&. .PP \fBSee also\fP .RS 4 \fBSO_NODE_ABSTRACT_HEADER\fP .RE .PP .SS "#\fBdefine\fP SO_NODE_CONSTRUCTOR(\fBclassname\fP)" Place this in the node constructor\&. It sets up the field data object for the node class\&. .SS "#\fBdefine\fP 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\&. .SS "#\fBdefine\fP SO_NODE_ADD_FIELD(\fBfield\fP, \fBdefaultvalue\fP)" This registers a field for a node, and sets its value to the default value\&. For use in the constructor, below the \fBSO_NODE_CONSTRUCTOR\fP macro\&. .SS "#\fBdefine\fP SO_NODE_DEFINE_ENUM_VALUE(\fBenumname\fP, \fBenumvalue\fP)" This macro associates enum names with values, used for file input/output\&. .SH "Author" .PP Generated automatically by Doxygen for Coin from the source code\&.