text: Computes bounding box of a scene. More...
  #include <Inventor/actions/SoGetBoundingBoxAction.h>
  Computes bounding box of a scene.
  This class is used to compute a 3D bounding box enclosing objects defined an SbXfBox3f, where the transformation, specify the left edge of the subgraph with setResetPath(), and apply the action to the path that defines the right edge of the subgraph. The accumulated bounding box and transformation will be reset when the tail of the reset path is traversed.
  If the subgraph being traversed does not contain any shapes, the returned bounding box will be empty (that is, SbBox3f::isEmpty() will return TRUE).
  The SoBBox node can be used to specify the bounding box for a shape or portion of the scene graph. This is useful, for example, to avoid the cost of computing the bounding box of a large (or frequently changing) geometry. The SoBBox node can also be used to specify that a shape or portion of the scene graph should not be included in the bounding box calculation. This is useful, for example, to avoid considering screen aligned "annotation" graphics like legends.
  Bounding boxes are used internally by Open Inventor to optimize rendering, picking, culling and other operations. For example, the standard viewer classes apply an SoGetBoundingBoxAction to the scene graph when automatic adjustment of the near and far clipping planes is enabled (which is the default).
  Bounding boxes are cached by some grouping nodes, primarily SoSeparator. When this action is applied to a scene graph, it will use the cached bounding box whenever possible. So querying the bounding box of a (relatively) static scene graph is normally very fast. Open Inventor automatically detects when bounding caches become invalid and they are re-computed the next time an SoGetBoundingBoxAction is applied.
  NOTES:
  Sets: SoViewportRegionElement
  // Get bounding box using current viewport on screen SoGetBoundingBoxAction gba( viewer->getViewportRegion() ); gba.apply( root ); SbBox3f bbox = gba.getBoundingBox();
  SbBox3f, SbXfBox3f, SoGetMatrixAction, SoBBox
  Set a path to do a resetTransform/resetBoundingBox on.
  The default is to do the reset right before the given path.
  Constructor.
  Even though the bounding box computation may not involve a window per se, some nodes need the size of the viewport to determine their size in 3D coordinates. For example the size of an SoText2 is a fixed value in device coordinates, but the corresponding size in 3D depends on the current camera.
  Usually it is convenient to get the actual viewport region from the viewer as shown in the example above. However if the scene graph does not contain any viewport dependent nodes then any values can be used.
  Returns computed bounding box in world space.
  Returns computed center point in world space.
  Returns the type identifier for this class.
  Reimplemented from SoAction.
  Reimplemented in ScGetBoundingBoxAction.
  Returns the current reset path, or NULL.
  Returns the type identifier for this specific instance.
  Implements SoTypedObject.
  Reimplemented in ScGetBoundingBoxAction.
  Returns current viewport region to use for action.
  Returns what flags were specified to be reset for the reset path.
  Returns computed bounding box before transformation into world space.
  Returns camera space flag.
  Returns TRUE if the resetBefore flag was specified for the reset path.
  Returns TRUE if the current reset path is not NULL.
  Set this flag to TRUE if you want the returned bounding box to be in the space of whatever camera is in the graph.
  Camera space is defined to have the viewpoint at the origin, with the direction of view along the negative z axis. This space can be used to determine distances of objects from the camera.
  If a non-NULL path is specified, the action will reset the computed bounding box to be empty and/or the current transformation to identity.
  The resetBefore flag indicates whether to perform the reset before or after the tail node of the path is traversed.
  Sets current viewport region to use for action.