Rosetta
Public Types | Public Member Functions | Private Attributes | List of all members
numeric::geometry::BoundingBox< T > Class Template Reference

3d axis aligned bounding box class More...

#include <BoundingBox.hh>

Public Types

typedef T PointPosition
 3d point position More...
 

Public Member Functions

 BoundingBox ()=default
 default constructor More...
 
 BoundingBox (PointPosition const &pp)
 point constructor More...
 
 BoundingBox (PointPosition const &lower, PointPosition const &upper)
 corner constructor More...
 
 BoundingBox (BoundingBox const &bb)
 copy constructor More...
 
 ~BoundingBox ()=default
 default destructor More...
 
BoundingBoxoperator= (BoundingBox const &bb)
 copy assignment More...
 
void add (PointPosition const &pp)
 add a point, expands bounds if necessary More...
 
PointPosition const & lower () const
 get lower corner More...
 
PointPosition const & upper () const
 get upper corner More...
 
void set_lower (PointPosition const &p)
 set lower corner More...
 
void set_upper (PointPosition const &p)
 set upper corner More...
 
void reset (PointPosition const &p=PointPosition())
 reset corners More...
 
template<typename U >
void expand (U const &scalar)
 expand box corners (additive) More...
 
template<typename U >
void contract (U const &scalar)
 
void translate (PointPosition const &t)
 translate bounding box More...
 
bool intersects (BoundingBox const &bb) const
 intersects another bounding box? More...
 
template<typename U >
bool contains (U const &x, U const &y, U const &z) const
 is point contained within this bounding box? More...
 
bool contains (PointPosition const &p) const
 is point contained within this bounding box? More...
 

Private Attributes

PointPosition lower_
 
PointPosition upper_
 

Detailed Description

template<typename T>
class numeric::geometry::BoundingBox< T >

3d axis aligned bounding box class

template type must be 3d and have .x(), .y(), .z() accessors

Member Typedef Documentation

◆ PointPosition

template<typename T >
typedef T numeric::geometry::BoundingBox< T >::PointPosition

3d point position

Constructor & Destructor Documentation

◆ BoundingBox() [1/4]

template<typename T >
numeric::geometry::BoundingBox< T >::BoundingBox ( )
inlinedefault

default constructor

Warning
no initialization of corners for speed, make sure you reset()
or otherwise set corners before adding points

◆ BoundingBox() [2/4]

template<typename T >
numeric::geometry::BoundingBox< T >::BoundingBox ( PointPosition const &  pp)
inline

point constructor

◆ BoundingBox() [3/4]

template<typename T >
numeric::geometry::BoundingBox< T >::BoundingBox ( PointPosition const &  lower,
PointPosition const &  upper 
)
inline

corner constructor

◆ BoundingBox() [4/4]

template<typename T >
numeric::geometry::BoundingBox< T >::BoundingBox ( BoundingBox< T > const &  bb)
inline

copy constructor

◆ ~BoundingBox()

template<typename T >
numeric::geometry::BoundingBox< T >::~BoundingBox ( )
inlinedefault

default destructor

Member Function Documentation

◆ add()

template<typename T >
void numeric::geometry::BoundingBox< T >::add ( PointPosition const &  pp)
inline

◆ contains() [1/2]

template<typename T >
bool numeric::geometry::BoundingBox< T >::contains ( PointPosition const &  p) const
inline

◆ contains() [2/2]

template<typename T >
template<typename U >
bool numeric::geometry::BoundingBox< T >::contains ( U const &  x,
U const &  y,
U const &  z 
) const
inline

◆ contract()

template<typename T >
template<typename U >
void numeric::geometry::BoundingBox< T >::contract ( U const &  scalar)
inline

◆ expand()

template<typename T >
template<typename U >
void numeric::geometry::BoundingBox< T >::expand ( U const &  scalar)
inline

◆ intersects()

template<typename T >
bool numeric::geometry::BoundingBox< T >::intersects ( BoundingBox< T > const &  bb) const
inline

◆ lower()

template<typename T >
PointPosition const& numeric::geometry::BoundingBox< T >::lower ( ) const
inline

◆ operator=()

template<typename T >
BoundingBox& numeric::geometry::BoundingBox< T >::operator= ( BoundingBox< T > const &  bb)
inline

◆ reset()

template<typename T >
void numeric::geometry::BoundingBox< T >::reset ( PointPosition const &  p = PointPosition())
inline

◆ set_lower()

template<typename T >
void numeric::geometry::BoundingBox< T >::set_lower ( PointPosition const &  p)
inline

◆ set_upper()

template<typename T >
void numeric::geometry::BoundingBox< T >::set_upper ( PointPosition const &  p)
inline

◆ translate()

template<typename T >
void numeric::geometry::BoundingBox< T >::translate ( PointPosition const &  t)
inline

◆ upper()

template<typename T >
PointPosition const& numeric::geometry::BoundingBox< T >::upper ( ) const
inline

Member Data Documentation

◆ lower_

template<typename T >
PointPosition numeric::geometry::BoundingBox< T >::lower_
private

◆ upper_

template<typename T >
PointPosition numeric::geometry::BoundingBox< T >::upper_
private

The documentation for this class was generated from the following files: