nodes(3)

πŸ“¦ version 3.1.3, in fedora 43, fedora 44

πŸ’– nodes(3) πŸ’–

okay so bestie, welcome to nodes(3) from the Library Functions Manual β€” yes that's the whole vibe of this page, and it's about to be your new hyperfixation fr fr πŸ¦‹βœ¨


✨ NAME ✨

nodes β€” Node Classes πŸ‘‘

that's it, that's the whole name section β€” short, sweet, and serving main character energy. we are talking Node Classes here, and ngl the rest of this manual is gonna eat πŸ’…πŸŒΈ

✨ SYNOPSIS ✨

πŸŽ€ Classes πŸŽ€

okay so here's the full lineup of classes, bestie β€” every single one, no cap. πŸ’…

  • SoGeoCoordinate β€” the class you use when you need to specify a whole list of geographical coordinates 🌍
  • SoGeoLocation β€” this one georeferences the nodes that come after it πŸ“
  • SoGeoOrigin β€” specifies an absolute geographic location, and geometry gets referenced against it πŸ—ΊοΈ
  • SoGeoSeparator β€” used to georeference a scene graph 🌐
  • SoAnnotation β€” draws all its child geometry on top of other geometry, main character energy ✨
  • SoAntiSquish β€” resets to uniform scaling, no squishing allowed πŸ™…β€β™€οΈ
  • SoArray β€” a group node for setting up regular arrays of subgraphs 🧩
  • SoBaseColor β€” a node type for conveniently setting the base material color 🎨
  • SoBlinker β€” a cycling switch node, blink blink πŸ‘€
  • SoBumpMap β€” maps a bump map onto subsequent shapes πŸ—ΊοΈ
  • SoBumpMapCoordinate β€” provides bump map coordinates to shape nodes πŸ“
  • SoBumpMapTransform β€” defines 2D bump map transformations πŸ”„
  • SoCacheHint β€” a node with hints about how to cache geometry πŸ’Ύ
  • SoCallback β€” a node type that gives you a way to set callback hooks in the scene graph πŸͺ
  • 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 β€” a node type for setting the tradeoff between quality and performance βš–οΈ
  • SoCoordinate3 β€” provides coordinates to shape nodes (3D, bestie) πŸ“Œ
  • SoCoordinate4 β€” provides coordinates to shape nodes (4D, fancy) 🧊
  • SoDepthBuffer β€” controls the GL depth buffer πŸ•³οΈ
  • SoDirectionalLight β€” a node type for specifying directional light sources πŸ’‘
  • SoDrawStyle β€” specifies common rendering properties for shapes πŸ–ŒοΈ
  • SoEnvironment β€” specifies 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.. (yes, two dots, iconic) πŸ“Έ
  • SoGroup β€” a node which manages other node instances πŸ‘―β€β™€οΈ
  • SoInfo β€” a node for holding text information πŸ“
  • SoLOD β€” chooses a child based on distance between viewer and object πŸ“
  • SoLabel β€” a node for holding label information in a scene graph 🏷️
  • SoLevelOfDetail β€” chooses 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 geometry under the cursor πŸ–±οΈ
  • SoMaterial β€” a node type for setting up material values for scene geometry 🧡
  • SoMaterialBinding β€” sets 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 🧬
  • SoNormal β€” a node for providing normals to the state πŸ“
  • SoNormalBinding β€” specifies 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 current path matches a configurable path πŸ›€οΈ
  • SoPendulum β€” used to create oscillating rotations πŸ•°οΈ
  • SoPerspectiveCamera β€” defines a camera node with perspective rendering πŸ“Έ
  • SoPickStyle β€” sets 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 β€” specifies a set of 2D coordinates for profiles πŸ“Œ
  • SoProfileCoordinate3 β€” specifies a set of 3D coordinates for profiles πŸ“Œ
  • SoResetTransform β€” makes it possible to nullify state during traversal πŸ”„
  • 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 β€” creates 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 with hints about how to render geometry πŸ’‘
  • SoShuttle β€” oscillates between two translations 🚌
  • SoSpotLight β€” a node type for light sources with a cone shaped light volume πŸ”¦
  • SoSurroundScale β€” automatically scales geometry to surround other geometry πŸ”„
  • SoSwitch β€” a group node which selects one child subgraph for traversal πŸ”€
  • SoTexture2 β€” maps a 2D texture onto subsequent geometry in the scene graph πŸ–ΌοΈ
  • SoTexture2Transform β€” defines 2D texture transformations πŸ”„
  • SoTexture3 β€” maps a 3D texture onto geometry 🧊
  • SoTexture3Transform β€” defines 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 πŸ“Œ
  • SoTextureCoordinateBinding β€” says how texture coordinates should be bound to shapes 🧡
  • SoTextureCoordinateCube β€” autogenerates cubemapped texture coordinated for shapes 🧊
  • SoTextureCoordinateCylinder β€” autogenerates cylinder mapped texture coordinated for shapes πŸ›’οΈ
  • SoTextureCoordinateDefault β€” removes texture coordinates from the state 🧹
  • SoTextureCoordinateEnvironment β€” generates texture coordinates by projecting onto a surrounding texture 🌐
  • SoTextureCoordinateFunction β€” an abstract base class for texture coordinate generating nodes 🧬
  • SoTextureCoordinateNormalMap β€” generates texture coordinates by projecting onto a surrounding texture 🌐
  • SoTextureCoordinateObject β€” generates texture coordinates by... (yes, it just trails off, iconic) ✨
  • SoTextureCoordinatePlane β€” generates texture coordinates by projecting onto a plane ✈️
  • SoTextureCoordinateReflectionMap β€” generates 3D reflection texture coordinates πŸͺž
  • SoTextureCoordinateSphere β€” autogenerates spheremapped texture coordinated for shapes 🌍
  • SoTextureCubeMap β€” maps a cube map onto subsequent shape nodes 🧊
  • SoTextureMatrixTransform β€” defines a texture matrix transformation πŸ”’
  • SoTextureScalePolicy β€” a node for controlling the texture scale policy πŸ“
  • SoTextureUnit β€” a node for setting the active texture unit πŸŽ›οΈ
  • SoTransform
  • SoTransform β€” the all-purpose transformation node type, she does it all πŸ’…
  • SoTransformSeparator β€” a group node that preserves the current transformations
  • SoTransformation β€” the abstract base class for transformation nodes
  • SoTranslation β€” a node type for specifying geometry translations
  • SoTransparencyType β€” a node for setting the transparency type for shapes
  • SoUnits β€” a node for setting unit types
  • SoVertexProperty β€” collects the functionality of various appearance nodes
  • SoWWWAnchor β€” adds URL callbacks to the highlighted geometry
  • SoWWWInline β€” a node used to include data from an URL
  • SoFragmentShader β€” used for setting up fragment shader programs
  • SoGeometryShader β€” used for loading geometry shader programs
  • SoVertexShader β€” used for setting up vertex shader programs
  • SoShadowCulling β€” a node for setting the shadow style on nodes
  • SoShadowSpotLight β€” a node for setting up a spot light which casts shadows
  • SoShadowStyle β€” a node for setting the shadow style on nodes
  • SoAsciiText β€” renders flat 3D text
  • SoCone β€” for rendering cone shapes
  • SoCube β€” for rendering cubes
  • SoCylinder β€” for rendering cylinder shapes
  • SoFaceSet β€” used to render and organize non-indexed polygonal face data
  • SoImage β€” draws a 2D image on the viewport
  • SoIndexedFaceSet β€” used to handle generic indexed facesets
  • SoIndexedLineSet β€” used to render and otherwise represent indexed lines
  • SoIndexedMarkerSet β€” used to display a set of bitmap markers at 3D positions
  • SoIndexedNurbsCurve β€” a node for representing smooth curves
  • SoIndexedNurbsSurface β€” can be used to render NURBS surfaces
  • SoIndexedPointSet β€” used to display a set of 3D points
  • SoIndexedShape β€” the superclass for all indexed vertex shapes
  • SoIndexedTriangleStripSet β€” keeps data for rendering and otherwise representing triangle strips
  • SoLineSet β€” used to render and organize non-indexed polylines
  • SoMarkerSet β€” displays a set of 2D bitmap markers in 3D
  • SoNonIndexedShape β€” the superclass for all non-indexed vertex based shapes
  • SoNurbsCurve β€” a node for representing smooth curves
  • SoNurbsSurface β€” used to render smooth surfaces
  • SoPointSet β€” used to display a set of 3D points
  • SoQuadMesh β€” used to render and optimize a quadrilateral mesh
  • SoShape β€” the superclass for geometry shapes
  • SoSphere β€” for rendering sphere shapes
  • SoText2 β€” a node type for visualizing 2D text aligned with the camera plane
  • SoText3 β€” renders extruded 3D text
  • SoTriangleStripSet β€” used to render and control non-indexed triangle strips
  • SoVertexShape β€” the superclass for all vertex based shapes

