OpenVDB  12.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
 
BBoxoperator= (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::v12_0::math::BBox< Vec3T >

Axis-aligned bounding box.

Member Typedef Documentation

using ElementType = typename Vec3Type::ValueType
using ValueType = Vec3T
using Vec3Type = Vec3T
using VectorType = Vec3T

Constructor & Destructor Documentation

BBox ( )
inline

The default constructor creates an invalid bounding box.

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

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

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 ( 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 ( 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 ( const BBox< Vec3T > &  )
default

Member Function Documentation

BBox applyInverseMap ( const MapType &  map) const

Apply the inverse of a map to this bounding box.

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

Apply a map to this bounding box.

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

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

void expand ( ElementType  padding)
inline

Pad this bounding box.

void expand ( const Vec3T &  xyz)
inline

Expand this bounding box to enclose the given point.

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

Union this bounding box with the given bounding box.

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
Vec3T extents ( ) const
inline

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

Note
Inclusive for integral ElementTypes
Vec3d getCenter ( ) const
inline

Return the center point of this bounding box.

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

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

bool hasVolume ( ) const
inline

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

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

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

bool isInside ( const Vec3T &  xyz) const
inline

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

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

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

bool isSorted ( ) const
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.
const Vec3T& max ( ) const
inline

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

Vec3T& max ( )
inline

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

size_t maxExtent ( ) const
inline

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

const Vec3T& min ( ) const
inline

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

Vec3T& min ( )
inline

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

size_t minExtent ( ) const
inline

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

operator bool ( ) const
inline

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

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

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

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

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

void read ( std::istream &  is)
inline

Unserialize this bounding box from the given stream.

void sort ( )
inline

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

void translate ( const Vec3T &  t)
inline

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

ElementType volume ( ) const
inline

Return the volume enclosed by this bounding box.

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

Serialize this bounding box to the given stream.