Class SoBoxHighlightRenderAction

  • public class SoBoxHighlightRenderAction
    extends SoHighlightRenderAction
    A box highlight style. SoBoxHighlightRenderAction is a render action which renders the specified scene graph, then renders wireframe boxes surrounding each selected object. If an SoGetBoundingBoxAction applied to a selected object produces an empty bounding box, no highlight is rendered for that object.

    Selected objects are specified by the first selection node (SoSelection or SoExtSelection) node in the scene to which this action is applied. If there is no selection node in the scene graph, then no objects will be highlighted.

    The application must explicitly tell Open Inventor to use a highlight render action in place of the default SoGLRenderAction in the SoSceneManager class using the setGLRenderAction() method. The viewer classes provide a convenience setGLRenderAction() method that calls SoSceneManager (see e.g. SoWinRenderArea).

    For convenience, the viewer classes also provide the redrawOnSelectionChange() method. This method attaches a sensor to the specified selection node and automatically schedules a redraw if the set of selected objects is modified.

    Other highlight effects are available including "halo" highlighting.


    Here is an example of how a box highlight can be specified for a particular selection node and viewer:

     // Viewer
     ViewerExaminer viewer = new ViewerExaminer();
     // Set the highlight render action
     final RenderArea area = viewer.getRenderArea();
     area.setGLRenderAction( new SoBoxHighlightRenderAction() );
     // Scene graph
     SoSelection selectionNode  = new SoSelection();
     // Request automatic redraw when selection changes
     selectionNode.addChangeCallback(new SoSelectionClassCB()
       public void invoke(SoSelection s)
     . . .
     viewer.setSceneGraph( selectionNode );

    See Also:
    SoLineHighlightRenderAction, SoColorHighlightRenderAction, SoHaloHighlightRenderAction, SoHighlightRenderAction, SoGLRenderAction, SoSelection, SoWinRenderArea
    • Constructor Detail

      • SoBoxHighlightRenderAction

        public SoBoxHighlightRenderAction​(SbViewportRegion viewportRegion)
        Constructor which takes the normal SoGLRenderAction parameters.
      • SoBoxHighlightRenderAction

        public SoBoxHighlightRenderAction()
    • Method Detail

      • getLineWidth

        public float getLineWidth()
        Gets the line width of the highlight.
      • setColor

        public void setColor​(SbColor c)
        Sets the color of the highlight. Default is red (1,0,0) . Application is responsible for forcing a redraw of the scene to see the effects of this change.
      • setLineWidth

        public void setLineWidth​(float width)
        Sets the line width of the highlight. Default is 3 . Application is responsible for forcing a redraw of the scene to see the effects of this change.
      • enableElement

        public static void enableElement​(java.lang.Class<? extends Inventor> t,
                                         int stkIndex)
      • getLinePattern

        public short getLinePattern()
        Gets the line pattern of the highlight.
      • getColor

        public SbColor getColor()
        Gets the color of the highlight.
      • setLinePattern

        public void setLinePattern​(short pattern)
        Sets the line pattern of the highlight. Default is solid, 0xffff . The pattern of bits in the passed variable specifies the pattern of the line. See SoDrawStyle for a description. Application is responsible for forcing a redraw of the scene to see the effects of this change.