---
name: "SoBoxHighlightRenderAction"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SoBoxHighlightRenderAction/3iv"
---

# SoBoxHighlightRenderAction(3iv)

a selection highlight style

## 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**
