OpenVDB 11.0.0
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
BBox< CoordT, false > Struct Template Reference

Partial template specialization for integer coordinate types. More...

#include <nanovdb/NanoVDB.h>

Inheritance diagram for BBox< CoordT, false >:
BaseBBox< CoordT >

Classes

class  Iterator
 Iterator over the domain covered by a BBox. More...
 

Public Types

using BaseT = BaseBBox<CoordT>
 

Public Member Functions

Iterator begin () const
 
Iterator end () const
 
 BBox ()
 
 BBox (const CoordT &min, const CoordT &max)
 
template<typename SplitT >
 BBox (BBox &other, const SplitT &)
 
bool is_divisible () const
 
bool empty () const
 Return true if this bounding box is empty, e.g. uninitialized.
 
 operator bool () const
 Convert this BBox to boolean true if it is not empty.
 
CoordT dim () const
 
uint64_t volume () const
 
bool isInside (const CoordT &p) const
 
bool isInside (const BBox &b) const
 Return true if the given bounding box is inside this bounding box.
 
bool hasOverlap (const BBox &b) const
 Return true if the given bounding box overlaps with this bounding box.
 
template<typename RealT = double>
BBox< Vec3< RealT > > asReal () const
 
BBox expandBy (typename CoordT::ValueType padding) const
 Return a new instance that is expanded by the specified padding.
 
template<typename Map >
BBox< Vec3dtransform (const Map &map) const
 transform this coordinate bounding box by the specified map
 
bool operator== (const BaseBBox &rhs) const
 
bool operator!= (const BaseBBox &rhs) const
 
const CoordT & operator[] (int i) const
 
CoordT & operator[] (int i)
 
CoordT & min ()
 
const CoordT & min () const
 
CoordT & max ()
 
const CoordT & max () const
 
BaseBBoxtranslate (const CoordT &xyz)
 
BaseBBoxexpand (const CoordT &xyz)
 Expand this bounding box to enclose point xyz.
 
BaseBBoxexpand (const BaseBBox &bbox)
 Expand this bounding box to enclose the given bounding box.
 
BaseBBoxintersect (const BaseBBox &bbox)
 Intersect this bounding box with the given bounding box.
 
bool isInside (const CoordT &xyz)
 

Static Public Member Functions

static BBox createCube (const CoordT &min, typename CoordT::ValueType dim)
 
static BBox createCube (typename CoordT::ValueType min, typename CoordT::ValueType max)
 

Public Attributes

CoordT mCoord [2]
 

Detailed Description

template<typename CoordT>
struct nanovdb::BBox< CoordT, false >

Partial template specialization for integer coordinate types.

Note
Both min and max are INCLUDED in the bbox so dim = max - min + 1. So, if min = max the bounding box contains exactly one point and dim = 1!

Member Typedef Documentation

◆ BaseT

template<typename CoordT >
using BaseT = BaseBBox<CoordT>

Constructor & Destructor Documentation

◆ BBox() [1/3]

template<typename CoordT >
BBox ( )
inline

◆ BBox() [2/3]

template<typename CoordT >
BBox ( const CoordT & min,
const CoordT & max )
inline

◆ BBox() [3/3]

template<typename CoordT >
template<typename SplitT >
BBox ( BBox< CoordT, false > & other,
const SplitT &  )
inline

Member Function Documentation

◆ asReal()

template<typename CoordT >
template<typename RealT = double>
BBox< Vec3< RealT > > asReal ( ) const
inline
Warning
This converts a CoordBBox into a floating-point bounding box which implies that max += 1 !

◆ begin()

template<typename CoordT >
Iterator begin ( ) const
inline

◆ createCube() [1/2]

template<typename CoordT >
static BBox createCube ( const CoordT & min,
typename CoordT::ValueType dim )
inlinestatic

◆ createCube() [2/2]

template<typename CoordT >
static BBox createCube ( typename CoordT::ValueType min,
typename CoordT::ValueType max )
inlinestatic

◆ dim()

template<typename CoordT >
CoordT dim ( ) const
inline

◆ empty()

template<typename CoordT >
bool empty ( ) const
inline

Return true if this bounding box is empty, e.g. uninitialized.

◆ end()

template<typename CoordT >
Iterator end ( ) const
inline

◆ expand() [1/2]

BaseBBox & expand ( const BaseBBox< CoordT > & bbox)
inlineinherited

Expand this bounding box to enclose the given bounding box.

◆ expand() [2/2]

BaseBBox & expand ( const CoordT & xyz)
inlineinherited

Expand this bounding box to enclose point xyz.

◆ expandBy()

template<typename CoordT >
BBox expandBy ( typename CoordT::ValueType padding) const
inline

Return a new instance that is expanded by the specified padding.

◆ hasOverlap()

template<typename CoordT >
bool hasOverlap ( const BBox< CoordT, false > & b) const
inline

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

◆ intersect()

BaseBBox & intersect ( const BaseBBox< CoordT > & bbox)
inlineinherited

Intersect this bounding box with the given bounding box.

◆ is_divisible()

template<typename CoordT >
bool is_divisible ( ) const
inline

◆ isInside() [1/3]

template<typename CoordT >
bool isInside ( const BBox< CoordT, false > & b) const
inline

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

◆ isInside() [2/3]

template<typename CoordT >
bool isInside ( const CoordT & p) const
inline

◆ isInside() [3/3]

bool isInside ( const CoordT & xyz)
inlineinherited

◆ max() [1/2]

CoordT & max ( )
inlineinherited

◆ max() [2/2]

const CoordT & max ( ) const
inlineinherited

◆ min() [1/2]

CoordT & min ( )
inlineinherited

◆ min() [2/2]

const CoordT & min ( ) const
inlineinherited

◆ operator bool()

template<typename CoordT >
operator bool ( ) const
inline

Convert this BBox to boolean true if it is not empty.

◆ operator!=()

bool operator!= ( const BaseBBox< CoordT > & rhs) const
inlineinherited

◆ operator==()

bool operator== ( const BaseBBox< CoordT > & rhs) const
inlineinherited

◆ operator[]() [1/2]

CoordT & operator[] ( int i)
inlineinherited

◆ operator[]() [2/2]

const CoordT & operator[] ( int i) const
inlineinherited

◆ transform()

template<typename CoordT >
template<typename Map >
BBox< Vec3d > transform ( const Map & map) const
inline

transform this coordinate bounding box by the specified map

Parameters
mapmapping of index to world coordinates
Returns
world bounding box

◆ translate()

BaseBBox & translate ( const CoordT & xyz)
inlineinherited

◆ volume()

template<typename CoordT >
uint64_t volume ( ) const
inline

Member Data Documentation

◆ mCoord

CoordT mCoord[2]
inherited