Class SoMultiPathSwitch

All Implemented Interfaces:
SafeDisposable

public class SoMultiPathSwitch extends SoGroup
Group node that traverses only when traversed along a given path. SoMultiPathSwitch is a group node that traverses its children only if the current traversal path matches one of the SoPath specified in the paths field.

This can be used, for example, to affect only specific instances of a subgraph. The paths field contains a list of paths up to (but not including) the SoMultiPathsSwitch. The paths need not go all the way back to the root; if they do not, then only the number of ancestors that are in the path are compared to see if the children should be traversed.

An empty paths (the default) means that no children are traversed.

Effectively this is an extended version of SoPathSwitch.

Note: This node disables the bounding box cache for all SoSeparator nodes above it in the scene graph. This may reduce performance when moving the camera and the viewer's auto clip plane adjustment is enabled (the default). (It does not affect render caching.)

File format/default:

MultiPathSwitch {

    paths NULL
}

Action behavior:

SoGetBoundingBoxAction
Traverses the children if the paths match. Disables bounding box caches.

SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPickAction, SoHandleEventAction
Traverses the children if the paths match.

See Also:
  • Field Details

    • paths

      public final SoMFPath paths
      The list of paths that can match the current traversal path. Default is empty (no children will be traversed).
  • Constructor Details

    • SoMultiPathSwitch

      public SoMultiPathSwitch(int nChildren)
      Constructor that takes approximate number of children.
    • SoMultiPathSwitch

      public SoMultiPathSwitch()
      Create a multi-path switch node with default settings.