13 #ifndef ML_SUB_IMAGE_BOXD_H
14 #define ML_SUB_IMAGE_BOXD_H
82 return (v1==box.
v1) && (v2==box.
v2);
95 return (v1[0]>v2[0]) || (v1[1]>v2[1]) || (v1[2]>v2[2]) || (v1[3]>v2[3]) || (v1[4]>v2[4]) || (v1[5]>v2[5]);
170 inline ostream&
operator<<(ostream& s,
const ML_NAMESPACE::SubImageBoxd &box)
172 return s <<
"(" << box.v1 <<
")(" << box.v2 <<
")";
SubImageBoxd - SubImageBox with coordinates of float data type.
bool operator!=(const SubImageBoxd &box) const
Returns true if both boxes are identical.
MLEXPORT SubImageBoxd(const SubImageBox &box)
Constructor: creates a box from an integer 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)
Constructor: subimage box is defined by both corner points vector1 and 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)
Returns the axis aligned bounding box of all corners of box transformed with matrix.
bool isEmpty() const
Returns true if any component of v1 is greater than the corresponding component of v2 (which is defin...
Vector6 clamp(const Vector6 &position)
Clamps the position to the nearest position inside the SubImageBox.
Vector6 v1
Corner v1 of the box region.
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.
MLEXPORT std::ostream & operator<<(std::ostream &s, const ml::Field &v)
Overloads the operator '<<' for stream output of Field objects.
#define MLEXPORT
To export symbols from a DLL/shared object, we need to mark them with the MLEXPORT symbol.
MLWEM_EXPORT void intersect(WEMTrianglePatch *inPatch1, WEMTrianglePatch *inPatch2, WEMTrianglePatch *outPatch, unsigned int outputMode, TriangulationModes triangulationMode, WEMVector< WEMCut > *cuts=nullptr)
Returns the intersection of the given patches.
FloatingPointVector< T, size, DataContainer > compMax(FloatingPointVector< T, size, DataContainer > buffer1, const FloatingPointVector< T, size, DataContainer > &buffer2)
Component-wise maximum of buffer1 and buffer2.
bool operator==(const Tmat2< DT > &a, const Tmat2< DT > &b)
a == b ? Returns true if yes.
Tvec6< MLdouble > Vector6
A vector with six components of type double.
FloatingPointVector< T, size, DataContainer > compMin(FloatingPointVector< T, size, DataContainer > buffer1, const FloatingPointVector< T, size, DataContainer > &buffer2)
Component-wise minimum of buffer1 and buffer2.