Class SoOrthoSliceDragger

  • All Implemented Interfaces:
    SafeDisposable

    public class SoOrthoSliceDragger
    extends SoTranslate1Dragger
    Object that moves an SoOrthoSlice by dragging with the mouse. SoOrthoSliceDragger is derived from SoTranslate1Dragger and has similar behavior, but is specifically designed to allow direct manipulation of an SoOrthoSlice. The difference is that this class uses the actual geometry of the ortho slice to detect mouse clicks and automatically updates the slice's SoOrthoSlice.sliceNumber field as the dragger is moved. Conversely the dragger updates itself if the slice's axis or sliceNumber fields are changed by the application.

    The dragger will not do anything until the field orthoSlicePath has been set. The path can be a partial path, i.e. it does not need to start at the root of the scene graph. However, it must include the SoOrthoSlice node.

    The dragger always sets its "translator" part to be the actual ortho slice node. When the dragger is created it sets its "translatorActive" part to be an empty Separator. You can reset this to something else. You can attach callbacks to this dragger in the usual way.

    If the camera faces the slice (i.e. the orientation of the slice and the camera are exactly the same), the dragger will automatically change its orientation to another axis so that it can be manipulated (otherwise it can't). When the dragger itself is displayed, this behaviour may be surprising, and it can be disabled by setting the SoPreferences value IVVR_ENABLE_ORTHOSLICE_DRAGGER_AXIS_SWITCH to false.

    EXAMPLE

     SoSeparator volSep = new SoSeparator();
     root.addChild(volSep);
     
     // Create and initialize data node
     SoVolumeData volData = new SoVolumeData();
     volSep.addChild( volData );
     
     // Create and initialize orthoslice node
     SoOrthoSlice orthoSlice = new SoOrthoSlice();
     volSep.addChild( orthoSlice );
     
     // Create path to slice node
     // Note: Can be a partial path but must include the slice node.
     SoPath path = new SoPath(volSep);
     path.regular.append( orthoSlice );
     
     // Create and initialize dragger
     SoOrthoSliceDragger dragger = new SoOrthoSliceDragger();
     dragger.orthoSlicePath.setValue( path );
     volSep.addChild(dragger);

    File format/default:

    OrthoSliceDragger {

      orthoSlicePath NULL
      volumeDimension 0 0 0
      volumeExtent 0 0 0
      enableHighlight true
      highlightColor 1.0 1.0 0
    }

    See Also:
    SoDragger, SoTranslate1Dragger, SoOrthoSlice
    • Field Detail

      • orthoSlicePath

        public final SoSFPath orthoSlicePath
        Path to the SoOrthoSlice node to drag.
        Default is empty (no path).
      • volumeDimension

        @Deprecated(since="101.1.0.0")
        public final SoSFVec3i32 volumeDimension
        Deprecated.
        As of Open Inventor 101.1.0.0. This field is ignored. The dimension is fetched automatically from the SoDataSet specified by the field dataSetId of the SoOrthoSlice handled by this dragger.
        Dimension of the volume.

        Warning Deprecated since Open Inventor 101100. This field is ignored. The dimension is fetched automatically from the SoDataSet specified by the field dataSetId of the SoOrthoSlice handled by this dragger.

      • volumeExtent

        @Deprecated(since="101.1.0.0")
        public final SoSFBox3f volumeExtent
        Deprecated.
        As of Open Inventor 101.1.0.0. This field is ignored. The extent is fetched automatically from the SoDataSet specified by the field dataSetId of the SoOrthoSlice handled by this dragger.
        Extent of the volume.

        Warning Deprecated since Open Inventor 101100. This field is ignored. The extent is fetched automatically from the SoDataSet specified by the field dataSetId of the SoOrthoSlice handled by this dragger.

      • highlightColor

        public final SoSFColor highlightColor
        Specifies the highlight color. See also enableHighlight. The default color is yellow (1,1,0).
      • enableHighlight

        public final SoSFBool enableHighlight
        Enables highlighting. If this field is true, during a mousemouve, a border is drawn and highlighted according to the highlightColor when the cursor moves over the slice. This border disappears once the cursor is no longer over the slice. Default is true.
    • Constructor Detail

      • SoOrthoSliceDragger

        public SoOrthoSliceDragger()
        Constructor.