13#ifndef ML_SUB_IMAGE_BOXD_H
14#define ML_SUB_IMAGE_BOXD_H
170 inline ostream&
operator<<(ostream& s,
const ML_NAMESPACE::SubImageBoxd &box)
172 return s <<
"(" << box.v1 <<
")(" << box.v2 <<
")";
bool operator!=(const SubImageBoxd &box) const
Returns true if both boxes are identical.
MLEXPORT SubImageBoxd(const SubImageBox &box)
Vector6 v2
Corner v2 of the box region.
SubImageBoxd()
Constructor: constructs an empty region, i.e., v2 < v1.
bool operator==(const SubImageBoxd &box) const
Returns true if both boxes are identical.
void makeEmpty()
Makes box empty and restores constructor state.
SubImageBoxd(const Vector6 &vector1, const Vector6 &vector2)
Vector6 getExtent() const
Returns the distance vector between v1 and v2, i.e., it returns extents of the box.
MLEXPORT void correct()
Swaps all components where v1.* > v2.*.
static SubImageBoxd intersect(const SubImageBoxd &box1, const SubImageBoxd &box2)
Returns the intersection of box1 and box2.
static MLEXPORT SubImageBoxd calcAATransformedBox(const SubImageBox &box, const Matrix4 &matrix)
Vector6 clamp(const Vector6 &position)
SubImageBoxd intersect(const SubImageBoxd &box)
Memberfunction version to intersect this with a given box.
SubImageBoxd(const Vector6 &extent)
Constructor: creates a box with origin (0,0,0,0,0,0) and a given extent.
#define MLEXPORT
Code it as import symbol if compiled elsewhere.
FloatingPointVector< T, size, DataContainer > compMax(FloatingPointVector< T, size, DataContainer > buffer1, const FloatingPointVector< T, size, DataContainer > &buffer2)
Tmat4< MLdouble > Matrix4
The standard 4x4 matrix of type double.
Tvec6< MLdouble > Vector6
A vector with six components of type double.
TSubImageBox< MLint > SubImageBox
Defines the standard SubImageBox type used in the ML. Its size varies with the size of the MLint type...
FloatingPointVector< T, size, DataContainer > compMin(FloatingPointVector< T, size, DataContainer > buffer1, const FloatingPointVector< T, size, DataContainer > &buffer2)
MLEXPORT std::ostream & operator<<(std::ostream &s, const ml::Field &v)
Overloads the operator '<<' for stream output of Field objects.