OpenVDB: BBox< Vec3T > Class Template Reference

OpenVDB 9.0.0

Public Types | Public Member Functions | List of all members
BBox< Vec3T > Class Template Reference

Axis-aligned bounding box. More...

`#include <openvdb/math/BBox.h>`

## Public Types
using | Vec3Type = Vec3T
using | ValueType = Vec3T
using | VectorType = Vec3T
using | ElementType = typename Vec3Type::ValueType

## Public Member Functions
| BBox ()
| The default constructor creates an invalid bounding box. More...
| BBox (const Vec3T &xyzMin, const Vec3T &xyzMax)
| Construct a bounding box that exactly encloses the given minimum and maximum points. More...
| BBox (const Vec3T &xyzMin, const Vec3T &xyzMax, bool sorted)
| Construct a bounding box that exactly encloses the given minimum and maximum points. More...
| BBox (const Vec3T &xyzMin, const ElementType &length)
| Contruct a cubical bounding box from a minimum coordinate and an edge length. More...
| BBox (const ElementType *xyz, bool sorted=true)
| Construct a bounding box that exactly encloses two points, whose coordinates are given by an array of six values, x1, y1, z1, x2, y2 and z2. More...
| BBox (const BBox &)=default
BBox & | operator= (const BBox &)=default
void | sort ()
| Sort the mininum and maximum points of this bounding box by their x, y and z components. More...
const Vec3T & | min () const
| Return a const reference to the minimum point of this bounding box. More...
const Vec3T & | max () const
| Return a const reference to the maximum point of this bounding box. More...
Vec3T & | min ()
| Return a non-const reference to the minimum point of this bounding box. More...
Vec3T & | max ()
| Return a non-const reference to the maximum point of this bounding box. More...
bool | operator== (const BBox &rhs) const
| Return `true` if this bounding box is identical to the given bounding box. More...
bool | operator!= (const BBox &rhs) const
| Return `true` if this bounding box differs from the given bounding box. More...
bool | empty () const
| Return `true` if this bounding box is empty, i.e., it has no (positive) volume. More...
bool | hasVolume () const
| Return `true` if this bounding box has (positive) volume. More...
| operator bool () const
| Return `true` if this bounding box has (positive) volume. More...
bool | isSorted () const
| Return `true` if all components of the minimum point are less than or equal to the corresponding components of the maximum point. More...
Vec3d | getCenter () const
| Return the center point of this bounding box. More...
Vec3T | extents () const
| Return the extents of this bounding box, i.e., the length along each axis. More...
size_t | maxExtent () const
| Return the index (0, 1 or 2) of the longest axis. More...
size_t | minExtent () const
| Return the index (0, 1 or 2) of the shortest axis. More...
ElementType | volume () const
| Return the volume enclosed by this bounding box. More...
bool | isInside (const Vec3T &xyz) const
| Return `true` if the given point is inside this bounding box. More...
bool | isInside (const BBox &) const
| Return `true` if the given bounding box is inside this bounding box. More...
bool | hasOverlap (const BBox &) const
| Return `true` if the given bounding box overlaps with this bounding box. More...
bool | intersects (const BBox &other) const
| Return `true` if the given bounding box overlaps with this bounding box. More...
void | expand (ElementType padding)
| Pad this bounding box. More...
void | expand (const Vec3T &xyz)
| Expand this bounding box to enclose the given point. More...
void | expand (const BBox &)
| Union this bounding box with the given bounding box. More...
void | expand (const Vec3T &xyzMin, const ElementType &length)
| Union this bounding box with the cubical bounding box with minimum point xyzMin and the given edge length. More...
void | translate (const Vec3T &t)
| Translate this bounding box by (tx, ty, tz). More...
template<typename MapType >
BBox | applyMap (const MapType &map) const
| Apply a map to this bounding box. More...
template<typename MapType >
BBox | applyInverseMap (const MapType &map) const
| Apply the inverse of a map to this bounding box. More...
void | read (std::istream &is)
| Unserialize this bounding box from the given stream. More...
void | write (std::ostream &os) const
| Serialize this bounding box to the given stream. More...
template<typename MapType >
BBox< Vec3T > | applyMap (const MapType &map) const
template<typename MapType >
BBox< Vec3T > | applyInverseMap (const MapType &map) const

## Detailed Description

template<typename Vec3T>
class openvdb::v9_0::math::BBox< Vec3T >

Axis-aligned bounding box.

## Member Typedef Documentation

## ◆ ElementType

using ElementType = typename Vec3Type::ValueType

## ◆ ValueType

using ValueType = Vec3T

## ◆ Vec3Type

using Vec3Type = Vec3T

## ◆ VectorType

using VectorType = Vec3T

## Constructor & Destructor Documentation

## ◆ BBox() [1/6]

BBox
| inline

The default constructor creates an invalid bounding box.

## ◆ BBox() [2/6]

BBox | ( | const Vec3T & | xyzMin,
|  | const Vec3T & | xyzMax
| ) |  |
| inline

Construct a bounding box that exactly encloses the given minimum and maximum points.

## ◆ BBox() [3/6]

BBox | ( | const Vec3T & | xyzMin,
|  | const Vec3T & | xyzMax,
|  | bool | sorted
| ) |  |
| inline

Construct a bounding box that exactly encloses the given minimum and maximum points.

If sorted is false, sort the points by their x, y and z components.

## ◆ BBox() [4/6]

