OpenWalnut
1.4.0
|
Represents a axis parallel bounding box and provides some useful operations with them. More...
#include <WBoundingBox.h>
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. | |
WBoundingBoxImpl (const WBoundingBoxImpl &bb) | |
Copy construct using a given bounding box. | |
WBoundingBoxImpl (const osg::BoundingSphereImpl< VT > &bs) | |
Create BoundinmgBox using a given sphere. | |
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_type & | getMin () const |
Gives the front lower left aka minimum corner. | |
const vec_type & | getMax () const |
Gives the back upper right aka maximum corner. | |
Private Member Functions | |
double | intervalDistance (double a0, double a1, double b0, double b1) const |
Checks if the two given intervals intersect and computes the distance between them. |
Represents a axis parallel bounding box and provides some useful operations with them.
_min
and _max
member variables to be public. Definition at line 47 of file WBoundingBox.h.
typedef osg::BoundingBoxImpl< VT >::value_type WBoundingBoxImpl< VT >::value_type |
Value type of the vertex type for example double, float, etc.
Definition at line 58 of file WBoundingBox.h.
typedef osg::BoundingBoxImpl< VT >::vec_type WBoundingBoxImpl< VT >::vec_type |
Vertex type for min and max positions of this box.
Definition at line 53 of file WBoundingBox.h.
WBoundingBoxImpl< VT >::WBoundingBoxImpl | ( | ) | [inline] |
Default constructor.
Definition at line 199 of file WBoundingBox.h.
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.
xmin | Minimal x coordinate |
ymin | Minimal y coordinate |
zmin | Minimal z coordinate |
xmax | Maximal x coordinate |
ymax | Maximal y coordinate |
zmax | Maximal z coordinate |
Definition at line 205 of file WBoundingBox.h.
WBoundingBoxImpl< VT >::WBoundingBoxImpl | ( | const vec_type & | min, |
const vec_type & | max | ||
) | [inline] |
Constructs a bounding box by min and max positions.
min | Position containing minx miny and minz coordinates. |
max | Position containing maxx maxy and maxz coordinates. |
Definition at line 211 of file WBoundingBox.h.
WBoundingBoxImpl< VT >::WBoundingBoxImpl | ( | const WBoundingBoxImpl< VT > & | bb | ) | [inline] |
Copy construct using a given bounding box.
bb | the source bb |
Definition at line 224 of file WBoundingBox.h.
WBoundingBoxImpl< VT >::WBoundingBoxImpl | ( | const osg::BoundingSphereImpl< VT > & | bs | ) | [inline, explicit] |
Create BoundinmgBox using a given sphere.
bs | the sphere |
Definition at line 217 of file WBoundingBox.h.
WBoundingBoxImpl< VT >::~WBoundingBoxImpl | ( | ) | [inline, virtual] |
Destructs this instance.
Definition at line 230 of file WBoundingBox.h.
void WBoundingBoxImpl< VT >::expandBy | ( | const WBoundingBoxImpl< VT > & | bb | ) | [inline] |
Expands this bounding box to include the given bounding box.
bb | The other bounding box. |
Definition at line 253 of file WBoundingBox.h.
Referenced by WGridRegular3DTemplate< T >::getBoundingBox(), WFiberCluster::getBoundingBox(), WGridRegular3DTemplate< T >::getBoundingBoxIncludingBorder(), WGridRegular3DTemplate< T >::getVoxelBoundingBox(), WBoundingBoxTest::testBoundingBoxComputation(), WBoundingBoxTest::testForwardingFunctions(), and WDataSetFibers::WDataSetFibers().
const WBoundingBoxImpl< VT >::vec_type & WBoundingBoxImpl< VT >::getMax | ( | ) | const [inline] |
Gives the back upper right aka maximum corner.
Definition at line 321 of file WBoundingBox.h.
Referenced by wge::generateBoundingBoxGeode(), and wge::generateSolidBoundingBoxNode().
const WBoundingBoxImpl< VT >::vec_type & WBoundingBoxImpl< VT >::getMin | ( | ) | const [inline] |
Gives the front lower left aka minimum corner.
Definition at line 315 of file WBoundingBox.h.
Referenced by wge::generateBoundingBoxGeode(), and wge::generateSolidBoundingBoxNode().
bool WBoundingBoxImpl< VT >::intersects | ( | const WBoundingBoxImpl< VT > & | bb | ) | const [inline] |
Checks for intersection of this bounding box with the specified bounding box.
bb | The other bouding box to tetst with. |
Definition at line 259 of file WBoundingBox.h.
Referenced by WBoundingBoxTest::testForwardingFunctions().
double WBoundingBoxImpl< VT >::intervalDistance | ( | double | a0, |
double | a1, | ||
double | b0, | ||
double | b1 | ||
) | const [inline, private] |
Checks if the two given intervals intersect and computes the distance between them.
a0 | lower bound of the first interval |
a1 | upper bound of the first interval |
b0 | lower bound of the second interval |
b1 | upper bound if the second interval |
Definition at line 265 of file WBoundingBox.h.
WBoundingBoxImpl< VT >::value_type WBoundingBoxImpl< VT >::minDistance | ( | const WBoundingBoxImpl< VT > & | bb | ) | const [inline] |
Computes the minimal distance of tow axis parallel bounding boxes.
bb | The other bounding box. |
Definition at line 279 of file WBoundingBox.h.
Referenced by WBoundingBoxTest::testCommutativeIntervalDistance(), and WBoundingBoxTest::testMinimalDistanceBetweenTwoBB().
WBoundingBoxImpl< VT >::value_type WBoundingBoxImpl< VT >::radiusSquare | ( | ) | const [inline] |
Calculates and returns the squared length of the bounding box radius.
Definition at line 241 of file WBoundingBox.h.
void WBoundingBoxImpl< VT >::reset | ( | ) | [inline] |
Resets this box to an initial state where max is FLT_MIN and min FLT_MAX.
Definition at line 235 of file WBoundingBox.h.
Referenced by WBoundingBoxTest::testForwardingFunctions().
osg::BoundingBox WBoundingBoxImpl< VT >::toOSGBB | ( | ) | const [inline] |
Explicit type conversion function to use a WBoundingBox as osg::BoundingBox.
Definition at line 247 of file WBoundingBox.h.