coin_nodes(3)
๐ coin_nodes(3) ๐
okay so bestie, welcome to coin_nodes from the Coin manual, section 3 (that's the library-calls girlies, iykyk) โจ this one's a whole trilogy so buckle up, part one is right here ๐ซถ
โจ NAME โจ
coin_nodes โ Node Classes ๐
๐ธ the vibe check ๐ธ
- Nodes are scene based objects, and they perform various actions โ rendering being one of them ๐
fr fr that's the whole teaser and honestly? it's giving main character energy for the rest of this page ๐
โจ SYNOPSIS โจ
okay so this is the node menu, and bestie, it is long ๐ these are all the classes Coin hands you for building scene graphs, and yes, we're going through every single one of them because they all matter. no skipping. grab a snack ๐
๐ Classes ๐
SoAlphaTestโ the node you use to control the GL alpha test function ๐๏ธSoAnnotationโ draws all of its child geometry on top of the other geometry, main character behavior honestly ๐SoAntiSquishโ resets things back to uniform scaling, the glow-up node โจSoArrayโ a group node made for setting up regular arrays of subgraphs ๐งฑSoBaseColorโ the convenient little node for setting the base material color ๐จSoBlinkerโ a switch node that cycles ๐ฆSoBumpMapโ maps a bump map onto the shapes that come after it ๐ซงSoBumpMapCoordinateโ provides bump map coordinates to shape nodes ๐SoBumpMapTransformโ defines 2D bump map transformations ๐SoCallbackโ a node type that gives you a way to set callback hooks in the scene graph ๐ชSoCacheHintโ a node holding hints about how to cache geometry ๐พSoCameraโ the abstract base class for camera definition nodes ๐ทSoClipPlaneโ a node type for specifying clipping planes โ๏ธSoColorIndexโ specifies color indices for subsequent shapes ๐SoComplexityโ sets the trade-off between quality and performance, the eternal struggle โ๏ธSoCoordinate3โ provides coordinates to shape nodes ๐SoCoordinate4โ also provides coordinates to shape nodes ๐SoDepthBufferโ a node used to control the GL depth buffer ๐งSoDirectionalLightโ a node type for specifying directional light sources โ๏ธSoDrawStyleโ specifies common rendering properties for shapes ๐๏ธSoEnvironmentโ a node for specifying global rendering parameters ๐SoEventCallbackโ gives you functionality for catching events ๐ฃSoExtSelectionโ can be used for extended selection functionality ๐SoFileโ a node container for another model file ๐SoFontโ an appearance node for setting fonts ๐คSoFontStyleโ changes the appearance of fonts for text rendering nodes โ๏ธSoFrustumCameraโ defines a camera with a generic frustum ๐ธSoGroupโ a node which manages other node instances ๐ฏSoInfoโ a node for holding text information ๐SoLODโ used to choose a child based on distance between viewer and object ๐SoLabelโ a node for holding label information in a scene graph ๐ท๏ธSoLevelOfDetailโ used to choose a child based on projected size ๐SoLightโ the base class for light emitting nodes ๐กSoLightModelโ a node for specifying the model for geometry lighting ๐SoLinearProfileโ a node for specifying linear profile curves ๐SoListenerโ defines listener attributes used when rendering sound ๐งSoLocateHighlightโ highlights the geometry under the cursor ๐SoMaterialโ a node type for setting up material values for scene geometry ๐SoMaterialBindingโ a node for setting up how materials are mapped to shapes ๐SoMatrixTransformโ a transformation node ๐งฎSoMultipleCopyโ redraws its children multiple times at different transformations ๐ฏโโ๏ธSoNodeโ THE base class for nodes used in scene graphs, the blueprint of blueprints ๐SoNormalโ a node for providing normals to the state ๐SoNormalBindingโ a node for specifying normal vector bindings ๐งทSoNurbsProfileโ a node for specifying smooth profile curves ๐SoOrthographicCameraโ defines a camera node with orthographic rendering ๐SoPackedColorโ a node for setting diffuse and transparency material values ๐จSoPathSwitchโ traverses only when the current path matches a configurable path ๐ค๏ธSoPendulumโ used to create oscillating rotations ๐ฐ๏ธSoPerspectiveCameraโ defines a camera node with perspective rendering ๐ทSoPickStyleโ a node for setting up how to do picking ๐ฏSoPointLightโ a node type for light sources โจSoPolygonOffsetโ a node type for layering rendering primitives ๐ฅSoProfileโ the abstract superclass for profile definitions ๐SoProfileCoordinate2โ a node specifying a set of 2D coordinates for profiles ๐ขSoProfileCoordinate3โ a node specifying a set of 3D coordinates for profiles ๐ขSoResetTransformโ a node type which makes it possible to nullify state during traversal ๐งนSoReversePerspectiveCameraโ defines a camera node with reverse perspective rendering ๐SoRotationโ specifies a rotation transformation ๐SoRotationXYZโ a node type for specifying rotation around a particular axis ๐กSoRotorโ a node used to animate rotations ๐ซSoScaleโ a node type for scaling scene graph geometry ๐SoSceneTexture2โ used to create a 2D texture from a Coin scene graph ๐ผ๏ธSoSceneTextureCubeMapโ renders a scene into a texture cube map ๐ฒSoSelectionโ manages a list of selected nodes โSoSeparatorโ a state-preserving group node ๐ก๏ธSoShapeHintsโ a node containing hints about how to render geometry ๐คซSoShuttleโ used to oscillate between two translations ๐SoSpotLightโ a node type for light sources with a cone shaped light volume ๐ฆSoSurroundScaleโ used to automatically scale geometry to surround other geometry ๐ซSoSwitchโ a group node which selects one child subgraph for traversal ๐SoTextureโ the common base class for texture nodes ๐งตSoTexture2โ used to map a 2D texture onto subsequent geometry in the scene graph ๐ผ๏ธSoTexture3โ used to map a 3D texture onto geometry ๐งSoTexture2Transformโ used to define 2D texture transformations ๐SoTexture3Transformโ used to define 3D texture transformations ๐SoTextureCombineโ a node for setting texture combine functions ๐งชSoTextureCoordinate2โ contains a set of coordinates for the mapping of 2D textures ๐SoTextureCoordinate3โ contains a set of coordinates for the mapping of 2D textures ๐ (that's what it says, I'm just relaying the group chat)SoTextureCoordinateBindingโ says how texture coordinates should be bound to shapes ๐งทSoTextureCoordinateCubeโ generates cube mapped texture coordinates for shapes ๐ฒSoTextureCoordinateCylinderโ generates cylinder mapped texture coordinates for shapes ๐ฅซSoTextureCoordinateSphereโ generates sphere mapped texture coordinates for shapes ๐ฎSoTextureCoordinateDefaultโ removes texture coordinates from the state ๐ซSoTextureCoordinateEnvironmentโ generates texture coordinates by projecting onto a surrounding texture ๐SoTextureCoordinateFunctionโ the abstract base class for texture coordinate generating nodes ๐SoTextureCoordinatePlaneโ generates texture coordinates by projecting onto a plane โ๏ธSoTextureCoordinateNormalMapโ generates texture coordinates by projecting onto a surrounding texture ๐SoTextureCoordinateReflectionMapโ generates 3D reflection texture coordinates ๐ชSoTextureCoordinateObjectโ generates texture coordinates byโฆ ๐SoTextureCubeMapโ used to map a cube map onto subsequent shape nodes ๐ฒSoTextureMatrixTransformโ used to define a texture matrix transformation ๐งฎSoTextureScalePolicyโ a node for controlling the texture scale policy ๐SoTextureUnitโ a node for setting the active texture unit ๐๏ธSoTransformโ the all-purpose transformation node type ๐ ๏ธSoTransparencyTypeโ a node for setting the transparency- ... type for shapes.
SoTransformSeparatorโ bestie, this is a group node that preserves the current transformations. It's literally holding onto the vibe. ๐SoTransformationโ the abstract base class for transformation nodes. It's the blueprint, the moment before the magic. โจSoTranslationโ a node type for specifying geometry translations. Moves things around, slay. ๐SoUnitsโ a node for setting unit types. It's giving "measurements, but make it 3D." ๐SoVertexPropertyโ collects the functionality of various appearance nodes. Like a little bag of appearance tricks. ๐SoWWWAnchorโ adds URL callbacks to the highlighted geometry. Clickable 3D, periodt. ๐SoWWWInlineโ a node used to include data from an URL. Pulling in the goods from the web. ๐SoAsciiTextโ renders flat 3D text. ASCII art but make it 3D. ๐ ฐ๏ธSoConeโ for rendering cone shapes. Cone vibes. ๐ฆSoCubeโ for rendering cubes. Cube supremacy. ๐งSoCylinderโ for rendering cylinder shapes. Roll with it. ๐ฅซSoFaceSetโ used to render and organize non-indexed polygonal face data. Faces, but not the social kind. ๐ถSoImageโ draws a 2D image on the viewport. 2D glow-up. ๐ผ๏ธSoIndexedFaceSetโ used to handle generic indexed facesets. Indexed faces, no cap. ๐ขSoIndexedLineSetโ used to render and otherwise represent indexed lines. Lines with receipts. ๐SoIndexedMarkerSetโ used to display a set of bitmap markers at 3D positions. Markers, but make them 3D. ๐SoIndexedNurbsCurveโ a node for representing smooth curves. Curves so smooth. ๐งSoIndexedNurbsSurfaceโ can be used to render NURBS surfaces. Surface level? More like NURBS level. ๐ชSoIndexedPointSetโ used to display a set of 3D points. Points, period. ๐ดSoIndexedShapeโ the superclass for all indexed vertex shapes. The parent of indexed shapes. ๐SoIndexedTriangleStripSetโ keeps data for rendering and otherwise representing triangle strips. Triangles in strips. ๐บSoLineSetโ used to render and organize non-indexed polylines. Lines that aren't indexed. ๐SoMarkerSetโ displays a set of 2D bitmap markers in 3D. Markers in 3D, iconic. ๐SoNonIndexedShapeโ the superclass for all non-indexed vertex based shapes. The non-indexed parent. ๐SoNurbsCurveโ a node for representing smooth curves. Smooth curves, again. ๐SoNurbsSurfaceโ used to render smooth surfaces. Smooth surfaces, yes. ๐งดSoPointSetโ used to display a set of 3D points. Points, but not indexed. ๐ตSoQuadMeshโ used to render and optimize a quadrilateral mesh. Quads, optimized. ๐ชSoShapeโ the superclass for geometry shapes. The OG shape parent. ๐SoSphereโ for rendering sphere shapes. Round and round. โชSoText2โ a node type for visualizing 2D text aligned with the camera plane. 2D text that follows the camera. ๐SoText3โ renders extruded 3D text. 3D text with extra dimension. ๐SoTriangleStripSetโ used to render and control non-indexed triangle strips. Triangle strips, non-indexed. ๐บSoVertexShapeโ the superclass for all vertex based shapes. Vertex shapes' parent. ๐SoShadowStyleโ a node for setting the shadow style on nodes. Shadow style, spooky. ๐SoShadowSpotLightโ a node for setting up a spot light which casts shadows. Spotlight with shadow drama. ๐ฆSoShadowCullingโ a node for setting the shadow style on nodes. Shadow style, again? Culling edition. ๐SoGeoOriginโ used to specify an absolute geographic location against which geometry is referenced. Geo origin, the reference point. ๐SoGeoLocationโ used to georeference the following nodes. Georeference like a boss. ๐SoGeoSeparatorโ used to georeference a scene graph. Georeference the whole scene. ๐SoGeoCoordinateโ used to specify a list of geographical coordinates. Coordinates, but geographic. ๐บ๏ธ
โจ MACROS โจ
Okay bestie, here are the macros, all the defines you need to know. ๐
#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 that perform various actions such as rendering. No cap. ๐ฌ
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. It's giving legacy but make it iconic. ๐
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. So like, some are canon, some are fanfic. โจ
For VRML97 nodes, see the VRMLnodes page. ๐
The VRML1.0 specification is at http://www.web3d.org/x3d/specifications/vrml/VRML1.0/index.html โ go read it if you're feeling academic. ๐
โจ MACRO DEFINITION DOCUMENTATION โจ
โจ #define SO_NODE_HEADER( classname) โจ
This macro adds standard declarations needed in Coin nodes for object creation and type identification. It's the header glow-up. ๐
See also: SO_NODE_SOURCE
โจ #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. Abstract, so no object-making for you. ๐ซ
See also: SO_NODE_ABSTRACT_SOURCE
โจ #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. It's the class registration moment. ๐
See also: 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. Abstract but still registered. ๐
See also: SO_NODE_INIT_CLASS
โจ #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. The source side of the story. ๐
See also: SO_NODE_HEADER
โจ #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. Abstract source, periodt. ๐
See also: SO_NODE_ABSTRACT_HEADER
โจ #define SO_NODE_CONSTRUCTOR( classname) โจ
Place this in the node constructor. It sets up the field data object for the node class. Constructor vibes. ๐๏ธ
โจ #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. First instance energy. ๐ฅ
โจ #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. Adding fields like a boss. โ
โจ #define SO_NODE_DEFINE_ENUM_VALUE( enumname, enumvalue) โจ
This macro associates enum names with values, used for file input/output. Enum name and value, besties. ๐ข
โจ AUTHOR โจ
This whole page was generated automatically by Doxygen for Coin from the source code. So you know it's legit. ๐
And that's a wrap, bestie! This masterpiece is from Coin version 4.0.10, dated Thu Jun 25 2026 00:00:00, and it's the coin_nodes(3) manual page. Stay iconic. ๐
โจ
๐ฆ where this page comes from
- fedora 43: Coin4-devel 4.0.10-1.fc43 ยท BSD-3-Clause AND GPL-3.0-or-later
- fedora 43: Coin4-devel 4.0.10-1.fc43 ยท BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 ยท BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 ยท BSD-3-Clause AND GPL-3.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms