|
http://www.sim.no/ http://www.coin3d.org/ |
Classes | |
| class | SoGLClipPlaneElement |
| The SoGLClipPlaneElement class is yet to be documented. More... | |
| class | SoGLColorIndexElement |
| The SoGLColorIndexElement class sets the current OpenGL color. More... | |
| class | SoGLCoordinateElement |
| The SoGLCoordinateElement class is yet to be documented. More... | |
| class | SoGLDepthBufferElement |
| The SoGLDepthBufferElement controls the OpenGL depth buffer. More... | |
| class | SoGLDisplayList |
| The SoGLDisplayList class stores and manages OpenGL display lists. More... | |
| class | SoGLDrawStyleElement |
| The SoGLDrawStyleElement updates the current draw style in OpenGL. More... | |
| class | SoGLEnvironmentElement |
| The SoGLEnvironmentElement class is for setting GL fog etc. More... | |
| class | SoGLLazyElement |
| The SoGLLazyElement class is meant to optimize GL rendering. More... | |
| class | SoGLLightIdElement |
| The SoGLLightIdElement class is yet to be documented. More... | |
| class | SoGLLinePatternElement |
| The SoGLLinePatternElement class is yet to be documented. More... | |
| class | SoGLLineWidthElement |
| The SoGLLineWidthElement class changes the linewidth setting of the OpenGL render state. More... | |
| class | SoGLModelMatrixElement |
| The SoGLModelMatrixElement class is yet to be documented. More... | |
| class | SoGLMultiTextureCoordinateElement |
| The SoGLMultiTextureCoordinateElement class stores the current gltexture coordinates for several units. More... | |
| class | SoGLTextureEnabledElement |
| The SoGLTextureEnabledElement class is an element which controls whether texturing is enabled or not. More... | |
| class | SoGLMultiTextureImageElement |
| The SoGLMultiTextureImageElement is used to control the current GL texture for texture units. More... | |
| class | SoGLMultiTextureMatrixElement |
| The SoGLMultiTextureMatrixElement class is used to update the OpenGL texture matrix. More... | |
| class | SoGLNormalElement |
| The SoGLNormalElement class is yet to be documented. More... | |
| class | SoGLPointSizeElement |
| The SoGLPointSizeElement class changes the pointsize setting of the OpenGL render state. More... | |
| class | SoGLPolygonOffsetElement |
| The SoGLPolygonOffsetElement class is yet to be documented. More... | |
| class | SoGLProjectionMatrixElement |
| The SoGLProjectionMatrixElement class is yet to be documented. More... | |
| class | SoGLRenderPassElement |
| The SoGLRenderPassElement class is yet to be documented. More... | |
| class | SoGLShapeHintsElement |
| The SoGLShapeHintsElement class is yet to be documented. More... | |
| class | SoGLTexture3EnabledElement |
| The SoGLTexture3EnabledElement class is an element which controls whether 3D texturing is enabled or not. More... | |
| class | SoGLTextureCoordinateElement |
| The SoGLTextureCoordinateElement class stores the current gltexture coordinates. More... | |
| class | SoGLTextureImageElement |
| The SoGLTextureImageElement is used to control the current GL texture. More... | |
| class | SoGLTextureMatrixElement |
| The SoGLTextureMatrixElement class is used to update the OpenGL texture matrix. More... | |
| class | SoGLUpdateAreaElement |
| The SoGLUpdateAreaElement class is yet to be documented. More... | |
| class | SoGLVBOElement |
| The SoGLVBOElement class is used to store VBO state. More... | |
| class | SoGLViewingMatrixElement |
| The SoGLViewingMatrixElement class is used to store the current viewing matrix. More... | |
| class | SoGLViewportRegionElement |
| The SoGLViewportRegionElement class is yet to be documented. More... | |
| class | SoAccumulatedElement |
| The SoAccumulatedElement class is an abstract class for storing accumulated state. More... | |
| class | SoAmbientColorElement |
| The SoAmbientColorElement class is yet to be documented. More... | |
| class | SoAnnoText3CharOrientElement |
| The SoAnnoText3CharOrientElement class is yet to be documented. More... | |
| class | SoAnnoText3FontSizeHintElement |
| The SoAnnoText3FontSizeHintElement class is yet to be documented. More... | |
| class | SoAnnoText3RenderPrintElement |
| The SoAnnoText3RenderPrintElement class is yet to be documented. More... | |
| class | SoBBoxModelMatrixElement |
| The SoBBoxModelMatrixElement class keeps track of the current model matrix during a scene graph traversal. It is used by amongst others the SoGetBoundingBoxAction class. More... | |
| class | SoBumpMapCoordinateElement |
| The SoBumpMapCoordinateElement class is yet to be documented. More... | |
| class | SoTextureImageElement |
| The SoTextureImageElement class is yet to be documented. More... | |
| class | SoBumpMapMatrixElement |
| The SoBumpMapMatrixElement class is used to manage the bump map matrix stack. More... | |
| class | SoCacheElement |
| The SoCacheElement class stores and manages the open caches. More... | |
| class | SoClipPlaneElement |
| The SoClipPlaneElement class is used to manage the clip plane stack. More... | |
| class | SoComplexityElement |
| The SoComplexityElement class contains the current shape complexity for a graph traverser. More... | |
| class | SoComplexityTypeElement |
| The SoComplexityTypeElement class is yet to be documented. More... | |
| class | SoCoordinateElement |
| The SoCoordinateElement class is yet to be documented. More... | |
| class | SoCreaseAngleElement |
| The SoCreaseAngleElement class stores the crease angle during a scene graph traversal. More... | |
| class | SoCullElement |
| The SoCullElement class is used internally for render and pick culling. More... | |
| class | SoDecimationPercentageElement |
| The SoDecimationPercentageElement class is yet to be documented. More... | |
| class | SoDecimationTypeElement |
| The SoDecimationTypeElement class is yet to be documented. More... | |
| class | SoDepthBufferElement |
| The SoDepthBufferElement controls the depth buffer settings. More... | |
| class | SoDiffuseColorElement |
| The SoDiffuseColorElement class is yet to be documented. More... | |
| class | SoDrawStyleElement |
| The SoDrawStyleElement class is yet to be documented. More... | |
| class | SoElement |
| SoElement is the abstract base class for all elements. More... | |
| class | SoEmissiveColorElement |
| The SoEmissiveColorElement class is yet to be documented. More... | |
| class | SoEnvironmentElement |
| The SoEnvironmentElement class is yet to be documented. More... | |
| class | SoFloatElement |
| SoFloatElement is an abstract base class for elements that consists of a single float value. More... | |
| class | SoFocalDistanceElement |
| The SoFocalDistanceElement class is yet to be documented. More... | |
| class | SoFontNameElement |
| The SoFontNameElement class is yet to be documented. More... | |
| class | SoFontSizeElement |
| The SoFontSizeElement class is yet to be documented. More... | |
| class | SoInt32Element |
| The SoInt32Element class is the base class for elements that simply store a 32-bit integer. More... | |
| class | SoLazyElement |
| The SoLazyElement class is used to handle material and shape properties. More... | |
| class | SoLightAttenuationElement |
| The SoLightAttenuationElement class is yet to be documented. More... | |
| class | SoLightElement |
| The SoLightElement class manages the currently active light sources. More... | |
| class | SoLightModelElement |
| The SoLightModelElement class is yet to be documented. More... | |
| class | SoLinePatternElement |
| The SoLinePatternElement class is yet to be documented. More... | |
| class | SoLineWidthElement |
| The SoLineWidthElement class changes the linewidth setting of the render state. More... | |
| class | SoListenerDopplerElement |
| The SoListenerDopplerElement holds the doppler velocity and factor of the current listener. More... | |
| class | SoListenerGainElement |
| The SoListenerGainElement class stores the SoListener gain during a scene graph traversal. More... | |
| class | SoListenerOrientationElement |
| The SoListenerOrientationElement holds the orientation of the current listener. More... | |
| class | SoListenerPositionElement |
| The SoListenerPositionElement holds the position of the current listener. More... | |
| class | SoLocalBBoxMatrixElement |
| The SoLocalBBoxMatrixElement class is yet to be documented. More... | |
| class | SoMaterialBindingElement |
| The SoMaterialBindingElement class is yet to be documented. More... | |
| class | SoModelMatrixElement |
| The SoModelMatrixElement class is used to manage the current transformation. More... | |
| class | SoTextureCoordinateElement |
| The SoTextureCoordinateElement class is yet to be documented. More... | |
| class | SoMultiTextureEnabledElement |
| The SoMultiTextureEnabledElement class is an element which stores whether texturing is enabled or not. More... | |
| class | SoMultiTextureImageElement |
| The SoMultiTextureImageElement class is yet to be documented. More... | |
| class | SoMultiTextureMatrixElement |
| The SoMultiTextureMatrixElement class is used to manage the texture matrix stack for texture units > 0. More... | |
| class | SoNormalBindingElement |
| The SoNormalBindingElement is yet to be documented. More... | |
| class | SoNormalElement |
| The SoNormalElement class is yet to be documented. More... | |
| class | SoOverrideElement |
| The SoOverrideElement maintains a list of overridable elements and a list over which elements should be overridden. More... | |
| class | SoPickRayElement |
| The SoPickRayElement class is yet to be documented. More... | |
| class | SoPickStyleElement |
| The SoPickStyleElement is yet to be documented. More... | |
| class | SoPointSizeElement |
| The SoPointSizeElement changes the pointsize setting of the render state. More... | |
| class | SoPolygonOffsetElement |
| The SoPolygonOffsetElement class is yet to be documented. More... | |
| class | SoProfileCoordinateElement |
| The SoProfileCoordinateElement class is yet to be documented. More... | |
| class | SoProfileElement |
| The SoProfileElement class is yet to be documented. More... | |
| class | SoReplacedElement |
| The SoReplacedElement class is an abstract element superclass. More... | |
| class | SoShapeStyleElement |
| The SoShapeStyleElement class is yet to be documented. More... | |
| class | SoShininessElement |
| The SoShininessElement class is yet to be documented. More... | |
| class | SoSoundElement |
| The SoSoundElement is used for optimizing audio rendering and for turning off inactive SoVRMLSound nodes. More... | |
| class | SoSpecularColorElement |
| The SoSpecularColorElement is yet to be documented. More... | |
| class | SoSwitchElement |
| The SoSwitchElement class is yet to be documented. More... | |
| class | SoTextOutlineEnabledElement |
| The SoTextOutlineEnabledElement class is yet to be documented. More... | |
| class | SoTextureCombineElement |
| The SoTextureCombineElement class is yet to be documented. More... | |
| class | SoTextureCoordinateBindingElement |
| The SoTextureCoordinateBindingElement class is yet to be documented. More... | |
| class | SoTextureEnabledElement |
| The SoTextureEnabledElement class is an element which stores whether texturing is enabled or not. More... | |
| class | SoTextureMatrixElement |
| The SoTextureMatrixElement class is used to manage the texture matrix stack. More... | |
| class | SoTextureOverrideElement |
| The SoTextureOverrideElement makes it possible to override texture elements. More... | |
| class | SoTextureQualityElement |
| The SoTextureQualityElement is yet to be documented. More... | |
| class | SoTextureUnitElement |
| The SoTextureUnitElement class is yet to be documented. More... | |
| class | SoTransparencyElement |
| The SoTransparencyElement is yet to be documented. More... | |
| class | SoUnitsElement |
| The SoUnitsElement class is yet to be documented. More... | |
| class | SoVertexAttributeBindingElement |
| The SoVertexAttributeBindingElement class is yet to be documented. More... | |
| class | SoViewVolumeElement |
| The SoViewVolumeElement class is yet to be documented. More... | |
| class | SoViewingMatrixElement |
| The SoViewingMatrixElement class stores the world-to-camera transformation. More... | |
| class | SoViewportRegionElement |
| The SoViewportRegionElement class is yet to be documented. More... | |
| class | SoWindowElement |
| The SoWindowElement class is used to store current window attributes. More... | |
| class | SoGeoElement |
| The SoGeoElement class is yet to be documented. More... | |
| class | SoGLShadowCullingElement |
| The SoGLShadowCullingElement class is yet to be documented. More... | |
| class | SoShadowStyleElement |
| The SoShadowStyleElement class is yet to be documented. More... | |
The element classes in Coin are the containers of state information during action traversals of scene graphs. One element usually corresponts to one item of information, or sometimes a group of related information values. The elements work like a stack that is pushed and popped as the action traverses in and out of SoSeparator nodes, and the action will always just inspect the top of the stack when it needs to know a value.
Elements are internal implementation details of the workings of nodes and actions, and is not something one needs to worry about before writing ones own extension nodes. Writing extension elements is even more removed from plain Open Inventor usage, but is fully possible for the experienced Open Inventor developer.
Elements are mostly internal to Coin, unless you create new extension nodes over Coin. Then you will probably need to know about them.
Elements are part of the design for scenegraph traversal in Coin.
It works like this: any traversal action instantiates and keeps a single SoState instance during traversal. The SoState instance uses SoElement objects as "memory units" to keep track of the current state for any feature of the scenegraph nodes.
As an example, consider the SoPointSize node: when the SoPointSize node is traversed by for instance a SoGLRenderAction, it will itself push a SoPointSizeElement onto the SoGLRenderAction's SoState stack. Later, when a SoPointSet node occurs in the scenegraph, it will request the current pointsize value from the SoState by reading off the value of it's SoPointSizeElement.
SoSeparator nodes will push and pop elements on and off the state stack, so anything that changes state below a SoSeparator node will not influence anything above the SoSeparator.
For more information on the theoretical underpinnings of this traversal design, you should consider reading available literature on the so-called "Visitor pattern". We recommend "Design Patterns", by Gamma, Helm, Johnson, Vlissides (aka the "Gang Of Four"). This book actually uses the Inventor API traversal mechanism as the case study for explaining the Visitor pattern.
For extending the Coin library with your own classes, we strongly recommend that you make yourself acquainted with the excellent «The Inventor Toolmaker» book (ISBN 0-201-62493-1), which describes the tasks involved in detail. This book was written by the original SGI Inventor designers and explains many of the underlying design ideas, aswell as having lots of hands-on examples on how to extend the Coin toolkit in ways that are true to the fundamental design ideas. («The Inventor Toolmaker» is also available at SGI's online library, at no cost. See Download The Inventor Toolmaker.) Reading the sourcecode of the built-in classes in Coin should also provide very helpful.
The following is a complete example on how to extend Coin with your own traversal elements. First, the class declaration of the new element (ie the header include file):
The implementation of the element:
And a small, stand-alone test application putting the new element to use:
Copyright © 1998-2010 by Kongsberg Oil & Gas Technologies. All rights reserved.
Generated for Coin by Doxygen 1.16.1.