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:
    SoMultiSwitch, SoPath, SoPathSwitch, SoSwitch
    • Field Detail

      • 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 Detail

      • SoMultiPathSwitch

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

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