coin_nodes(3)

๐Ÿ“ฆ
version 4.0.10 ยท 4 versions
, in fedora 43, fedora 44

๐Ÿ’– 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