Coin: Node Classes

| Coin3D is Free Software, published under the BSD 3-clause license. | https://coin3d.github.io https://www.kongsberg.com/en/kogt/

Node Classes

Nodes are scene based objects performs various actions such as rendering. More...

## Classes
class | SoAlphaTest
| The SoAlphaTest class is a node used to control the GL alpha test function. More...
class | SoAnnotation
| The SoAnnotation node draws all its child geometry on top of other geometry. More...
class | SoAntiSquish
| The SoAntiSquish class is used to reset to uniform scaling. More...
class | SoArray
| The SoArray class is a group node for setting up regular arrays of subgraphs. More...
class | SoBaseColor
| The SoBaseColor class provides a node type for convenient setting of the base material color. More...
class | SoBlinker
| The SoBlinker class is a cycling switch node. More...
class | SoBumpMap
| The SoBumpMap class is used to map a bump map onto subsequent shapes. More...
class | SoBumpMapCoordinate
| The SoBumpMapCoordinate class is a node for providing bump map coordinates to shape nodes. More...
class | SoBumpMapTransform
| The SoBumpMapTransform class is used to define 2D bump map transformations. More...
class | SoCallback
| The SoCallback class is a node type which provides a means of setting callback hooks in the scene graph. More...
class | SoCacheHint
| The SoCacheHint class is a node containing hints about how to cache geometry. More...
class | SoCamera
| The SoCamera class is the abstract base class for camera definition nodes. More...
class | SoClipPlane
| The SoClipPlane class is a node type for specifying clipping planes. More...
class | SoColorIndex
| The SoColorIndex class is used to specify color indices for subsequent shapes. More...
class | SoComplexity
| The SoComplexity class is a node type which is used to set the trade-off between quality and performance. More...
class | SoCoordinate3
| The SoCoordinate3 class is a node for providing coordinates to shape nodes. More...
class | SoCoordinate4
| The SoCoordinate4 class is a node for providing coordinates to shape nodes. More...
class | SoDepthBuffer
| The SoDepthBuffer class is a node used to control the GL depth buffer. More...
class | SoDirectionalLight
| The SoDirectionalLight class is a node type for specifying directional light sources. More...
class | SoDrawStyle
| The SoDrawStyle class specifies common rendering properties for shapes. More...
class | SoEnvironment
| The SoEnvironment class is a node for specifying global rendering parameters. More...
class | SoEventCallback
| The SoEventCallback class provides functionality for catching events. More...
class | SoExtSelection
| The SoExtSelection class can be used for extended selection functionality. More...
class | SoFile
| The SoFile class is node container for another model file. More...
class | SoFont
| The SoFont class is an appearance node for setting fonts. More...
class | SoFontStyle
| The SoFontStyle class changes the appearance of fonts for text rendering nodes. More...
class | SoFrustumCamera
| The SoFrustumCamera class defines a camera with a generic frustum.. More...
class | SoGroup
| The SoGroup class is a node which managed other node instances. More...
class | SoInfo
| The SoInfo class is a node for holding text information. More...
class | SoLOD
| The SoLOD class is used to choose a child based distance between viewer and object. More...
class | SoLabel
| The SoLabel class is a node for holding label information in a scene graph. More...
class | SoLevelOfDetail
| The SoLevelOfDetail class is used to choose a child based on projected size. More...
class | SoLight
| The SoLight class is the base class for light emitting nodes. More...
class | SoLightModel
| The SoLightModel class is a node for specifying the model for geometry lighting. More...
class | SoLinearProfile
| The SoLinearProfile class is a node for specifying linear profile curves. More...
class | SoListener
| The SoListener class defines listener attributes used when rendering sound. More...
class | SoLocateHighlight
| The SoLocateHighlight class highlights geometry under the cursor. More...
class | SoMaterial
| The SoMaterial class is a node type for setting up material values for scene geometry. More...
class | SoMaterialBinding
| The SoMaterialBinding class is a node for setting up how materials are mapped to shapes. More...
class | SoMatrixTransform
| The SoMatrixTransform class is a transformation node. More...
class | SoMultipleCopy
| The SoMultipleCopy class redraws its children multiple times at different transformations. More...
class | SoNode
| The SoNode class is the base class for nodes used in scene graphs. More...
class | SoNormal
| The SoNormal class is a node for providing normals to the state. More...
class | SoNormalBinding
| The SoNormalBinding class is a node for specifying normal vector bindings. More...
class | SoNurbsProfile
| The SoNurbsProfile class is a node for specifying smooth profile curves. More...
class | SoOrthographicCamera
| The SoOrthographicCamera class defines a camera node with orthographic rendering. More...
class | SoPackedColor
| The SoPackedColor class is a node for setting diffuse and transparency material values. More...
class | SoPathSwitch
| The SoPathSwitch class traverses only when current path matches a configurable path. More...
class | SoPendulum
| The SoPendulum class is used to create oscillating rotations. More...
class | SoPerspectiveCamera
| The SoPerspectiveCamera class defines a camera node with perspective rendering. More...
class | SoPickStyle
| The SoPickStyle class is a node for setting up how to do picking. More...
class | SoPointLight
| The SoPointLight class is a node type for light sources. More...
class | SoPolygonOffset
| The SoPolygonOffset class is a node type for "layering" rendering primitives. More...
class | SoProfile
| The SoProfile class is the abstract superclass for profile definitions. More...
class | SoProfileCoordinate2
| The SoProfileCoordinate2 class is a node specifying a set of 2D coordinates for profiles. More...
class | SoProfileCoordinate3
| The SoProfileCoordinate3 class is a node specifying a set of 3D coordinates for profiles. More...
class | SoResetTransform
| The SoResetTransform class is a node type which makes it possible to "nullify" state during traversal. More...
class | SoReversePerspectiveCamera
| The SoReversePerspectiveCamera class defines a camera node with reverse perspective rendering. More...
class | SoRotation
| The SoRotation class specifies a rotation transformation. More...
class | SoRotationXYZ
| The SoRotationXYZ class is a node type for specifying rotation around a particular axis. More...
class | SoRotor
| The SoRotor class is a node used to animate rotations. More...
class | SoScale
| The SoScale class is a node type for scaling scene graph geometry. More...
class | SoSceneTexture2
| The SoSceneTexture2 class is used to create a 2D texture from a Coin scene graph. More...
class | SoSceneTextureCubeMap
| Renders a scene into a texture cube map. More...
class | SoSelection
| The SoSelection class manages a list of selected nodes. More...
class | SoSeparator
| The SoSeparator class is a state-preserving group node. More...
class | SoShapeHints
| The SoShapeHints class is a node containing hints about how to render geometry. More...
class | SoShuttle
| The SoShuttle class is used to oscillate between two translations. More...
class | SoSpotLight
| The SoSpotLight class is a node type for light sources with a cone shaped light volume. More...
class | SoSurroundScale
| The SoSurroundScale class is used to automatically scale geometry to surround other geometry. More...
class | SoSwitch
| The SoSwitch class is a group node which selects one child subgraph for traversal. More...
class | SoTexture
| Common base class for texture nodes. More...
class | SoTexture2
| The SoTexture2 class is used to map a 2D texture onto subsequent geometry in the scene graph. More...
class | SoTexture3
| The SoTexture3 class is used to map a 3D texture onto geometry. More...
class | SoTexture2Transform
| The SoTexture2Transform class is used to define 2D texture transformations. More...
class | SoTexture3Transform
| The SoTexture3Transform class is used to define 3D texture transformations. More...
class | SoTextureCombine
| The SoTextureCombine class is a node for setting texture combine functions. More...
class | SoTextureCoordinate2
| The SoTextureCoordinate2 class contains a set of coordinates for the mapping of 2D textures. More...
class | SoTextureCoordinate3
| The SoTextureCoordinate3 class contains a set of coordinates for the mapping of 2D textures. More...
class | SoTextureCoordinateBinding
| The SoTextureCoordinateBinding class says how texture coordinates should be bound to shapes. More...
class | SoTextureCoordinateCube
| The SoTextureCoordinateCube class generates cube mapped texture coordinates for shapes. More...
class | SoTextureCoordinateCylinder
| The SoTextureCoordinateCylinder class generates cylinder mapped texture coordinates for shapes. More...
class | SoTextureCoordinateSphere
| The SoTextureCoordinateSphere class generates sphere mapped texture coordinates for shapes. More...
class | SoTextureCoordinateDefault
| The SoTextureCoordinateDefault class removes texture coordinates from the state. More...
class | SoTextureCoordinateEnvironment
| The SoTextureCoordinateEnvironment class generates texture coordinates by projecting onto a surrounding texture. More...
class | SoTextureCoordinateFunction
| The SoTextureCoordinateFunction class is an abstract base class for texture coordinate generating nodes. More...
class | SoTextureCoordinatePlane
| The SoTextureCoordinatePlane class generates texture coordinates by projecting onto a plane. More...
class | SoTextureCoordinateNormalMap
| The SoTextureCoordinateNormalMap class generates texture coordinates by projecting onto a surrounding texture. More...
class | SoTextureCoordinateReflectionMap
| The SoTextureCoordinateReflectionMap class generates 3D reflection texture coordinates. More...
class | SoTextureCoordinateObject
| The SoTextureCoordinateObject class generates texture coordinates by... More...
class | SoTextureCubeMap
| The SoTextureCubeMap class is used to map a cube map onto subsequent shape nodes. More...
class | SoTextureMatrixTransform
| The SoTextureMatrixTransform class is used to define a texture matrix transformation. More...
class | SoTextureScalePolicy
| The SoTextureScalePolicy class is a node for controlling the texture scale policy. More...
class | SoTextureUnit
| The SoTextureUnit class is a node for setting the active texture unit. More...
class | SoTransform
| The SoTransform class is the "all-purpose" transformation node type. More...
class | SoTransparencyType
| The SoTransparencyType class is a node for setting the transparency type for shapes. More...
class | SoTransformSeparator
| The SoTransformSeparator class is a group node preserving the current transformations. More...
class | SoTransformation
| The SoTransformation class is the abstract base class for transformation nodes. More...
class | SoTranslation
| The SoTranslation class is a node type for specifying geometry translations. More...
class | SoUnits
| The SoUnits class is a node for setting unit types. More...
class | SoVertexProperty
| The SoVertexProperty class collects the functionality of various appearance nodes. More...
class | SoWWWAnchor
| The SoWWWAnchor class adds URL callbacks to the highlighted geometry. More...
class | SoWWWInline
| The SoWWWInline class is a node used to include data from an URL. More...
class | SoAsciiText
| The SoAsciiText class renders flat 3D text. More...
class | SoCone
| The SoCone class is for rendering cone shapes. More...
class | SoCube
| The SoCube class is for rendering cubes. More...
class | SoCylinder
| The SoCylinder class is for rendering cylinder shapes. More...
class | SoFaceSet
| The SoFaceSet class is used to render and organize non-indexed polygonal face data. More...
class | SoImage
| The SoImage class draws a 2D image on the viewport. More...
class | SoIndexedFaceSet
| The SoIndexedFaceSet class is used to handle generic indexed facesets. More...
class | SoIndexedLineSet
| The SoIndexedLineSet class is used to render and otherwise represent indexed lines. More...
class | SoIndexedMarkerSet
| The SoIndexedMarkerSet class is used to display a set of bitmap markers at 3D positions. More...
class | SoIndexedNurbsCurve
| The SoIndexedNurbsCurve class is a node for representing smooth curves. More...
class | SoIndexedNurbsSurface
| The SoIndexedNurbsSurface class can be used to render NURBS surfaces. More...
class | SoIndexedPointSet
| The SoIndexedPointSet class is used to display a set of 3D points. More...
class | SoIndexedShape
| The SoIndexedShape class is the superclass for all indexed vertex shapes. More...
class | SoIndexedTriangleStripSet
| The SoIndexedTriangleStripSet class keeps data for rendering and otherwise representing triangle strips. More...
class | SoLineSet
| The SoLineSet class is used to render and organize non-indexed polylines. More...
class | SoMarkerSet
| The SoMarkerSet class displays a set of 2D bitmap markers in 3D. More...
class | SoNonIndexedShape
| The SoNonIndexedShape class is the superclass for all non-indexed vertex based shapes. More...
class | SoNurbsCurve
| The SoNurbsCurve class is a node for representing smooth curves. More...
class | SoNurbsSurface
| The SoNurbsSurface class is used to render smooth surfaces. More...
class | SoPointSet
| The SoPointSet class is used to display a set of 3D points. More...
class | SoQuadMesh
| The SoQuadMesh class is used to render and optimize a quadrilateral mesh. More...
class | SoShape
| The SoShape class is the superclass for geometry shapes. More...
class | SoSphere
| The SoSphere class is for rendering sphere shapes. More...
class | SoText2
| The SoText2 class is a node type for visualizing 2D text aligned with the camera plane. More...
class | SoText3
| The SoText3 class renders extruded 3D text. More...
class | SoTriangleStripSet
| The SoTriangleStripSet class is used to render and control non-indexed triangle strips. More...
class | SoVertexShape
| The SoVertexShape class is the superclass for all vertex based shapes. More...
class | SoShadowStyle
| The SoShadowStyle class is a node for setting the shadow style on nodes. More...
class | SoShadowSpotLight
| The SoShadowSpotLight class is a node for setting up a spot light which casts shadows. More...
class | SoShadowCulling
| The SoShadowCulling class is a node for setting the shadow style on nodes. More...
class | SoGeoOrigin
| The SoGeoOrigin class is used to specify an absolute geographic location against which geometry is referenced. More...
class | SoGeoLocation
| The SoGeoLocation class is used to georeference the following nodes. More...
class | SoGeoSeparator
| The SoGeoSeparator class is used to georeference a scene graph. More...
class | SoGeoCoordinate
| The SoGeoCoordinate class is used to specify a list of geographical coordinates. More...

