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

# SoComputeBoundingBox(3iv)

computes the bounding box and center of a scene graph

## NAME

SoComputeBoundingBox — computes the bounding box and center of a scene graph

## INHERITS FROM

SoBase \> SoFieldContainer \> SoEngine \> SoComputeBoundingBox

## SYNOPSIS

**#include \<Inventor/engines/SoComputeBoundingBox.h\>**

Inputs from class SoComputeBoundingBox:

**SoSFNode**	**node**\
 **SoSFPath**	**path**

Outputs from class SoComputeBoundingBox:

**(SoSFVec3f)**	**min**\
 **(SoSFVec3f)**	**max**\
 **(SoSFVec3f)**	**boxCenter**\
 **(SoSFVec3f)**	**objectCenter**

Methods from class SoComputeBoundingBox:

	**SoComputeBoundingBox()**\
 **void**	**setViewportRegion(const SbViewportRegion &vpReg);**\
 **const SbViewportRegion &**	**getViewportRegion();**

Methods from class SoEngine:

**static SoType**	**getClassTypeId()**\
 **virtual int**	**getOutputs(SoEngineOutputList &list) const**\
 **SoEngineOutput \***	**getOutput(const SbName &outputName) const**\
 **SbBool**	**getOutputName(const SoEngineOutput \*output, SbName &outputName) const**\
 **SoEngine \***	**copy() const**\
 **static SoEngine \***	**getByName(const SbName &name)**\
 **static int**	**getByName(const SbName &name, SoEngineList &list)**

Methods from class SoFieldContainer:

**void**	**setToDefaults()**\
 **SbBool**	**hasDefaultValues() const**\
 **SbBool**	**fieldsAreEqual(const SoFieldContainer \*fc) const**\
 **void**	**copyFieldValues(const SoFieldContainer \*fc, SbBool copyConnections = FALSE)**\
 **SbBool**	**set(const char \*fieldDataString)**\
 **void**	**get(SbString &fieldDataString)**\
 **virtual int**	**getFields(SoFieldList &resultList) const**\
 **virtual SoField \***	**getField(const SbName &fieldName) const**\
 **SbBool**	**getFieldName(const SoField \*field, SbName &fieldName) const**\
 **SbBool**	**isNotifyEnabled() const**\
 **SbBool**	**enableNotify(SbBool flag)**

Methods from class SoBase:

**void**	**ref()**\
 **void**	**unref() const**\
 **void**	**unrefNoDelete() const**\
 **void**	**touch()**\
 **virtual SoType**	**getTypeId() const**\
 **SbBool**	**isOfType(SoType type) const**\
 **virtual void**	**setName(const SbName &name)**\
 **virtual SbName**	**getName() const**

## DESCRIPTION

**This engine computes the bounding box and center of a scene graph. The scene graph can be defined by a path or by a root node.**

**If the path** input is not NULL, the bounding box of the graph defined by the path will be computed. If **path** is NULL, but the **node** input is not NULL, the bounding box is computed on the graph rooted by the node. By default, the two inputs are NULL. If both the inputs are NULL, the outputs are disabled.

The engine uses a default viewport region. If the graph includes screen-based objects (such as **SoText2**) you can call **setViewportRegion()**  on the engine instance to set up the correct viewport region to use.

## INPUTS

**SoSFNode**	**node**\
 Defines the graph for which the bounding box is computed.

**SoSFPath**	**path**\
 Alternatively, defines the graph for which the bounding box is computed.

## OUTPUTS

**(SoSFVec3f)**	**min**\
 Minimum point of the computed bounding box.

**(SoSFVec3f)**	**max**\
 Maximum point of the computed bounding box.

**(SoSFVec3f)**	**boxCenter**\
 Center of the computed bounding box.

**(SoSFVec3f)**	**objectCenter**\
 Center of the objects in the graph.

## METHODS

	**SoComputeBoundingBox()**\
 Constructor

**void**	**setViewportRegion(const SbViewportRegion &vpReg);**\
 Sets the viewport region to use for the bounding box computation.

**const SbViewportRegion &**	**getViewportRegion();**\
 Returns the viewport region to use for the bounding box computation.

## FILE FORMAT/DEFAULTS

```
ComputeBoundingBox {
node	NULL
path	NULL
}
```

## SEE ALSO

**SoEngineOutput, SoGetBoundingBoxAction, SbBox3f**
