Coin Logo Coin3D is Free Software,
published under the BSD 3-clause license.
https://bitbucket.org/Coin3D/
http://www.kongsberg.com/kogt/
Action Classes

Actions are objects that traverse a scene graph to drive some scene-related process. More...

Classes

class  SoAction
 The SoAction class is the base class for all traversal actions.Applying actions is the basic mechanism in Coin for executing various operations on scene graphs or paths within scene graphs, including search operations, rendering, interaction through picking, etc. More...
 
class  SoBoxHighlightRenderAction
 The SoBoxHighlightRenderAction class renders the scene with highlighted boxes around selections.This action performs the same tasks as its parent class, SoGLRenderAction, with the added ability to render highlighted bounding boxes around geometry in selected nodes. This is a simple but convenient way of giving feedback to the user upon interaction with the scene graph. More...
 
class  SoCallbackAction
 The SoCallbackAction class invokes callbacks at specific nodes.This action has mechanisms for tracking traversal position and traversal state. In combination with the ability to pass geometry primitives to callback actions set by the user, this does for instance make it rather straightforward to extract the geometry of a scene graph. More...
 
class  SoGLRenderAction
 The SoGLRenderAction class renders the scene graph with OpenGL calls.Applying this method at a root node for a scene graph, path or pathlist will render all geometry contained within that instance to the current OpenGL context. More...
 
class  SoGetBoundingBoxAction
 The SoGetBoundingBoxAction class calculates bounding boxes for nodes and subgraphs.If this action is applied to a path or scene graph root, it will calculate the bounding box and the center point of the geometry contained within the scene. More...
 
class  SoGetMatrixAction
 The SoGetMatrixAction class is an action for accumulating the transformation matrix of a subgraph.This action makes it easy to calculate and convert to and from the global coordinate system of your scene and local coordinates of parts in a hierarchical model. More...
 
class  SoGetPrimitiveCountAction
 The SoGetPrimitiveCountAction class counts the primitives in a scene.Apply this action to a scene if you need to know the number of primitives present in a scenegraph, or parts of a scenegraph. More...
 
class  SoHandleEventAction
 The SoHandleEventAction class distributes user events to the scene.This is the action used by the GUI viewer classes to pass interaction events from the window system to the nodes in the scene graph. More...
 
class  SoLineHighlightRenderAction
 The SoLineHighlightRenderAction class renders selections with line highlighting.See the documentation of SoBoxHighlightRenderAction. More...
 
class  SoPickAction
 The SoPickAction class is the base class for picking actions.The basis for all interaction features that Coin provides for the application programmer is the pick actions. Draggers, manipulators, SoSelection nodes, etc all make use of the functionality provided by the pick actions for selecting and manipulating scene geometry in various ways. More...
 
class  SoRayPickAction
 The SoRayPickAction class does ray intersection with scene graphs.For interaction with the scene graph geometry, it is necessary to be able to do intersection testing for rays. This functionality is provided by the SoRayPickAction class. More...
 
class  SoReorganizeAction
 The SoReorganizeAction class reorganizes your scene graph to optimize traversal/rendering. More...
 
class  SoSearchAction
 The SoSearchAction class provides methods for searching through scene graphs.Nodes can be searched for by pointer, type, and name, or a combination of those criteria. Types can be interpreted as exact types, or the type can match nodes derived from it. Every single node can be searched, or normal traversal rules can be followed when searching (this is especially important to note with regard to switch nodes). More...
 
class  SoToVRMLAction
 The SoToVRMLAction class builds a new scene graph using only VRML 1.0 nodes.This action is used for converting a scene graph of VRML2/VRML97 nodes to a new scene graph using only VRML1 compatible nodes. More...
 
class  SoToVRML2Action
 The SoToVRML2Action class builds a new scene graph, using only VRML97/VRML2 nodes.This action is used for converting a scene graph of VRML1/Coin nodes to a new scene graph using only VRML97/VRML2 nodes. More...
 
class  SoWriteAction
 The SoWriteAction class writes a scene graph to file.When applied to a scene, this action writes its contents to the stream contained within an SoOutput instance. This can be a file, a memory buffer or a system filehandle like stdout, for instance. More...
 
class  SoAudioRenderAction
 The SoAudioRenderAction class renders the aural parts of the scene graph.Applying this method at a root node for a scene graph, path or pathlist will render all sound-related nodes contained within that instance to the current SoAudioDevice. More...
 
class  SoActionMethodList
 The SoActionMethodList class contains function pointers for action methods.An SoActionMethodList contains one function pointer per node type. Each action contains an SoActioMethodList to know which functions to call during scene graph traversal. More...
 
class  SoEnabledElementsList
 The SoEnabledElementsList class is a container for type info for element types that are enabled in actions.This class is probably not interesting for the application programmer. More...
 
class  SoIntersectionDetectionAction
 The SoIntersectionDetectionAction class is for detecting intersecting primitives in a scene. More...
 

Detailed Description

Actions are objects that traverse a scene graph to drive some scene-related process.

One example is OpenGL rendering, and another one ray picking. At the most basic level, most action management will be done for the user behind the scenes in an SoSceneManager object, and the only actions one might need to get acquainted with are SoSearchAction and SoWriteAction.

For more advanced usage of Coin, one might want (or need) to take full control over driving all the actions oneself, in which case one will also need to know about the SoGLRenderAction, SoHandleEventAction, SoGetBoundingBoxAction, and SoRayPickAction.

The remaining actions are mostly more special-purpose actions of various kinds, except for the SoCallbackAction.

Before going to the step of implementing an extension action, one should really take a good look at the SoCallbackAction class, which is a general-purpose action that can be used as the framework for implementing almost any traversal-based process, with callback-hooks for all kinds of events that happen during traversal. In most cases, one can avoid the hassle of writing a new action, and just use SoCallbackAction instead.