## Macros
#define | SO_NODE_HEADER(classname)
#define | SO_NODE_ABSTRACT_HEADER(classname)
#define | SO_NODE_INIT_CLASS(classname, parentclass, parentname)
#define | SO_NODE_INIT_ABSTRACT_CLASS(classname, parentclass, parentname)
#define | SO_NODE_SOURCE(classname)
#define | SO_NODE_ABSTRACT_SOURCE(classname)
#define | SO_NODE_CONSTRUCTOR(classname)
#define | SO_NODE_IS_FIRST_INSTANCE()
#define | SO_NODE_ADD_FIELD(field, defaultvalue)
#define | SO_NODE_DEFINE_ENUM_VALUE(enumname, enumvalue)

## Detailed Description

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 SoSeparator node during action traversal.

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.

For VRML97 nodes, see the VRMLnodes page.

The VRML1.0 specification is at http://www.web3d.org/x3d/specifications/vrml/VRML1.0/index.html

## Macro Definition Documentation

## ◆ SO_NODE_HEADER

#define SO_NODE_HEADER | ( |  | classname | ) |

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

See also
  SO_NODE_SOURCE

## ◆ SO_NODE_ABSTRACT_HEADER

#define SO_NODE_ABSTRACT_HEADER | ( |  | classname | ) |

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

