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 given 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 given 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 given 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 given 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 given one.
CSOBoundingBox(const CSOBoundingBox &bBox)
Copy constructor.
CSOBoundingBox getShifted(double dx, double dy, double dz) const
Returns a bounding box shifted by the given values.
bool containsBoundingBox(const CSOBoundingBox &innerBoundingBox, const double epsilon=0.0) const
Returns whether this bounding box encloses the given 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 given 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 given value in all directions.
CSOBoundingBox intersect(const CSOBoundingBox &bBox) const
Returns the intersection bounding box of this BB and the given one.
The CSO represents a contour segmentation object.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.