MIRA
|
The base class for rectangles. More...
#include <geometry/Rect.h>
Public Types | |
typedef Point< T, D > | PointType |
typedef Size< T, D > | SizeType |
typedef boost::geometry::model::box< PointType > | BoxType |
Public Member Functions | |
template<typename Reflector > | |
void | reflect (Reflector &reflector) |
the method to serialize this object More... | |
SizeType | size () const |
return the size of the multidimensional rect More... | |
const Derived & | operator+= (const PointType &displacement) |
Moves the rect (the minCorner and the maxCorner) by the specified displacement. More... | |
Derived | operator+ (const PointType &displacement) const |
Returns a rect that is moved by the specified displacement. More... | |
Constructors | |
RectBase () | |
The default constructor, creates an invalid rect with negative extends. More... | |
RectBase (T x, T y, T z, T width, T height, T depth) | |
A constructor for the 3D case. More... | |
RectBase (T x, T y, T width, T height) | |
A constructor for the 2D case. More... | |
RectBase (const PointType &pos, T width, T height) | |
A constructor for the 2D case. More... | |
RectBase (const PointType &pos, T width, T height, T depth) | |
A constructor for the 3D case. More... | |
RectBase (const PointType &pos, const SizeType &s) | |
a constructor to construct the rect, cube or whatever by defining the lower corner and specifying an n-dimensional size. More... | |
RectBase (const BoxType &box) | |
Creating an n-dimensional object from boost::model::box. More... | |
RectBase (const PointType &p1, const PointType &p2, bool makeValid) | |
Create an n-dimensional object from specifying two corners. More... | |
Implicit conversion operators | |
operator BoxType () const | |
converts to boost::geometry::box More... | |
Comparison Operators | |
template<typename OtherDerived > | |
bool | operator== (const RectBase< T, D, OtherDerived > &other) const |
template<typename OtherDerived > | |
bool | operator!= (const RectBase< T, D, OtherDerived > &other) const |
Intersection tests | |
template<typename OtherGeometry > | |
bool | contains (const OtherGeometry &otherGeometry) const |
this method checks if a given geometry is enclosed by this box More... | |
template<typename OtherGeometry > | |
bool | intersects (const OtherGeometry &otherGeometry) const |
this method checks for intersections with other geometry More... | |
template<typename OtherGeometry > | |
bool | disjoint (const OtherGeometry &otherGeometry) const |
this method checks for non-intersections with other geometry More... | |
Geometric Operators | |
Derived | operator| (const Derived &other) const |
Returns the bounding rectangle of this rectangle and the given rectangle. More... | |
const Derived & | operator|= (const Derived &other) |
Unites this rectangle with the given rectangle. More... | |
const Derived & | operator|= (const PointType &p) |
Unites this rectangle with the given point. More... | |
Derived | operator & (const Derived &other) const |
Returns the intersection of this rectangle and the given rectangle. More... | |
const Derived & | operator &= (const Derived &other) |
Intersects the rectangle with the given rectangle. More... | |
Static Public Member Functions | |
template<typename U , typename OtherDerived > | |
static Derived | convertFrom (const RectBase< U, D, OtherDerived > &other) |
Converts from a Rect of a different type. More... | |
Public Attributes | |
PointType | minCorner |
PointType | maxCorner |
Invalid and null Rects | |
bool | isValid () const |
Returns true if this is a valid Rect where the maxCorner's components are not smaller than the minCorner, i.e. More... | |
Derived | normalized () const |
Returns the normalized Rect, where the maxCorner and minCorner components are swapped if necessary to produce a valid Rect, where all maxCorner's components are larger than the minCorner. More... | |
bool | isNull () const |
Returns true, if all extends (i.e. More... | |
static Derived | invalid () |
Returns an invalid rect with negative extends. More... | |
static Derived | null () |
Returns a null-Rect which extends are null (minCorner and maxCorner) are set to 0. More... | |
static Derived | zero () |
Same as null(). More... | |
The base class for rectangles.
Rectangles are also template objects and could be created with different data types (like floats, integer) and different dimensions. In 2D it is the classical rectangle while in 1D it is essentially a line and in 3D it is a box. Again Boost::geometry is used to perform geometrical tasks like intersection, union or enclosure tests. The base class implements a lot of constructors, operators and type converters.
|
inline |
The default constructor, creates an invalid rect with negative extends.
|
inline |
A constructor for the 3D case.
|
inline |
A constructor for the 2D case.
A constructor for the 3D case.
a constructor to construct the rect, cube or whatever by defining the lower corner and specifying an n-dimensional size.
Creating an n-dimensional object from boost::model::box.
Create an n-dimensional object from specifying two corners.
[in] | p1 | The lower corner. |
[in] | p2 | The upper corner. |
[in] | makeValid | If true, switch the specific dimension if p1[i] > p2[i]. |
|
inline |
the method to serialize this object
|
inline |
converts to boost::geometry::box
|
inline |
return the size of the multidimensional rect
|
inline |
|
inline |
|
inline |
this method checks if a given geometry is enclosed by this box
|
inline |
this method checks for intersections with other geometry
|
inline |
this method checks for non-intersections with other geometry
|
inline |
Returns true if this is a valid Rect where the maxCorner's components are not smaller than the minCorner, i.e.
the width and height is not negative. Note: a null-Rect is valid.
|
inlinestatic |
Returns an invalid rect with negative extends.
Provided for backward compatibility (the default constructor does exactly this).
|
inline |
|
inline |
Returns true, if all extends (i.e.
width, height, etc) of this Rect are null.
|
inlinestatic |
Returns a null-Rect which extends are null (minCorner and maxCorner) are set to 0.
|
inline |
Returns the bounding rectangle of this rectangle and the given rectangle.
Moreover: a | invalid = a invalid | b = b invalid | invalid = invalid
|
inline |
Unites this rectangle with the given rectangle.
Moreover: a |= invalid, leaves a unchanged invalid |= b, previous null becomes b
|
inline |
Unites this rectangle with the given point.
Using this operator bounding boxes around single points can be created:
Moreover:
invalid |= point
creates an empty rect as bounding box at the position of the single point
|
inline |
Returns the intersection of this rectangle and the given rectangle.
Returns an invalid rectangle if there is no intersection.
Moreover: a & invalid = invalid invalid & b = invalid invalid & invalid = invalid a & b = invalid, only if a and b do not intersect at all.
|
inline |
Intersects the rectangle with the given rectangle.
Returns an invalid rectangle if there is no intersection.
|
inlinestatic |
Converts from a Rect of a different type.
|
inline |
Moves the rect (the minCorner and the maxCorner) by the specified displacement.
|
inline |
Returns a rect that is moved by the specified displacement.
PointType minCorner |
PointType maxCorner |