See also
  SO_NODE_ABSTRACT_SOURCE

## ◆ SO_NODE_INIT_CLASS

#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 SoType for the class), so file reading will be able to create a node of this type and fill it with its field values.

See also
  SO_NODE_INIT_ABSTRACT_CLASS

## ◆ SO_NODE_INIT_ABSTRACT_CLASS

#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 SoType for the class) for type identification purposes.

See also
  SO_NODE_INIT_CLASS

## ◆ SO_NODE_SOURCE

#define SO_NODE_SOURCE | ( |  | classname | ) |

This macro sets up the implementation of the declarations in SO_NODE_HEADER. It should be placed in the implementation file for extension nodes.

See also
  SO_NODE_HEADER

## ◆ SO_NODE_ABSTRACT_SOURCE

#define SO_NODE_ABSTRACT_SOURCE | ( |  | classname | ) |

This macro sets up the implementation of the declarations in SO_NODE_ABSTRACT_HEADER. It should be placed in the implementation file for abstract extension nodes.

See also
  SO_NODE_ABSTRACT_HEADER

## ◆ SO_NODE_CONSTRUCTOR

#define SO_NODE_CONSTRUCTOR | ( |  | classname | ) |

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

## ◆ SO_NODE_IS_FIRST_INSTANCE

#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.

## ◆ SO_NODE_ADD_FIELD

#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 SO_NODE_CONSTRUCTOR macro.

## ◆ SO_NODE_DEFINE_ENUM_VALUE

#define SO_NODE_DEFINE_ENUM_VALUE | ( |  | enumname,
|  |  | enumvalue )

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