πŸ¦‹ Macros πŸ¦‹

okay bestie, these are the macro signatures, copied exactly, no edits, no cap:

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

πŸ¦‹ Functions πŸ¦‹

  • static SoType SoTexture::getClassTypeId (void) β€” common base class for texture nodes ✨

πŸ’– Detailed Description πŸ’–

so here's the tea πŸ“: 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 they 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. periodt.

For VRML97 nodes, see the VRML97 Classes page. πŸ‘‘

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

🧚 Dynamic Loading of Extension Nodes 🧚

When Coin tries to get hold of a node type object (SoType) for a class based on the name string of the node type, it will β€” if no such node type has been initialized yet β€” scan the file system for a dynamically loadable extension node with that given name. This can be completely disabled by setting the environment variable COIN_NO_SOTYPE_DYNLOAD to a positive integer value, new from Coin v2.5.0. 🫢

On UNIX, extensions nodes are regular .so files. On Win32, extension nodes are built as DLLs. On Mac OS X systems, extension nodes are built as .dylib files.

Note: the extension nodes have to be built using the flag -dynamiclib, not -bundle. πŸ’€

Whether the dynamically loadable objects should be named with or without the "lib" prefix is optional. Both schemes will work. slay.

People don't usually program in a way so that they instantiate new nodes through the node class' SoType object, but that is the way nodes are created when model files are loaded. This means that for all Coin applications that load model files, the custom extension nodes will automatically be supported for the model files without you having to modify their source code and rebuild the applications. iconic behaviour honestly.

