.TH "Node Classes" 3 "Sat Oct 12 2013" "Version 4.0.0a" "Coin" \" -*- nroff -*- .ad l .nh .SH NAME Node Classes \- .SS "Classes" .in +1c .ti -1c .RI "class \fBSoGeoCoordinate\fP" .br .RI "\fIThe \fBSoGeoCoordinate\fP class is used to specify a list of geographical coordinates\&. .PP \fBFILE FORMAT/DEFAULTS:\fP \fP" .ti -1c .RI "class \fBSoGeoLocation\fP" .br .RI "\fIThe \fBSoGeoLocation\fP class is used to georeference the following nodes\&. .PP \fBFILE FORMAT/DEFAULTS:\fP \fP" .ti -1c .RI "class \fBSoGeoOrigin\fP" .br .RI "\fIThe \fBSoGeoOrigin\fP class is used to specify an absolute geographic location against which geometry is referenced\&. .PP \fBFILE FORMAT/DEFAULTS:\fP \fP" .ti -1c .RI "class \fBSoGeoSeparator\fP" .br .RI "\fIThe \fBSoGeoSeparator\fP class is used to georeference a scene graph\&. .PP \fBFILE FORMAT/DEFAULTS:\fP \fP" .ti -1c .RI "class \fBSoAnnotation\fP" .br .RI "\fIThe \fBSoAnnotation\fP node draws all its child geometry on top of other geometry\&. .PP This group-type node uses delayed rendering in combination with Z-buffer disabling to let its children transparently render their geometry on top of the other geometry in the scene\&. \fP" .ti -1c .RI "class \fBSoAntiSquish\fP" .br .RI "\fIThe \fBSoAntiSquish\fP class is used to reset to uniform scaling\&. .PP When traversed, this node replaces the scale vector of the matrix with uniform values, based on one of the \fBSoAntiSquish::Sizing\fP strategies\&. \fP" .ti -1c .RI "class \fBSoArray\fP" .br .RI "\fIThe \fBSoArray\fP class is a group node for setting up regular arrays of subgraphs\&. .PP \fBSoArray\fP presents a convenient way of duplicating a node (typically a shape node) or a complete subgraph in 1 to 3 dimensions\&. \fP" .ti -1c .RI "class \fBSoBaseColor\fP" .br .RI "\fIThe \fBSoBaseColor\fP class provides a node type for convenient setting of the base material color\&. .PP If you want to just set the diffuse color of the following geometry, you can use this node for simplicity\&. \fP" .ti -1c .RI "class \fBSoBlinker\fP" .br .RI "\fIThe \fBSoBlinker\fP class is a cycling switch node\&. .PP This switch node cycles its children \fBSoBlinker::speed\fP number of times per second\&. If the node has only one child, it will be cycled on and off\&. Cycling can be turned off using the \fBSoBlinker::on\fP field, and the node then behaves like a normal \fBSoSwitch\fP node\&. \fP" .ti -1c .RI "class \fBSoBumpMapCoordinate\fP" .br .RI "\fIThe \fBSoBumpMapCoordinate\fP class is a node for providing bump map coordinates to shape nodes\&. .PP When encountering nodes of this type during traversal, the coordinates it contains will be put on the state stack for later use by shape nodes\&. The bump map coordinates can be used to specify explicit coordinates for a bump map\&. The \fBSoBumpMap\fP node is used to specify a bump map for the shape nodes\&. \fP" .ti -1c .RI "class \fBSoBumpMap\fP" .br .RI "\fIThe \fBSoBumpMap\fP class is used to map a bump map onto subsequent shapes\&. .PP \fBSoBumpMap\fP has support for two types of maps\&. If the image is a three component (RGB) image, it will be treated as a normal map, where the red image component equals the X normal component, green equals Y, and blue is Z\&. See http://www.paulsprojects.net/tutorials/simplebump/simplebump.html for a nice introduction about bump mapping and normal maps\&. \fP" .ti -1c .RI "class \fBSoBumpMapTransform\fP" .br .RI "\fIThe \fBSoBumpMapTransform\fP class is used to define 2D bump map transformations\&. .PP Bump maps applied to shapes in the scene can be transformed by 'prefixing' in the state with instances of this node type\&. Translations, rotations and scaling in 2D can all be done\&. \fP" .ti -1c .RI "class \fBSoCacheHint\fP" .br .RI "\fIThe \fBSoCacheHint\fP class is a node containing hints about how to cache geometry\&. .PP The \fBSoCacheHint\fP node is used to set up clues to the rendering subsystem about how Coin should cache vertex data\&. \fP" .ti -1c .RI "class \fBSoCallback\fP" .br .RI "\fIThe \fBSoCallback\fP class is a node type which provides a means of setting callback hooks in the scene graph\&. .PP By inserting \fBSoCallback\fP nodes in a scene graph, the application programmer can set up functions to be executed at certain points in the traversal\&. \fP" .ti -1c .RI "class \fBSoCamera\fP" .br .RI "\fIThe \fBSoCamera\fP class is the abstract base class for camera definition nodes\&. .PP To be able to view a scene, one needs to have a camera in the scene graph\&. A camera node will set up the projection and viewing matrices for rendering of the geometry in the scene\&. \fP" .ti -1c .RI "class \fBSoClipPlane\fP" .br .RI "\fIThe \fBSoClipPlane\fP class is a node type for specifying clipping planes\&. .PP A scene graph \fIwithout\fP any \fBSoClipPlane\fP nodes uses six clipping planes to define the viewing frustum: top, bottom, left, right, near and far\&. If you want extra clipping planes for 'slicing' the visible geometry, you can do that by using nodes of this type\&. Geometry on the back side of the clipping plane is clipped away\&. \fP" .ti -1c .RI "class \fBSoColorIndex\fP" .br .RI "\fIThe \fBSoColorIndex\fP class is used to specify color indices for subsequent shapes\&. .PP This node should only be used in OpenGL color-index mode, and only when the current light model is set to \fBSoLightModel::BASE_COLOR\fP\&. \fP" .ti -1c .RI "class \fBSoComplexity\fP" .br .RI "\fIThe \fBSoComplexity\fP class is a node type which is used to set the tradeoff between quality and performance\&. .PP By inserting \fBSoComplexity\fP nodes in the scene graph, you can control the accuracy by which complex shapes are rendered and the quality of the texture mapping used for geometry in the scene\&. \fP" .ti -1c .RI "class \fBSoCoordinate3\fP" .br .RI "\fIThe \fBSoCoordinate3\fP class is a node for providing coordinates to shape nodes\&. .PP When encountering nodes of this type during traversal, the coordinates it contains will be put on the state stack for later use by shape nodes of types which needs coordinate sets (like \fBSoFaceSet\fP nodes or \fBSoPointSet\fP nodes)\&. \fP" .ti -1c .RI "class \fBSoCoordinate4\fP" .br .RI "\fIThe \fBSoCoordinate4\fP class is a node for providing coordinates to shape nodes\&. .PP When encountering nodes of this type during traversal, the coordinates it contains will be put on the statestack for later use by shape nodes of types which needs coordinate sets (like \fBSoFaceSet\fP nodes or \fBSoPointSet\fP nodes)\&. \fP" .ti -1c .RI "class \fBSoDepthBuffer\fP" .br .RI "\fIThe \fBSoDepthBuffer\fP class is a node used to control the GL depth buffer\&. \fP" .ti -1c .RI "class \fBSoDirectionalLight\fP" .br .RI "\fIThe \fBSoDirectionalLight\fP class is a node type for specifying directional light sources\&. .PP A directional light source provides a model of light sources which are at infinite distance from the geometry it illuminates, thereby having no set position and consisting of an infinite volume of parallel rays\&. \fP" .ti -1c .RI "class \fBSoDrawStyle\fP" .br .RI "\fIThe \fBSoDrawStyle\fP class specificies common rendering properties for shapes\&. .PP Use \fBSoDrawStyle\fP nodes to influence how shape nodes following them in the scenegraph will be rendered\&. This node type have fields to help decide how certain aspects of point-based shapes, line-based shapes and filled shape primitives are rendered\&. \fP" .ti -1c .RI "class \fBSoEnvironment\fP" .br .RI "\fIThe \fBSoEnvironment\fP class is a node for specifying global rendering parameters\&. .PP This node type provides the application programmer with the ability to set global parameters influencing lighting and fog\&. \fP" .ti -1c .RI "class \fBSoEventCallback\fP" .br .RI "\fIThe \fBSoEventCallback\fP class provides functionality for catching events\&. .PP Use \fBSoEventCallback\fP nodes in the scenegraph for catching user interaction events with the scenegraph's render canvas\&. \fP" .ti -1c .RI "class \fBSoExtSelection\fP" .br .RI "\fIThe \fBSoExtSelection\fP class can be used for extended selection functionality\&. .PP This class enables you to select geometry by specifying a lasso (a polygon) or a rectangle on screen\&. When objects are selected, you'll receive the same callbacks as for the \fBSoSelection\fP node\&. \fP" .ti -1c .RI "class \fBSoFile\fP" .br .RI "\fIThe \fBSoFile\fP class is node container for another model file\&. .PP This node provides a way to split your models into a set of 'component' models to include into larger 'master' files\&. \fP" .ti -1c .RI "class \fBSoFont\fP" .br .RI "\fIThe \fBSoFont\fP class is an appearance node for setting fonts\&. .PP Successive text rendering nodes (like \fBSoText2\fP, \fBSoText3\fP, \fBSoAsciiText\fP, etc) will use the font specified from an \fBSoFont\fP node when visualizing text\&. \fP" .ti -1c .RI "class \fBSoFontStyle\fP" .br .RI "\fIThe \fBSoFontStyle\fP class changes the appearance of fonts for text rendering nodes\&. .PP Successive text rendering nodes will use fonts with the style settings of this node, if a font with the given settings can be found and loaded from the system\&. \fP" .ti -1c .RI "class \fBSoFrustumCamera\fP" .br .RI "\fIThe \fBSoFrustumCamera\fP class defines a camera with a generic frustum\&.\&. \fP" .ti -1c .RI "class \fBSoGroup\fP" .br .RI "\fIThe \fBSoGroup\fP class is a node which managed other node instances\&. .PP The internal scene data structures in Coin are managed as directed graphs\&. The graphs are built by setting up a hierarchy through the use of group nodes (either of this type, or from subclasses like \fBSoSeparator\fP) which is then traversed when applying actions (like \fBSoGLRenderAction\fP) to it\&. \fP" .ti -1c .RI "class \fBSoInfo\fP" .br .RI "\fIThe \fBSoInfo\fP class is a node for holding text information\&. .PP This is simply a placeholder for textual information about a scene\&. Typically used for specifying author and copyright information in Inventor format files, but can also be used for other purposes, of course\&. \fP" .ti -1c .RI "class \fBSoLabel\fP" .br .RI "\fIThe \fBSoLabel\fP class is a node for holding label information in a scene graph\&. .PP Use this node as a convenient way of labeling nodes or subgraphs within a scene graph\&. \fP" .ti -1c .RI "class \fBSoLevelOfDetail\fP" .br .RI "\fIThe \fBSoLevelOfDetail\fP class is used to choose a child based on projected size\&. .PP A level-of-detail mechanism is typically used by application programmers to assist the library in speeding up the rendering\&. \fP" .ti -1c .RI "class \fBSoLight\fP" .br .RI "\fIThe \fBSoLight\fP class is the base class for light emitting nodes\&. .PP This node type is abstract and does not in itself provide any light sources to the scene, you need to use one of its subclasses\&. \fP" .ti -1c .RI "class \fBSoLightModel\fP" .br .RI "\fIThe \fBSoLightModel\fP class is a node for specifying the model for geometry lighting\&. .PP Use nodes of this type to set up how lighting should affect subsequent geometry in the scene\&. \fP" .ti -1c .RI "class \fBSoLinearProfile\fP" .br .RI "\fIThe \fBSoLinearProfile\fP class is a node for specifying linear profile curves\&. .PP Use nodes of this type if you want to set up profiles that are simply straight lines connected by control points\&. \fP" .ti -1c .RI "class \fBSoListener\fP" .br .RI "\fIThe \fBSoListener\fP class defines listener attributes used when rendering sound\&. .PP When rendering geometry, one needs to have a camera defining certain attributes related to vieweing\&. The \fBSoListener\fP plays a similar role when it comes to rendering audio\&. \fP" .ti -1c .RI "class \fBSoLocateHighlight\fP" .br .RI "\fIThe \fBSoLocateHighlight\fP class highlights geometry under the cursor\&. .PP Note: this node is supposed to draw to the front buffer\&. However, in Coin we always draw to the back buffer, forcing a scene redraw whenever a highlight state changes\&. \fP" .ti -1c .RI "class \fBSoLOD\fP" .br .RI "\fIThe \fBSoLOD\fP class is used to choose a child based distance between viewer and object\&. .PP The class documentation for the \fBSoLOD\fP node class would be similar enough to that of \fBSoLevelOfDetail\fP that we will refer you to look at that one first\&. It will explain the general principles of what a level-of-detail mechanism is, and why and how to use it\&. \fP" .ti -1c .RI "class \fBSoMaterialBinding\fP" .br .RI "\fIThe \fBSoMaterialBinding\fP class is a node for setting up how materials are mapped to shapes\&. .PP The material binding specified in nodes of this type decides how the material values of \fBSoMaterial\fP nodes are mapped on the builtin geometry shape nodes\&. \fP" .ti -1c .RI "class \fBSoMaterial\fP" .br .RI "\fIThe \fBSoMaterial\fP class is a node type for setting up material values for scene geometry\&. .PP After traversing an \fBSoMaterial\fP node, subsequent shape nodes with geometry in the scene graph will use values from the material 'pool' of the traversal state set up from nodes of this type\&. \fP" .ti -1c .RI "class \fBSoMatrixTransform\fP" .br .RI "\fIThe \fBSoMatrixTransform\fP class is a transformation node\&. .PP This class is the most flexible transformation node, as you can use it to accumulate any kind of transformation matrix on top of the current model transformation matrix\&. \fP" .ti -1c .RI "class \fBSoMultipleCopy\fP" .br .RI "\fIThe \fBSoMultipleCopy\fP class redraws it's children multiple times at different transformations\&. .PP The \fBSoMultipleCopy\fP group node duplicates it's children nodes / subgraphs without using additional memory resources\&. \fP" .ti -1c .RI "class \fBSoNode\fP" .br .RI "\fIThe \fBSoNode\fP class is the base class for nodes used in scene graphs\&. .PP Coin is a \fIretained\fP \fImode\fP 3D visualization library (built on top of the \fIimmediate\fP \fImode\fP OpenGL library)\&. 'Retained mode' means that instead of passing commands to draw graphics primitives directly to the renderer, you build up data structures which are rendered by the library \fIon\fP \fIdemand\fP\&. \fP" .ti -1c .RI "class \fBSoNormalBinding\fP" .br .RI "\fIThe \fBSoNormalBinding\fP class is a node for specifying normal vector bindings\&. .PP Use nodes of this type to specify how to map normal vectors from \fBSoNormal\fP nodes in the scene graph to shape nodes\&. \fP" .ti -1c .RI "class \fBSoNormal\fP" .br .RI "\fIThe \fBSoNormal\fP class is a node for providing normals to the state\&. .PP Coin will automatically calculate normals for you if no \fBSoNormal\fP nodes are present in the scene graph, but explicitly setting normals is useful for at least two purposes: 1) a potential increase in performance, 2) you can calculate and use 'incorrect' normals to do various special effects\&. \fP" .ti -1c .RI "class \fBSoNurbsProfile\fP" .br .RI "\fIThe \fBSoNurbsProfile\fP class is a node for specifying smooth profile curves\&. .PP Use nodes of this type if you want to set up profiles that are smooth curves\&. \fP" .ti -1c .RI "class \fBSoOrthographicCamera\fP" .br .RI "\fIThe \fBSoOrthographicCamera\fP class defines a camera node with orthographic rendering\&. .PP Orthographic rendering will not give a particularly realistic impression of the scene, but non-realistic rendering is for various reasons widely used in applications for e\&.g\&. Computer Aided Design\&. \fP" .ti -1c .RI "class \fBSoPackedColor\fP" .br .RI "\fIThe \fBSoPackedColor\fP class is a node for setting diffuse and transparency material values\&. .PP This node provides a convenient way of setting diffuse colors and transparency values with packed 32-bit RGBA vectors\&. \fP" .ti -1c .RI "class \fBSoPathSwitch\fP" .br .RI "\fIThe \fBSoPathSwitch\fP class traverses only when current path matches a configurable path\&. .PP \fBFILE FORMAT/DEFAULTS:\fP \fP" .ti -1c .RI "class \fBSoPendulum\fP" .br .RI "\fIThe \fBSoPendulum\fP class is used to create oscillating rotations\&. .PP A smooth transition between rotation0 and rotation1 is created using a cosine function\&. In the beginning of the cycle, rotation0 is used\&. Halfway through the cycle, the resulting rotation equals rotation1, and at the end of the cycle, we're at rotation0 again\&. \fP" .ti -1c .RI "class \fBSoPerspectiveCamera\fP" .br .RI "\fIThe \fBSoPerspectiveCamera\fP class defines a camera node with perspective rendering\&. .PP For realistic looking 3D scene, the geometry should be rendered with perspective calculations\&. Use this camera type to accomplish this\&. \fP" .ti -1c .RI "class \fBSoPickStyle\fP" .br .RI "\fIThe \fBSoPickStyle\fP class is a node for setting up how to do picking\&. .PP By default, all geometry in a scene is available for picking\&. Upon writing applications with interaction possibilities, this is often \fInot\fP what you want\&. To exclude parts of the scene graph from pick actions, use the \fBSoPickStyle::UNPICKABLE\fP\&. \fP" .ti -1c .RI "class \fBSoPointLight\fP" .br .RI "\fIThe \fBSoPointLight\fP class is a node type for light sources\&. .PP Pointlights emits light equally in all directions from a specified 3D location\&. \fP" .ti -1c .RI "class \fBSoPolygonOffset\fP" .br .RI "\fIThe \fBSoPolygonOffset\fP class is a node type for 'layering' rendering primitives\&. .PP A common problem with realtime 3D rendering systems is that rendered primitives which are at approximately the same depth with regard to the camera viewpoint will appear to flicker\&. I\&.e\&.: from one angle one primitive will appear to be closer, while at another angle, another primitive will appear closer\&. When this happens, the rendered graphics at that part of the scene will of course look a lot less visually pleasing\&. \fP" .ti -1c .RI "class \fBSoProfileCoordinate2\fP" .br .RI "\fIThe \fBSoProfileCoordinate2\fP class is a node specifying a set of 2D coordinates for profiles\&. .PP Use nodes of this type to provide coordinates to profiles\&. \fP" .ti -1c .RI "class \fBSoProfileCoordinate3\fP" .br .RI "\fIThe \fBSoProfileCoordinate3\fP class is a node specifying a set of 3D coordinates for profiles\&. .PP Use nodes of this type to provide coordinates to profiles\&. \fP" .ti -1c .RI "class \fBSoProfile\fP" .br .RI "\fIThe \fBSoProfile\fP class is the abstract superclass for profile definitions\&. .PP Node subclasses of \fBSoProfile\fP specifies profiles for extruded 3D text and nurbs surface data\&. \fP" .ti -1c .RI "class \fBSoResetTransform\fP" .br .RI "\fIThe \fBSoResetTransform\fP class is a node type which makes it possible to 'nullify' state during traversal\&. .PP \fBSoResetTransform\fP is useful for setting up geometry in the scene graph which will not be influenced by the transformation nodes before it during traversal\&. \fP" .ti -1c .RI "class \fBSoRotation\fP" .br .RI "\fIThe \fBSoRotation\fP class specifies a rotation transformation\&. .PP Use nodes of this class type to re-orient geometry data within the scene graph\&. \fP" .ti -1c .RI "class \fBSoRotationXYZ\fP" .br .RI "\fIThe \fBSoRotationXYZ\fP class is a node type for specifying rotation around a particular axis\&. .PP Application programmers can use nodes of this type instead of \fBSoRotation\fP nodes for simplicity and clarity if the rotation will only happen around one particular axis\&. \fP" .ti -1c .RI "class \fBSoRotor\fP" .br .RI "\fIThe \fBSoRotor\fP class is a node used to animate rotations\&. .PP Insert this node in your hierarchy to apply a continuous rotation to some geometry\&. Since this node inherits the \fBSoRotation\fP node, rotation is restricted around the axis specified in the rotation field\&. \fP" .ti -1c .RI "class \fBSoScale\fP" .br .RI "\fIThe \fBSoScale\fP class is a node type for scaling scene graph geometry\&. .PP Use nodes of this type to apply scaling operations during scenegraph traversals for e\&.g\&. rendering\&. Scale values are specified in a triple-value vector, with one scale factor for each of the 3 principal axes\&. \fP" .ti -1c .RI "class \fBSoSceneTexture2\fP" .br .RI "\fIThe \fBSoSceneTexture2\fP class is used to create a 2D texture from a Coin scene graph\&. .PP Lets the rendering of a scene graph be specified as a texture image to be used in another scene graph\&. Set up the scene graph used for a texture in the \fBSoSceneTexture2::scene\fP field\&. \fP" .ti -1c .RI "class \fBSoSceneTextureCubeMap\fP" .br .RI "\fIRenders a scene into a texture cube map\&. \fP" .ti -1c .RI "class \fBSoSelection\fP" .br .RI "\fIThe \fBSoSelection\fP class manages a list of selected nodes\&. .PP Inserting an \fBSoSelection\fP node in your scene graph enables you to let the user 'pick' with the left mousebutton to select/deselect objects below the \fBSoSelection\fP node\&. \fP" .ti -1c .RI "class \fBSoSeparator\fP" .br .RI "\fIThe \fBSoSeparator\fP class is a state-preserving group node\&. .PP Subgraphs parented by \fBSoSeparator\fP nodes will not affect the state, as they push and pop the traversal state before and after traversal of its children\&. \fP" .ti -1c .RI "class \fBSoShapeHints\fP" .br .RI "\fIThe \fBSoShapeHints\fP class is a node containing hints about how to render geometry\&. .PP The \fBSoShapeHints\fP node is used to set up clues to the rendering subsystem about how particular aspects of the subsequent geometry in the scene graph should be drawn\&. \fP" .ti -1c .RI "class \fBSoShuttle\fP" .br .RI "\fIThe \fBSoShuttle\fP class is used to oscillate between two translations\&. .PP A smooth transition between translation0 and translation1 is created using a cosine function\&. In the beginning of the cycle, translation0 is used\&. Halfway through the cycle, the resulting translation equals translation1, and at the end of the cycle, we're at translation0 again\&. \fP" .ti -1c .RI "class \fBSoSpotLight\fP" .br .RI "\fIThe \fBSoSpotLight\fP class is a node type for light sources with a cone shaped lightvolume\&. .PP Spotlights are light sources with a position and a direction\&. They can be thought of as a pointlight with a lampshade\&. \fP" .ti -1c .RI "class \fBSoSurroundScale\fP" .br .RI "\fIThe \fBSoSurroundScale\fP class is used to automatically scale geometry to surround other geometry\&. .PP This node calculates a transformation (a translation and a scale) which will, when the node is traversed, be appended to the current model matrix, making a default cube placed directly to the right of this node in the graph surround geometry to the right of the container branch this node is on\&. The container is specified by the field \fBSoSurroundScale::numNodesUpToContainer\fP\&. \fP" .ti -1c .RI "class \fBSoSwitch\fP" .br .RI "\fIThe \fBSoSwitch\fP class is a group node which selects one child subgraph for traversal\&. .PP Which child to traverse is controlled by the application programmer by using the \fBSoSwitch::whichChild\fP field\&. In addition to picking out a single child for traversal, it is also possible to flip all children on or off for traversal\&. \fP" .ti -1c .RI "class \fBSoTexture2\fP" .br .RI "\fIThe \fBSoTexture2\fP class is used to map a 2D texture onto subsequent geometry in the scenegraph\&. .PP Shape nodes within the scope of \fBSoTexture2\fP nodes in the scenegraph (ie below the same \fBSoSeparator\fP and to the righthand side of the \fBSoTexture2\fP) will have the texture applied according to each shape type's individual characteristics\&. See the documentation of the various shape types (\fBSoFaceSet\fP, \fBSoCube\fP, \fBSoSphere\fP, etc etc) for information about the specifics of how the textures will be applied\&. \fP" .ti -1c .RI "class \fBSoTexture2Transform\fP" .br .RI "\fIThe \fBSoTexture2Transform\fP class is used to define 2D texture transformations\&. .PP Textures applied to shapes in the scene can be transformed by 'prefixing' in the state with instances of this node type\&. Translations, rotations and scaling in 2D can all be done\&. \fP" .ti -1c .RI "class \fBSoTexture3\fP" .br .RI "\fIThe \fBSoTexture3\fP class is used to map a 3D texture onto geometry\&. .PP Shape nodes within the scope of \fBSoTexture3\fP nodes in the scenegraph (ie below the same \fBSoSeparator\fP and to the righthand side of the \fBSoTexture3\fP) will have the texture applied according to each shape type's individual characteristics\&. See the documentation of the various shape types (\fBSoFaceSet\fP, \fBSoCube\fP, \fBSoSphere\fP, etc etc) for information about the specifics of how the textures will be applied\&. An \fBSoTexture3\fP node will override any previous encountered \fBSoTexture2\fP nodes and vice versa\&. Mixing of \fBSoTexture3\fP and \fBSoTextureCoordinate2\fP (or the other way around) is legal, but the third texture coordinate component will be ignored (set to 0\&.0)\&. \fP" .ti -1c .RI "class \fBSoTexture3Transform\fP" .br .RI "\fIThe \fBSoTexture3Transform\fP class is used to define 3D texture transformations\&. .PP Textures applied to shapes in the scene can be transformed by 'prefixing' in the state with instances of this node type\&. Translations, rotations and scaling in 3D can all be done\&. \fP" .ti -1c .RI "class \fBSoTextureCombine\fP" .br .RI "\fIThe \fBSoTextureCombine\fP class is a node for setting texture combine functions\&. .PP This node is more or less an exact mapping of the OpenGL ARB_texture_env_combine extension (included in OpenGL in OpenGL v1\&.3)\&. See http://oss.sgi.com/projects/ogl-sample/registry/ARB/texture_env_combine.txt for more information about this extension\&. \fP" .ti -1c .RI "class \fBSoTextureCoordinate2\fP" .br .RI "\fIThe \fBSoTextureCoordinate2\fP class contains a set of coordinates for the mapping of 2D textures\&. .PP When encountering nodes of this type during traversal, the coordinates it contains will be put on the state stack\&. Some shape nodes (for instance \fBSoIndexedFaceSet\fP, among many others) can then use these coordinates for explicit, detailed control of how textures are mapped to it's surfaces\&. \fP" .ti -1c .RI "class \fBSoTextureCoordinate3\fP" .br .RI "\fIThe \fBSoTextureCoordinate3\fP class contains a set of coordinates for the mapping of 2D textures\&. .PP When encountering nodes of this type during traversal, the coordinates it contains will be put on the state stack\&. Some shape nodes can then use these coordinates for explicit, detailed control of how 3D textures are mapped\&. \fP" .ti -1c .RI "class \fBSoTextureCoordinateBinding\fP" .br .RI "\fIThe \fBSoTextureCoordinateBinding\fP class says how texture coordinates should be bound to shapes\&. .PP \fBSoTextureCoordinateBinding\fP binds current coordinates to subsequent shapes by using either per vertex or per indexed vertex binding\&. \fP" .ti -1c .RI "class \fBSoTextureCoordinateCube\fP" .br .RI "\fIThe \fBSoTextureCoordinateCube\fP class autogenerates cubemapped texture coordinated for shapes\&. .PP The cube used for reference when mapping is the boundingbox for the shape\&. \fP" .ti -1c .RI "class \fBSoTextureCoordinateCylinder\fP" .br .RI "\fIThe \fBSoTextureCoordinateCylinder\fP class autogenerates cylinder mapped texture coordinated for shapes\&. .PP \fBFILE FORMAT/DEFAULTS:\fP \fP" .ti -1c .RI "class \fBSoTextureCoordinateDefault\fP" .br .RI "\fIThe \fBSoTextureCoordinateDefault\fP class removes texture coordinates from the state\&. .PP Shapes below this node in the scenegraph will have to use its default texture coordinates as \fBSoTextureCoordinateDefault\fP cleans out all previously defined texture coordinates and texture coordinate functions\&. \fP" .ti -1c .RI "class \fBSoTextureCoordinateEnvironment\fP" .br .RI "\fIThe \fBSoTextureCoordinateEnvironment\fP class generates texture coordinates by projecting onto a surrounding texture\&. .PP The texture specifying the enviroment will be mapped around the scenegraph below this node using a sphere\&. The texture will be mapped onto the scenegraph taking camera position into account\&. This will lead to an object reflecting its enviroment\&. \fP" .ti -1c .RI "class \fBSoTextureCoordinateFunction\fP" .br .RI "\fIThe \fBSoTextureCoordinateFunction\fP class is an abstract base class for texture coordinate generating nodes .PP Classes reimplementing \fBSoTextureCoordinateFunction\fP generate texture coordinates by projecting object space surface points using some function\&. \fP" .ti -1c .RI "class \fBSoTextureCoordinateNormalMap\fP" .br .RI "\fIThe \fBSoTextureCoordinateNormalMap\fP class generates texture coordinates by projecting onto a surrounding texture\&. .PP The texture specifying the enviroment will be mapped around the scenegraph below this node using a sphere\&. The texture will be mapped onto the scenegraph taking camera position into account\&. This will lead to an object reflecting its enviroment\&. \fP" .ti -1c .RI "class \fBSoTextureCoordinateObject\fP" .br .RI "\fIThe \fBSoTextureCoordinateObject\fP class generates texture coordinates by\&.\&.\&. .PP FIXME: not implemented yet\&. pederb, 2005-04-20\&. \fP" .ti -1c .RI "class \fBSoTextureCoordinatePlane\fP" .br .RI "\fIThe \fBSoTextureCoordinatePlane\fP class generates texture coordinates by projecting onto a plane\&. .PP \fBSoTextureCoordinatePlane\fP is used for generating texture coordinates by projecting the object onto a texture plane\&. The s, t and r texture coordinates are computed as the distance from the origin to the projected point, in the respective directions\&. The texture plane is specified using two direction vectors, given as \fBSoTextureCoordinatePlane::directionS\fP and \fBSoTextureCoordinatePlane::directionT\fP in object space coordinates\&. \fBSoTextureCoordinatePlane::directionR\fP is used for generating the third coordinate, and can be used for generating texture coordinate for 3D textures\&. For 2D textures you can just leave this field alone\&. \fP" .ti -1c .RI "class \fBSoTextureCoordinateReflectionMap\fP" .br .RI "\fIThe \fBSoTextureCoordinateReflectionMap\fP class generates 3D reflection texture coordinates\&. .PP This node is usually used along with a SoCubeMapTexture node\&.\&.\&. \fP" .ti -1c .RI "class \fBSoTextureCoordinateSphere\fP" .br .RI "\fIThe \fBSoTextureCoordinateSphere\fP class autogenerates spheremapped texture coordinated for shapes\&. .PP \fBFILE FORMAT/DEFAULTS:\fP \fP" .ti -1c .RI "class \fBSoTextureCubeMap\fP" .br .RI "\fIThe \fBSoTextureCubeMap\fP class is used to map a cube map onto subsequent shape nodes\&. .PP Shape nodes within the scope of \fBSoTextureCubeMap\fP nodes in the scenegraph (ie below the same \fBSoSeparator\fP and to the righthand side of the \fBSoTextureCubeMap\fP) will have the texture applied according to each shape type's individual characteristics\&. See the documentation of the various shape types (\fBSoFaceSet\fP, \fBSoCube\fP, \fBSoSphere\fP, etc etc) for information about the specifics of how the textures will be applied\&. \fP" .ti -1c .RI "class \fBSoTextureMatrixTransform\fP" .br .RI "\fIThe \fBSoTextureMatrixTransform\fP class is used to define a texture matrix transformation\&. .PP Textures applied to shapes in the scene can be transformed by 'prefixing' in the state with instances of this node type\&. \fP" .ti -1c .RI "class \fBSoTextureScalePolicy\fP" .br .RI "\fIThe \fBSoTextureScalePolicy\fP class is a node for controlling the texture scale policy\&. .PP If a texture map is of size != 2^n, it must be scaled before OpenGL can handle it\&. This node enables you to control how/if textures are scaled before it is sent to OpenGL\&. \fP" .ti -1c .RI "class \fBSoTextureUnit\fP" .br .RI "\fIThe \fBSoTextureUnit\fP class is a node for setting the active texture unit\&. .PP When an \fBSoTextureUnit\fP node is inserted into the scene graph, all subsequent texture nodes (\fBSoTexture2\fP, \fBSoTextureCoordinate2\fP, \fBSoTextureCoordinate3\fP, \fBSoTexture2Transform\fP, \fBSoTexture3Transform\fP, \fBSoTextureCoordinateEnvironment\fP, \fBSoTextureCoordinatePlane\fP and \fBSoComplexity\fP) will affect the texture unit set in the unit field\&. \fP" .ti -1c .RI "class \fBSoTransformation\fP" .br .RI "\fIThe \fBSoTransformation\fP class is the abstract base class for transformation nodes\&. .PP To position and orient geometry within the 3D world space, various node types for transformations are used\&. These nodes all inherit the \fBSoTransformation\fP base class\&. \fP" .ti -1c .RI "class \fBSoTransform\fP" .br .RI "\fIThe \fBSoTransform\fP class is the 'all-purpose' transformation node type\&. .PP Like \fBSoMatrixTransform\fP, nodes of this type gives the application programmer maximum flexibility when specifying geometry transformations in a scene graph\&. If you want to set and keep the various components of the transformation matrix in separate entities, this node type is preferable, though\&. \fP" .ti -1c .RI "class \fBSoTransformSeparator\fP" .br .RI "\fIThe \fBSoTransformSeparator\fP class is a group node preserving the current transformations\&. .PP This node works like the \fBSoSeparator\fP group node, except that it only stores and restores the current model matrix transformation\&. Other appearance settings, like materials, textures, cameras, lights, etc, will affect the remaining parts of the scenegraph after traversal, just like as for the \fBSoGroup\fP node\&. \fP" .ti -1c .RI "class \fBSoTranslation\fP" .br .RI "\fIThe \fBSoTranslation\fP class is a node type for specifying geometry translations\&. .PP For simply translating some geometry in a scene graph, you can use this node type\&. \fP" .ti -1c .RI "class \fBSoTransparencyType\fP" .br .RI "\fIThe \fBSoTransparencyType\fP class is a node for setting the transparency type for shapes\&. .PP In earlier versions of Coin/Open Inventor it was only possible to set the transparency mode globally for an entire scene graph, which could be inconvenient if different transparency types was wanted for different shapes\&. \fP" .ti -1c .RI "class \fBSoUnits\fP" .br .RI "\fIThe \fBSoUnits\fP class is a node for setting unit types\&. .PP Even though Coin doesn't care what units you are using in your scene graph \fIper\fP \fIse\fP, there's an advantage to using \fBSoUnits\fP nodes: you have a way to split your scene graph into different 'conceptual' parts\&. \fP" .ti -1c .RI "class \fBSoVertexProperty\fP" .br .RI "\fIThe \fBSoVertexProperty\fP class collects the functionality of various appearance nodes\&. .PP Instead of reading data from the current state stack of the scenegraph traversal, nodes inheriting \fBSoVertexShape\fP can be set up with an \fBSoVertexProperty\fP node in the \fBSoVertexShape::vertexProperty\fP field\&. Coordinates, normals, texture coordinates and material / color information will then be fetched from the vertexshape's \fBSoVertexProperty\fP node instead of from the state stack\&. \fP" .ti -1c .RI "class \fBSoWWWAnchor\fP" .br .RI "\fIThe \fBSoWWWAnchor\fP class adds URL callbacks to the highlighted geometry\&. .PP In addition to highlighting geometry under the cursor, the application programmer can set callbacks\&. It is possible to set one callback for picking, the fetch callback, and one callback for highlighting\&. \fP" .ti -1c .RI "class \fBSoWWWInline\fP" .br .RI "\fIThe \fBSoWWWInline\fP class is a node used to include data from an URL\&. .PP If the URL is not a local file, the application is responsible for supplying a callback to a function which will fetch the data of the URL\&. \fP" .ti -1c .RI "class \fBSoFragmentShader\fP" .br .RI "\fIThe \fBSoFragmentShader\fP class is used for setting up fragment shader programs\&. .PP See \fBShaders in Coin \fP for more information on how to set up a scene graph with shaders\&. \fP" .ti -1c .RI "class \fBSoGeometryShader\fP" .br .RI "\fIThe \fBSoGeometryShader\fP class is used for loading geometry shader programs\&. .PP See \fBShaders in Coin \fP for more information on how to set up a scene graph with shaders\&. \fP" .ti -1c .RI "class \fBSoVertexShader\fP" .br .RI "\fIThe \fBSoVertexShader\fP class is used for setting up vertex shader programs\&. .PP See \fBShaders in Coin \fP for more information on how to set up a scene graph with shaders\&. \fP" .ti -1c .RI "class \fBSoShadowCulling\fP" .br .RI "\fIThe \fBSoShadowCulling\fP class is a node for setting the shadow style on nodes\&. \fP" .ti -1c .RI "class \fBSoShadowSpotLight\fP" .br .RI "\fIThe \fBSoShadowSpotLight\fP class is a node for setting up a spot light which casts shadows\&. \fP" .ti -1c .RI "class \fBSoShadowStyle\fP" .br .RI "\fIThe \fBSoShadowStyle\fP class is a node for setting the shadow style on nodes\&. \fP" .ti -1c .RI "class \fBSoAsciiText\fP" .br .RI "\fIThe \fBSoAsciiText\fP class renders flat 3D text\&. .PP The text is rendered using 3D polygon geometry\&. \fP" .ti -1c .RI "class \fBSoCone\fP" .br .RI "\fIThe \fBSoCone\fP class is for rendering cone shapes\&. .PP Insert a cone shape into the scenegraph\&. The cone is rendered with the current material, texture and drawstyle settings (if any, otherwise the default settings are used)\&. \fP" .ti -1c .RI "class \fBSoCube\fP" .br .RI "\fIThe \fBSoCube\fP class is for rendering cubes\&. .PP Insert a cube shape into the scenegraph\&. The cube is rendered with the current material, texture and drawstyle settings (if any, otherwise the default settings are used)\&. \fP" .ti -1c .RI "class \fBSoCylinder\fP" .br .RI "\fIThe \fBSoCylinder\fP class is for rendering cylinder shapes\&. .PP Insert a cylinder shape into the scenegraph\&. The cylinder is rendered with the current material, texture and drawstyle settings (if any, otherwise the default settings are used)\&. \fP" .ti -1c .RI "class \fBSoFaceSet\fP" .br .RI "\fIThe \fBSoFaceSet\fP class is used to render and organize non-indexed polygonal face data\&. .PP Faces are specified using the numVertices field\&. Coordinates, normals, materials and texture coordinates are fetched in order from the current state or from the vertexProperty node if set\&. For example, if numVertices is set to [3, 4, 5, 3], this node would specify a triangle from coordinates 0, 1 and 2, a quad from coordinates 3, 4, 5 and 6, a polygon from coordinates 7, 8, 9, 10 and 11 and finally a triangle from coordinates 12, 13, 14\&. \fP" .ti -1c .RI "class \fBSoImage\fP" .br .RI "\fIThe \fBSoImage\fP class draws a 2D image on the viewport\&. .PP An image can be specified either by using the image field, or by specifying a filename\&. If width and or height is specified, the image will be resized to match those values before it is displayed\&. \fP" .ti -1c .RI "class \fBSoIndexedFaceSet\fP" .br .RI "\fIThe \fBSoIndexedFaceSet\fP class is used to handle generic indexed facesets\&. .PP Faces are specified using the coordIndex field\&. Each face must be terminated by a negative (-1) index\&. Coordinates, normals, materials and texture coordinates from the current state (or from the vertexProperty node if set), can be indexed to create triangles, quads or polygons\&. \fP" .ti -1c .RI "class \fBSoIndexedLineSet\fP" .br .RI "\fIThe \fBSoIndexedLineSet\fP class is used to render and otherwise represent indexed lines\&. .PP The indexed counterpart of \fBSoLineSet\fP\&. Lines can specified using indices for coordinates, normals, materials and texture coordinates\&. \fP" .ti -1c .RI "class \fBSoIndexedMarkerSet\fP" .br .RI "\fIThe \fBSoIndexedMarkerSet\fP class is used to display a set of bitmap markers at 3D positions\&. .PP This node either uses the coordinates currently on the state (typically set up by a leading \fBSoCoordinate3\fP node in the scenegraph) or from a \fBSoVertexProperty\fP node attached to this node to render a set of 3D points\&. \fP" .ti -1c .RI "class \fBSoIndexedNurbsCurve\fP" .br .RI "\fIThe \fBSoIndexedNurbsCurve\fP class is a node for representing smooth curves\&. .PP Explaining NURBS is beyond the scope of this documentation\&. If you are unfamiliar with the principles of representing smooth curves and surfaces when doing 3D visualization, we recommend finding a good book on the subject\&. \fP" .ti -1c .RI "class \fBSoIndexedNurbsSurface\fP" .br .RI "\fIThe \fBSoIndexedNurbsSurface\fP class can be used to render NURBS surfaces\&. .PP It is very similar to the \fBSoNurbsSurface\fP class, but controlpoints can be specified using indices\&. \fP" .ti -1c .RI "class \fBSoIndexedPointSet\fP" .br .RI "\fIThe \fBSoIndexedPointSet\fP class is used to display a set of 3D points\&. .PP This node either uses the coordinates currently on the state (typically set up by a leading \fBSoCoordinate3\fP node in the scenegraph) or from a \fBSoVertexProperty\fP node attached to this node to render a set of 3D points\&. \fP" .ti -1c .RI "class \fBSoIndexedShape\fP" .br .RI "\fIThe \fBSoIndexedShape\fP class is the superclass for all indexed vertex shapes\&. .PP This is an abstract class which contains storage for four fields for indices to coordinates, normals, materials and texture coordinates for it's subclasses\&. \fP" .ti -1c .RI "class \fBSoIndexedTriangleStripSet\fP" .br .RI "\fIThe \fBSoIndexedTriangleStripSet\fP class keeps data for rendering and otherwise representing triangle strips\&. .PP Use nodes of this type as an effective way of drawing triangles which are strung together\&. \fP" .ti -1c .RI "class \fBSoLineSet\fP" .br .RI "\fIThe \fBSoLineSet\fP class is used to render and organize non-indexed polylines\&. .PP Polylines are specified using the numVertices field\&. Coordinates, normals, materials and texture coordinates are fetched in order from the current state or from the vertexProperty node if set\&. For example, if numVertices is set to [3, 4, 2], this node would specify a line through coordinates 0, 1 and 2, a line through coordinates 3, 4, 5 and 6, and finally a single line segment between coordinates 7 and 8\&. \fP" .ti -1c .RI "class \fBSoMarkerSet\fP" .br .RI "\fIThe \fBSoMarkerSet\fP class displays a set of 2D bitmap markers in 3D\&. .PP This node uses the coordinates currently on the state (or in the vertexProperty field) in order\&. The numPoints field specifies the number of points in the set\&. \fP" .ti -1c .RI "class \fBSoNonIndexedShape\fP" .br .RI "\fIThe \fBSoNonIndexedShape\fP class is the superclass for all non-indexed vertex based shapes\&. .PP It contains the (now obsoleted) startIndex field and a convenience method for calculating the bounding box\&. \fP" .ti -1c .RI "class \fBSoNurbsCurve\fP" .br .RI "\fIThe \fBSoNurbsCurve\fP class is a node for representing smooth curves\&. .PP A general explanation of NURBS is beyond the scope of the Coin documentation\&. For detailed information, refer to the specialized literature on the topic (for example 'An Introduction to NURBS: With Historical Perspective' by David F\&. Rogers)\&. A basic overview of curve and surface rendering using NURBS can be found in chapter 8 of 'The Inventor Mentor'\&. \fP" .ti -1c .RI "class \fBSoNurbsSurface\fP" .br .RI "\fIThe \fBSoNurbsSurface\fP class is used to render smooth surfaces\&. .PP A general explanation of NURBS is beyond the scope of the Coin documentation\&. For detailed information, refer to the specialized literature on the topic (for example 'An Introduction to NURBS: With Historical Perspective' by David F\&. Rogers)\&. A basic overview of curve and surface rendering using NURBS can be found in chapter 8 of 'The Inventor Mentor'\&. \fP" .ti -1c .RI "class \fBSoPointSet\fP" .br .RI "\fIThe \fBSoPointSet\fP class is used to display a set of 3D points\&. .PP This node either uses the coordinates currently on the state (typically set up by a leading \fBSoCoordinate3\fP node in the scenegraph) or from a \fBSoVertexProperty\fP node attached to this node to render a set of 3D points\&. \fP" .ti -1c .RI "class \fBSoQuadMesh\fP" .br .RI "\fIThe \fBSoQuadMesh\fP class is used to render and optimize a quadrilateral mesh\&. .PP This node uses the coordinates in order, either from the state or from the \fBSoQuadMesh::vertexProperty\fP node, to construct a quadrilateral mesh\&. \fP" .ti -1c .RI "class \fBSoShape\fP" .br .RI "\fIThe \fBSoShape\fP class is the superclass for geometry shapes\&. .PP The node types which have actual geometry to render inherits this class\&. For convenience, the \fBSoShape\fP class contains various common code used by the subclasses\&. \fP" .ti -1c .RI "class \fBSoSphere\fP" .br .RI "\fIThe \fBSoSphere\fP class is for rendering sphere shapes\&. .PP Renders a sphere with the size given by the \fBSoSphere::radius\fP field\&. The sphere is rendered with the current material, texture and drawstyle settings (if any, otherwise the default settings are used)\&. \fP" .ti -1c .RI "class \fBSoText2\fP" .br .RI "\fIThe \fBSoText2\fP class is a node type for visualizing 2D text aligned with the camera plane\&. .PP \fBSoText2\fP text is not scaled according to the distance from the camera, and is not influenced by rotation or scaling as 3D primitives are\&. If these are properties that you want the text to have, you should instead use an \fBSoText3\fP or \fBSoAsciiText\fP node\&. \fP" .ti -1c .RI "class \fBSoText3\fP" .br .RI "\fIThe \fBSoText3\fP class renders extruded 3D text\&. .PP Render text as 3D geometry\&. \fP" .ti -1c .RI "class \fBSoTriangleStripSet\fP" .br .RI "\fIThe \fBSoTriangleStripSet\fP class is used to render and control non-indexed triangle strips\&. .PP Triangle strips are specified using the numVertices field\&. \fP" .ti -1c .RI "class \fBSoVertexShape\fP" .br .RI "\fIThe \fBSoVertexShape\fP class is the superclass for all vertex based shapes\&. .PP Basically, every polygon-, line- or point-based shape will inherit this class\&. It contains methods for organizing the normal cache, and also holds the \fBSoVertexShape::vertexProperty\fP field which can be used to set vertex data inside the node\&. \fP" .in -1c .SS "Macros" .in +1c .ti -1c .RI "#define \fBSO_NODE_HEADER\fP(classname)" .br .ti -1c .RI "#define \fBSO_NODE_ABSTRACT_HEADER\fP(classname)" .br .ti -1c .RI "#define \fBSO_NODE_INIT_CLASS\fP(classname, parentclass, parentname)" .br .ti -1c .RI "#define \fBSO_NODE_INIT_ABSTRACT_CLASS\fP(classname, parentclass, parentname)" .br .ti -1c .RI "#define \fBSO_NODE_SOURCE\fP(classname)" .br .ti -1c .RI "#define \fBSO_NODE_ABSTRACT_SOURCE\fP(classname)" .br .ti -1c .RI "#define \fBSO_NODE_CONSTRUCTOR\fP(classname)" .br .ti -1c .RI "#define \fBSO_NODE_IS_FIRST_INSTANCE\fP()" .br .ti -1c .RI "#define \fBSO_NODE_ADD_FIELD\fP(field, defaultvalue)" .br .ti -1c .RI "#define \fBSO_NODE_DEFINE_ENUM_VALUE\fP(enumname, enumvalue)" .br .in -1c .SS "Functions" .in +1c .ti -1c .RI "static \fBSoType\fP \fBSoTexture::getClassTypeId\fP (void)" .br .RI "\fICommon base class for texture nodes\&. \fP" .in -1c .SH "Detailed Description" .PP 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 \fBVRML97 Classes\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 "#define SO_NODE_HEADER(classname)" 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 "#define SO_NODE_ABSTRACT_HEADER(classname)" 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 "#define 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 \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 "#define 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 \fBSoType\fP for the class) for type identification purposes\&. .PP \fBSee Also:\fP .RS 4 \fBSO_NODE_INIT_CLASS\fP .RE .PP .SS "#define SO_NODE_SOURCE(classname)" This macro sets up the impementation of the declarations in \fBSO_NODE_HEADER\fP\&. It chould be placed in the implementation file for extension nodes\&. .PP \fBSee Also:\fP .RS 4 \fBSO_NODE_HEADER\fP .RE .PP .SS "#define SO_NODE_ABSTRACT_SOURCE(classname)" This macro sets up the impementation of the declarations in \fBSO_NODE_ABSTRACT_HEADER\fP\&. It chould be placed in the implementation file for abstract extension nodes\&. .PP \fBSee Also:\fP .RS 4 \fBSO_NODE_ABSTRACT_HEADER\fP .RE .PP .SS "#define SO_NODE_CONSTRUCTOR(classname)" Place this in the node constructor\&. It sets up the fielddata object for the node class\&. .SS "#define 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 "#define 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 \fBSO_NODE_CONSTRUCTOR\fP macro\&. .SS "#define SO_NODE_DEFINE_ENUM_VALUE(enumname, enumvalue)" This macro associates enum names with values, used for file input/output\&. .SH "Function Documentation" .PP .SS "\fBSoType\fP SoTexture::getClassTypeId (void)\fC [static]\fP" .PP Common base class for texture nodes\&. SoTexture \fBSoTexture\&.h\fP \fBInventor/nodes/SoTexture\&.h\fP .PP Be aware that this class is an extension for Coin, and it is not available in the original SGI Open Inventor v2\&.1 API\&. .PP \fBSince:\fP .RS 4 Coin 3\&.0 .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Coin from the source code\&.