BBox | ( | const Vec3T & | xyzMin,
|  | const ElementType & | length
| ) |  |
| inline

Contruct a cubical bounding box from a minimum coordinate and an edge length.

Note
  Inclusive for integral ElementTypes

## ◆ BBox() [5/6]

BBox | ( | const ElementType * | xyz,
|  | bool | sorted = `true`
| ) |  |
| inlineexplicit

Construct a bounding box that exactly encloses two points, whose coordinates are given by an array of six values, x1, y1, z1, x2, y2 and z2.

If sorted is false, sort the points by their x, y and z components.

## ◆ BBox() [6/6]

BBox | ( | const BBox< Vec3T > & |  | ) |
| default

## Member Function Documentation

## ◆ applyInverseMap() [1/2]

BBox applyInverseMap | ( | const MapType & | map | ) | const

Apply the inverse of a map to this bounding box.

## ◆ applyInverseMap() [2/2]

BBox< Vec3T > applyInverseMap | ( | const MapType & | map | ) | const
| inline

## ◆ applyMap() [1/2]

BBox applyMap | ( | const MapType & | map | ) | const

Apply a map to this bounding box.

## ◆ applyMap() [2/2]

BBox< Vec3T > applyMap | ( | const MapType & | map | ) | const
| inline

## ◆ empty()

bool empty
| inline

Return `true` if this bounding box is empty, i.e., it has no (positive) volume.

## ◆ expand() [1/4]

void expand | ( | const BBox< Vec3T > & | b | ) |
| inline

Union this bounding box with the given bounding box.

## ◆ expand() [2/4]

void expand | ( | const Vec3T & | xyz | ) |
| inline

Expand this bounding box to enclose the given point.

## ◆ expand() [3/4]

void expand | ( | const Vec3T & | xyzMin,
|  | const ElementType & | length
| ) |  |
| inline

Union this bounding box with the cubical bounding box with minimum point xyzMin and the given edge length.

Note
  Inclusive for integral ElementTypes

## ◆ expand() [4/4]

void expand | ( | ElementType | padding | ) |
| inline

Pad this bounding box.

## ◆ extents()

Vec3T extents
| inline

Return the extents of this bounding box, i.e., the length along each axis.

Note
  Inclusive for integral ElementTypes

## ◆ getCenter()

Vec3d getCenter
| inline

Return the center point of this bounding box.

## ◆ hasOverlap()

bool hasOverlap | ( | const BBox< Vec3T > & | b | ) | const
| inline

Return `true` if the given bounding box overlaps with this bounding box.

## ◆ hasVolume()

bool hasVolume | ( |  | ) | const
| inline

Return `true` if this bounding box has (positive) volume.

## ◆ intersects()

bool intersects | ( | const BBox< Vec3T > & | other | ) | const
| inline

Return `true` if the given bounding box overlaps with this bounding box.

## ◆ isInside() [1/2]

bool isInside | ( | const BBox< Vec3T > & | b | ) | const
| inline

Return `true` if the given bounding box is inside this bounding box.

## ◆ isInside() [2/2]

bool isInside | ( | const Vec3T & | xyz | ) | const
| inline

Return `true` if the given point is inside this bounding box.

## ◆ isSorted()

bool isSorted
| inline

Return `true` if all components of the minimum point are less than or equal to the corresponding components of the maximum point.

This is equivalent to testing whether this bounding box has nonnegative volume.

Note
  For floating-point ElementTypes a tolerance is used for this test.

## ◆ max() [1/2]

Vec3T & max | ( |  | ) |
| inline

Return a non-const reference to the maximum point of this bounding box.

## ◆ max() [2/2]

const Vec3T & max | ( |  | ) | const
| inline

Return a const reference to the maximum point of this bounding box.

## ◆ maxExtent()

size_t maxExtent | ( |  | ) | const
| inline

Return the index (0, 1 or 2) of the longest axis.

## ◆ min() [1/2]

Vec3T & min | ( |  | ) |
| inline

Return a non-const reference to the minimum point of this bounding box.

## ◆ min() [2/2]

const Vec3T & min | ( |  | ) | const
| inline

Return a const reference to the minimum point of this bounding box.

## ◆ minExtent()

size_t minExtent | ( |  | ) | const
| inline

Return the index (0, 1 or 2) of the shortest axis.

## ◆ operator bool()

operator bool | ( |  | ) | const
| inline

Return `true` if this bounding box has (positive) volume.

## ◆ operator!=()

bool operator!= | ( | const BBox< Vec3T > & | rhs | ) | const
| inline

Return `true` if this bounding box differs from the given bounding box.

## ◆ operator=()

BBox & operator= | ( | const BBox< Vec3T > & |  | ) |
| default

## ◆ operator==()

bool operator== | ( | const BBox< Vec3T > & | rhs | ) | const
| inline

Return `true` if this bounding box is identical to the given bounding box.

## ◆ read()

void read | ( | std::istream & | is | ) |
| inline

Unserialize this bounding box from the given stream.

## ◆ sort()

void sort
| inline

Sort the mininum and maximum points of this bounding box by their x, y and z components.

## ◆ translate()

void translate | ( | const Vec3T & | t | ) |
| inline

Translate this bounding box by (tx, ty, tz).

## ◆ volume()

ElementType volume | ( |  | ) | const
| inline

Return the volume enclosed by this bounding box.

## ◆ write()

void write | ( | std::ostream & | os | ) | const
| inline

Serialize this bounding box to the given stream.