MeVisLab Toolbox Reference
ml::CSOBoundingBox Class Reference

The CSOBoundingBox defines an axis-parallel bounding box with double precision. More...

#include <CSOBoundingBox.h>

Public Member Functions

 CSOBoundingBox ()
 Constructor.
 CSOBoundingBox (CSO *cso)
 Constructor.
 CSOBoundingBox (const Vector3 &bbv1, const Vector3 &bbv2)
 Constructor.
 CSOBoundingBox (const CSOBoundingBox &bBox)
 Copy constructor.
 ~CSOBoundingBox ()
 Destructor.
CSOBoundingBoxoperator= (const CSOBoundingBox &)=default
 Default assignment operator.
bool isEmpty () const
 Returns whether this bounding box is empty.
void makeEmpty ()
 Empties this bounding box (set all values to +/- ML_FLOAT_MAX).
void correct ()
 Corrects all coordinates, so that the min values are indeed smaller than the max values.
bool intersects (const CSOBoundingBox &bBox) const
 Returns whether this bounding box intersects with the specified bounding box.
bool intersects (const Vector3 &argv1, const Vector3 &argv2) const
 Returns whether this bounding box intersects with a bounding box specified by its two vectors.
bool intersects (const Vector3 &center, double radius) const
 Returns whether this bounding box intersects a specified sphere.
void set (const Vector3 &argv1, const Vector3 &argv2)
CSOBoundingBox unify (const CSOBoundingBox &bBox) const
 Returns the union bounding box of this BB and the specified one.
CSOBoundingBox intersect (const CSOBoundingBox &bBox) const
 Returns the intersection bounding box of this BB and the specified one.
bool containsPoint (double x, double y, double z) const
 Returns whether this bounding box contains the specified point.
bool enclosesSlabWithZPosition (double z) const
 Returns whether the specified z-value is in the same slice/slab as this bounding box encloses.
bool containsBoundingBox (const CSOBoundingBox &innerBoundingBox, const double epsilon=0.0) const
 Returns whether this bounding box encloses the specified bounding box fully.
void augment (float value)
 Augments this bounding box by the specified value in all directions.
CSOBoundingBox getShifted (double dx, double dy, double dz) const
 Returns a bounding box shifted by the specified values.
void makeCubic ()
 Modifies the bounding box so it becomes cubic with all sides as long as the former longest.
double getSize () const
 Returns the volume or the area of the bounding box, or 0 if empty.
Vector3 getCenterPoint () const
 Returns the center point of the bounding box.
void print ()
 Prints the v1/v2 coordinates to the console. For debugging convenience.

Public Attributes

Vector3 v1
 The x/y/z min values.
Vector3 v2
 the x/y/z max values.

Detailed Description

The CSOBoundingBox defines an axis-parallel bounding box with double precision.

Definition at line 30 of file CSOBoundingBox.h.

Constructor & Destructor Documentation

◆ CSOBoundingBox() [1/4]

ml::CSOBoundingBox::CSOBoundingBox ( )

◆ CSOBoundingBox() [2/4]

ml::CSOBoundingBox::CSOBoundingBox ( CSO * cso)

Constructor.

◆ CSOBoundingBox() [3/4]

ml::CSOBoundingBox::CSOBoundingBox ( const Vector3 & bbv1,
const Vector3 & bbv2 )

Constructor.

◆ CSOBoundingBox() [4/4]

ml::CSOBoundingBox::CSOBoundingBox ( const CSOBoundingBox & bBox)

Copy constructor.

References CSOBoundingBox().

◆ ~CSOBoundingBox()

ml::CSOBoundingBox::~CSOBoundingBox ( )

Destructor.

Member Function Documentation

◆ augment()

void ml::CSOBoundingBox::augment ( float value)

Augments this bounding box by the specified value in all directions.

◆ containsBoundingBox()

bool ml::CSOBoundingBox::containsBoundingBox ( const CSOBoundingBox & innerBoundingBox,
const double epsilon = 0.0 ) const

Returns whether this bounding box encloses the specified bounding box fully.

References CSOBoundingBox().

◆ containsPoint()

bool ml::CSOBoundingBox::containsPoint ( double x,
double y,
double z ) const

Returns whether this bounding box contains the specified point.

◆ correct()

void ml::CSOBoundingBox::correct ( )

Corrects all coordinates, so that the min values are indeed smaller than the max values.

◆ enclosesSlabWithZPosition()

bool ml::CSOBoundingBox::enclosesSlabWithZPosition ( double z) const

Returns whether the specified z-value is in the same slice/slab as this bounding box encloses.

◆ getCenterPoint()

Vector3 ml::CSOBoundingBox::getCenterPoint ( ) const

Returns the center point of the bounding box.

◆ getShifted()

CSOBoundingBox ml::CSOBoundingBox::getShifted ( double dx,
double dy,
double dz ) const

Returns a bounding box shifted by the specified values.

References CSOBoundingBox().

◆ getSize()

double ml::CSOBoundingBox::getSize ( ) const

Returns the volume or the area of the bounding box, or 0 if empty.

◆ intersect()

CSOBoundingBox ml::CSOBoundingBox::intersect ( const CSOBoundingBox & bBox) const

Returns the intersection bounding box of this BB and the specified one.

References CSOBoundingBox().

◆ intersects() [1/3]

bool ml::CSOBoundingBox::intersects ( const CSOBoundingBox & bBox) const

Returns whether this bounding box intersects with the specified bounding box.

References CSOBoundingBox().

◆ intersects() [2/3]

bool ml::CSOBoundingBox::intersects ( const Vector3 & argv1,
const Vector3 & argv2 ) const

Returns whether this bounding box intersects with a bounding box specified by its two vectors.

◆ intersects() [3/3]

bool ml::CSOBoundingBox::intersects ( const Vector3 & center,
double radius ) const

Returns whether this bounding box intersects a specified sphere.

◆ isEmpty()

bool ml::CSOBoundingBox::isEmpty ( ) const

Returns whether this bounding box is empty.

◆ makeCubic()

void ml::CSOBoundingBox::makeCubic ( )

Modifies the bounding box so it becomes cubic with all sides as long as the former longest.

◆ makeEmpty()

void ml::CSOBoundingBox::makeEmpty ( )

Empties this bounding box (set all values to +/- ML_FLOAT_MAX).

◆ operator=()

CSOBoundingBox & ml::CSOBoundingBox::operator= ( const CSOBoundingBox & )
default

Default assignment operator.

References CSOBoundingBox().

◆ print()

void ml::CSOBoundingBox::print ( )
inline

Prints the v1/v2 coordinates to the console. For debugging convenience.

Definition at line 103 of file CSOBoundingBox.h.

References CSO_PRINT, v1, and v2.

◆ set()

void ml::CSOBoundingBox::set ( const Vector3 & argv1,
const Vector3 & argv2 )

Sets starting and ending vector for this bounding box. The set values are corrected.

◆ unify()

CSOBoundingBox ml::CSOBoundingBox::unify ( const CSOBoundingBox & bBox) const

Returns the union bounding box of this BB and the specified one.

References CSOBoundingBox().

Member Data Documentation

◆ v1

Vector3 ml::CSOBoundingBox::v1

The x/y/z min values.

Definition at line 107 of file CSOBoundingBox.h.

Referenced by print().

◆ v2

Vector3 ml::CSOBoundingBox::v2

the x/y/z max values.

Definition at line 109 of file CSOBoundingBox.h.

Referenced by print().


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