|
http://www.coin3d.org/ http://www.kongsberg.com/kogt/ |
The SoSwitch class is a group node which selects one child subgraph for traversal.Which child to traverse is controlled by the application programmer by using the SoSwitch::whichChild field. In addition to picking out a single child for traversal, it is also possible to flip all children on or off for traversal. More...
#include <Inventor/nodes/SoSwitch.h>
Public Member Functions | |
| SoSwitch (void) | |
| SoSwitch (int numchildren) | |
| virtual SbBool | affectsState (void) const |
| virtual void | doAction (SoAction *action) |
| virtual void | callback (SoCallbackAction *action) |
| virtual void | GLRender (SoGLRenderAction *action) |
| virtual void | pick (SoPickAction *action) |
| virtual void | getBoundingBox (SoGetBoundingBoxAction *action) |
| virtual void | handleEvent (SoHandleEventAction *action) |
| virtual void | getMatrix (SoGetMatrixAction *action) |
| virtual void | search (SoSearchAction *action) |
| virtual void | write (SoWriteAction *action) |
| virtual void | getPrimitiveCount (SoGetPrimitiveCountAction *action) |
| virtual void | audioRender (SoAudioRenderAction *action) |
| virtual void | notify (SoNotList *nl) |
Static Public Member Functions | |
| static void | initClass (void) |
| Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. | |
Public Attributes | |
| SoSFInt32 | whichChild |
Protected Member Functions | |
| virtual | ~SoSwitch () |
| void | traverseChildren (SoAction *action) |
The SoSwitch class is a group node which selects one child subgraph for traversal.
Which child to traverse is controlled by the application programmer by using the SoSwitch::whichChild field. In addition to picking out a single child for traversal, it is also possible to flip all children on or off for traversal.
This node is very useful for conditionally turning on or off parts of the scenegraph based on the current application processing mode, visualizing mode, or whatever else the application can do.
FILE FORMAT/DEFAULTS:
Switch {
whichChild -1
}
| SoSwitch::SoSwitch | ( | void | ) |
Default constructor.
| SoSwitch::SoSwitch | ( | int | numchildren | ) |
Constructor.
The argument should be the approximate number of children which is expected to be inserted below this node. The number need not be exact, as it is only used as a hint for better memory resource allocation.
| SoSwitch::~SoSwitch | ( | ) | [protected, virtual] |
Destructor.
| SbBool SoSwitch::affectsState | ( | void | ) | const [virtual] |
Returns TRUE if the node could have any effect on the state during traversal.
If it returns FALSE, no data in the traversal-state will change from the pre-traversal state to the post-traversal state. The SoSeparator node will for instance return FALSE, as it pushes and pops the state before and after traversal of its children. All SoShape nodes will also return FALSE, as just pushing out geometry data to the rendering engine won't affect the actual rendering state.
The default method returns TRUE, on a "better safe than sorry" philosophy.
Reimplemented from SoNode.
| void SoSwitch::search | ( | SoSearchAction * | action | ) | [virtual] |
Action method for SoSearchAction.
Compares the search criteria from the action to see if this node is a match. Searching is done by matching up all criteria set up in the SoSearchAction -- if any of the requested criteria is a miss, the search is not deemed successful for the node.
Reimplemented from SoGroup.
| void SoSwitch::write | ( | SoWriteAction * | action | ) | [virtual] |
Action method for SoWriteAction.
Writes out a node object, and any connected nodes, engines etc, if necessary.
Reimplemented from SoGroup.
Reimplemented in SoBlinker.
| void SoSwitch::notify | ( | SoNotList * | l | ) | [virtual] |
Selects which child to traverse during rendering (and some other) actions.
The value should be either SO_SWITCH_NONE (for traversing no children, like it was an empty SoGroup node), SO_SWITCH_ALL (for traversing like if we were an SoGroup node), SO_SWITCH_INHERIT (for traversing the same child as the last SoSwitch node), or an index value for a child.
When using SO_SWITCH_INHERIT, it is important to understand how the SoSwitch-node is affected by other SoSwitch-nodes. If you have several switches in the scenegraph, the last switch with its whichChild field set to anything but SO_SWITCH_INHERIT will be used. The switch does not only inherit from its parent switch node, but also from its siblings, located anywhere before it in the scenegraph. An example will help clarify this:
#Inventor V2.1 ascii Separator { Switch { whichChild 0 Group { Switch { whichChild 1 BaseColor { rgb 1 0 0 } # red BaseColor { rgb 1 1 0 } # yellow } Switch { whichChild -2 # SO_SWITCH_INHERIT BaseColor { rgb 0 1 0 } # green BaseColor { rgb 0 0 1 } # blue } Cube { } } } }
This results in a blue cube on the screen. The reason being that the value of the previous whichChild field was inherited by the final switch, making it select child 1 - the blue BaseColor.
When constructing ascii Inventor files, the integer values for the keywords must be used instead of their names. They are -1 for SO_SWITCH_NONE, -2 for SO_SWITCH_INHERIT, and -3 for SO_SWITCH_ALL.
Default value for the field is SO_SWITCH_NONE.
Copyright © by Kongsberg Oil & Gas Technologies. All rights reserved.
Generated on Mon Nov 7 20:02:05 2011 for Coin by Doxygen 1.6.3.