OpenWalnut  1.2.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions
WBoundingBoxImpl< VT > Class Template Reference

Represents a axis parallel bounding box and provides some useful operations with them. More...

#include <WBoundingBox.h>

+ Inheritance diagram for WBoundingBoxImpl< VT >:

List of all members.

Public Types

typedef osg::BoundingBoxImpl
< VT >::vec_type 
vec_type
 Vertex type for min and max positions of this box.
typedef osg::BoundingBoxImpl
< VT >::value_type 
value_type
 Value type of the vertex type for example double, float, etc.

Public Member Functions

 WBoundingBoxImpl ()
 Default constructor.
 WBoundingBoxImpl (value_type xmin, value_type ymin, value_type zmin, value_type xmax, value_type ymax, value_type zmax)
 Wrapps the component wise bounding box constructor from osg::BoundingBox.
 WBoundingBoxImpl (const vec_type &min, const vec_type &max)
 Constructs a bounding box by min and max positions.
virtual ~WBoundingBoxImpl ()
 Destructs this instance.
void reset ()
 Resets this box to an initial state where max is FLT_MIN and min FLT_MAX.
value_type radiusSquare () const
 Calculates and returns the squared length of the bounding box radius.
osg::BoundingBox toOSGBB () const
 Explicit type conversion function to use a WBoundingBox as osg::BoundingBox.
void expandBy (const WBoundingBoxImpl< VT > &bb)
 Expands this bounding box to include the given bounding box.
bool intersects (const WBoundingBoxImpl< VT > &bb) const
 Checks for intersection of this bounding box with the specified bounding box.
value_type minDistance (const WBoundingBoxImpl< VT > &bb) const
 Computes the minimal distance of tow axis parallel bounding boxes.
const vec_typegetMin () const
 Gives the front lower left aka minimum corner.
const vec_typegetMax () const
 Gives the back upper right aka maximum corner.

Detailed Description

template<class VT>
class WBoundingBoxImpl< VT >

Represents a axis parallel bounding box and provides some useful operations with them.

Notes:
Reason for subclassing: We don't want _min and _max member variables to be public.
Notes:
Reason for not having a private osg::BoundingBox member is, we don't have to wrap many member functions and can make use of the using directive. A downside on this is, we cannot automatical cast to osg::BoundingBox even if we provide a cast operator! Hence when we need this we will provide a toOsgBB() member function.

Definition at line 45 of file WBoundingBox.h.


Member Typedef Documentation

template<class VT>
typedef osg::BoundingBoxImpl< VT >::value_type WBoundingBoxImpl< VT >::value_type

Value type of the vertex type for example double, float, etc.

Definition at line 56 of file WBoundingBox.h.

template<class VT>
typedef osg::BoundingBoxImpl< VT >::vec_type WBoundingBoxImpl< VT >::vec_type

Vertex type for min and max positions of this box.

Definition at line 51 of file WBoundingBox.h.


Constructor & Destructor Documentation

template<class VT >
WBoundingBoxImpl< VT >::WBoundingBoxImpl ( )
inline

Default constructor.

Definition at line 172 of file WBoundingBox.h.

template<class VT >
WBoundingBoxImpl< VT >::WBoundingBoxImpl ( value_type  xmin,
value_type  ymin,
value_type  zmin,
value_type  xmax,
value_type  ymax,
value_type  zmax 
)
inline

Wrapps the component wise bounding box constructor from osg::BoundingBox.

Parameters:
xminMinimal x coordinate
yminMinimal y coordinate
zminMinimal z coordinate
xmaxMaximal x coordinate
ymaxMaximal y coordinate
zmaxMaximal z coordinate

Definition at line 178 of file WBoundingBox.h.

template<class VT >
WBoundingBoxImpl< VT >::WBoundingBoxImpl ( const vec_type min,
const vec_type max 
)
inline

Constructs a bounding box by min and max positions.

Parameters:
minPosition containing minx miny and minz coordinates.
maxPosition containing maxx maxy and maxz coordinates.

Definition at line 184 of file WBoundingBox.h.

template<class VT >
WBoundingBoxImpl< VT >::~WBoundingBoxImpl ( )
inlinevirtual

Destructs this instance.

Definition at line 190 of file WBoundingBox.h.


Member Function Documentation

template<class VT>
void WBoundingBoxImpl< VT >::expandBy ( const WBoundingBoxImpl< VT > &  bb)
inline

Expands this bounding box to include the given bounding box.

Parameters:
bbThe other bounding box.

Definition at line 213 of file WBoundingBox.h.

Referenced by WGridRegular3D::getBoundingBox(), WFiberCluster::getBoundingBox(), WBoundingBoxTest::testBoundingBoxComputation(), WBoundingBoxTest::testForwardingFunctions(), and WDataSetFibers::WDataSetFibers().

template<class VT >
const WBoundingBoxImpl< VT >::vec_type & WBoundingBoxImpl< VT >::getMax ( ) const
inline

Gives the back upper right aka maximum corner.

Returns:
Maximum corner.

Definition at line 296 of file WBoundingBox.h.

Referenced by wge::generateBoundingBoxGeode(), and wge::generateSolidBoundingBoxNode().

template<class VT >
const WBoundingBoxImpl< VT >::vec_type & WBoundingBoxImpl< VT >::getMin ( ) const
inline

Gives the front lower left aka minimum corner.

Returns:
Minimum corner.

Definition at line 290 of file WBoundingBox.h.

Referenced by wge::generateBoundingBoxGeode(), and wge::generateSolidBoundingBoxNode().

template<class VT>
bool WBoundingBoxImpl< VT >::intersects ( const WBoundingBoxImpl< VT > &  bb) const
inline

Checks for intersection of this bounding box with the specified bounding box.

Parameters:
bbThe other bouding box to tetst with.
Returns:
True if they intersect, false otherwise.

Definition at line 219 of file WBoundingBox.h.

Referenced by WBoundingBoxTest::testForwardingFunctions().

template<class VT>
WBoundingBoxImpl< VT >::value_type WBoundingBoxImpl< VT >::minDistance ( const WBoundingBoxImpl< VT > &  bb) const
inline

Computes the minimal distance of tow axis parallel bounding boxes.

Parameters:
bbThe other bounding box.
Returns:
Zero if they intersect, otherwise their minimal distance.

Definition at line 254 of file WBoundingBox.h.

Referenced by WBoundingBoxTest::testCommutativeIntervalDistance(), and WBoundingBoxTest::testMinimalDistanceBetweenTwoBB().

template<class VT >
WBoundingBoxImpl< VT >::value_type WBoundingBoxImpl< VT >::radiusSquare ( ) const
inline

Calculates and returns the squared length of the bounding box radius.

Notes:
This is a wrapper call to osg::BoundingBoxImpl< VT >::radius2()
Returns:
squared bbox radius

Definition at line 201 of file WBoundingBox.h.

template<class VT >
void WBoundingBoxImpl< VT >::reset ( )
inline

Resets this box to an initial state where max is FLT_MIN and min FLT_MAX.

Notes:
This is a wrapper call to osg::BoundingBoxImpl< VT >::init()

Definition at line 195 of file WBoundingBox.h.

Referenced by WBoundingBoxTest::testForwardingFunctions().

template<class VT >
osg::BoundingBox WBoundingBoxImpl< VT >::toOSGBB ( ) const
inline

Explicit type conversion function to use a WBoundingBox as osg::BoundingBox.

Returns:
A copy of this bounding box as osg::BoundingBox.

Definition at line 207 of file WBoundingBox.h.


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