SoBoxHighlightRenderAction(3IV)

NAME
SoBoxHighlightRenderAction — a selection highlight style

INHERITS FROM
SoAction > SoGLRenderAction > SoBoxHighlightRenderAction

SYNOPSIS
#include <Inventor/actions/SoBoxHighlightRenderAction.h>

Methods from class SoBoxHighlightRenderAction:

SoBoxHighlightRenderAction()
virtual void
apply(SoNode *node)
void
setVisible(SbBool b)
SbBool
isVisible() const
void
setColor(const SbColor &c)
SbColor &
getColor()
void
setLinePattern(unsigned short pattern)
unsigned short
getLinePattern()
void
setLineWidth(float width)
float
getLineWidth()

Methods from class SoGLRenderAction:

void
setViewportRegion(const SbViewportRegion &newRegion)
const SbViewportRegion &
getViewportRegion() const
void
setUpdateArea(const SbVec2f &origin, const SbVec2f &size)
void
getUpdateArea(SbVec2f &origin, SbVec2f &size) const
void
setAbortCallback(SoGLRenderAbortCB *func, void *userData)
void
setTransparencyType(TransparencyType type)
TransparencyType
getTransparencyType() const
void
setSmoothing(SbBool smooth)
SbBool
isSmoothing() const
void
setNumPasses(int num)
int
getNumPasses() const
void
setPassUpdate(SbBool flag)
SbBool
isPassUpdate() const
void
setPassCallback(SoGLRenderPassCB *func, void *userData)
void
setCacheContext(uint32_t context)
uint32_t
getCacheContext() const

Methods from class SoAction:

static SoType
getClassTypeId()
virtual SoType
getTypeId()
virtual SbBool
isOfType(SoType type)
virtual void
invalidateState()

DESCRIPTION
SoBoxHighlightRenderAction is a render action which renders the specified scene graph, then renders wireframe boxes surrounding each selected object. Selected objects are specified by the first SoSelection node in the scene to which this action is applied. If an SoGetBoundingBoxAction applied to a selected object produces an empty bounding box, no highlight is rendered for that object. A highlight render action can be passed to the setGLRenderAction() method of SoXtRenderArea to have an effect on scene graphs.

METHODS

SoBoxHighlightRenderAction()
Constructor.

virtual void
apply(SoNode *node)
This renders the passed scene graph, and also renders wireframe boxes around selected objects as specified by the first SoSelection node found in the scene graph.

void
setVisible(SbBool b)
This provides a convenient mechansim for turning highlights off or on. When FALSE is passed, subsequent calls to apply() render the scene graph without rendering highlights. The application is responsible for forcing a redraw of the scene after changing this state. The default visibility is on.

SbBool
isVisible() const
Returns whether highlights will be rendered or not.

void
setColor(const SbColor &c)
SbColor &
getColor()
Set and get 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.

void
setLinePattern(unsigned short pattern)
unsigned short
getLinePattern()
Set and get 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.

void
setLineWidth(float width)
float
getLineWidth()
Set and get 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.

EXAMPLE
Here is an example of how a box highlight can be specified for a particular selection node and render area.

    SoXtRenderArea *myRenderArea;
    SoSelection *mySelection;
    // Set the highlight render action
    myRenderArea->setGLRenderAction(
        new SoBoxHighlightRenderAction());
    // Automatic redraw on selection changes
    myRenderArea->redrawOnSelectionChange(mySelection);

SEE ALSO
SoLineHighlightRenderAction, SoGLRenderAction, SoSelection, SoXtRenderArea, SoDrawStyle, SoInteraction