114 void _computeBB(
CSO* cso);
#define CSO_PRINT(msg)
Output macro for testing.
#define MLCSO_EXPORT
Defines export symbols for classes, so they can be used in other DLLs.
The CSOBoundingBox defines an axis-parallel bounding box with double precision.
CSOBoundingBox(const Vector3 &bbv1, const Vector3 &bbv2)
Constructor.
~CSOBoundingBox()
Destructor.
void correct()
Corrects all coordinates, so that the min values are indeed smaller than the max values.
bool enclosesSlabWithZPosition(double z) const
Returns whether the specified z-value is in the same slice/slab as this bounding box encloses.
Vector3 getCenterPoint() const
Returns the center point of the bounding box.
bool containsPoint(double x, double y, double z) const
Returns whether this bounding box contains the specified point.
void set(const Vector3 &argv1, const Vector3 &argv2)
Sets starting and ending vector for this 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.
Vector3 v1
The x/y/z min values.
void print()
Prints the v1/v2 coordinates to the console. For debugging convenience.
void makeCubic()
Modifies the bounding box so it becomes cubic with all sides as long as the former longest.
Vector3 v2
the x/y/z max values.
bool intersects(const Vector3 ¢er, double radius) const
Returns whether this bounding box intersects a specified sphere.
double getSize() const
Returns the volume or the area of the bounding box, or 0 if empty.
CSOBoundingBox unify(const CSOBoundingBox &bBox) const
Returns the union bounding box of this BB and the specified one.
CSOBoundingBox(const CSOBoundingBox &bBox)
Copy constructor.
CSOBoundingBox getShifted(double dx, double dy, double dz) const
Returns a bounding box shifted by the specified values.
bool containsBoundingBox(const CSOBoundingBox &innerBoundingBox, const double epsilon=0.0) const
Returns whether this bounding box encloses the specified bounding box fully.
void makeEmpty()
Empties this bounding box (set all values to +/- ML_FLOAT_MAX).
bool intersects(const CSOBoundingBox &bBox) const
Returns whether this bounding box intersects with the specified bounding box.
CSOBoundingBox(CSO *cso)
Constructor.
CSOBoundingBox & operator=(const CSOBoundingBox &)=default
Default assignment operator.
CSOBoundingBox()
Constructor.
bool isEmpty() const
Returns whether this bounding box is empty.
void augment(float value)
Augments this bounding box by the specified value in all directions.
CSOBoundingBox intersect(const CSOBoundingBox &bBox) const
Returns the intersection bounding box of this BB and the specified one.
The CSO represents a contour segmentation object.