See ftp://ftp.coin3d.org/pub/coin/src/dynloadsample.tar.gz for an example using two dynamically loadable extension nodes. You only use an examiner viewer to view the two extension nodes in action. ✨

Only a limited set of C++ compilers are supported as of yet. This is because, to initialize the extension node, it is necessary to know something about how the C++ compiler mangles the initClass symbol. If we don't know that, there is no way to locate the initClass method in the library, which means the extension node can not make itself known to the type system. 😭

If your C++ compiler is not supported, the source file to add support for a new compiler in is src/misc/cppmangle.icc. It is fairly trivial to add support for new compilers, but if you don't understand how, just ask us about it. Patches with support for new compilers are of course very welcome. πŸ’œ

See also

  • SoType

Since

  • Coin 2.0

🌸 Macro Definition Documentation 🌸

#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

#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

#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

#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

#define SO_NODE_SOURCE( classname)

This macro sets up the impementation of the declarations in SO_NODE_HEADER. It chould be placed in the implementation file for extension nodes. (yes, "impementation" and "chould" β€” we keep the originals, typos are part of the lore πŸŽ€)

See also

  • SO_NODE_HEADER

#define SO_NODE_ABSTRACT_SOURCE( classname)

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

See also

  • SO_NODE_ABSTRACT_HEADER

#define SO_NODE_CONSTRUCTOR( classname)

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

#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. main character energy fr fr. πŸ‘‘

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

#define SO_NODE_DEFINE_ENUM_VALUE( enumname, enumvalue)

This macro associates enum names with values, used for file input/output. πŸ’…


🌈 Function Documentation 🌈

SoType SoTexture::getClassTypeId (void ) [static]

Common base class for texture nodes. SoTexture SoTexture.h Inventor/nodes/SoTexture.h 🌸

Be aware that this class is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

Since

  • Coin 3.0

πŸŽ€ Author πŸŽ€

Generated automatically by Doxygen for Coin from the source code. (not a human, just a lil robot doing its thing πŸ€–βœ¨)


and that's the whole page bestie, we ate and left no crumbs πŸ’…πŸ“ this was nodes(3) from Coin Version 3.1.3, so if you ever need to cite it or summon it again, that's the version and the date tag it's riding with. ily, go build something iconic πŸ¦‹πŸ’–

πŸ“¦ where this page comes from