2D (left,top,right,bottom) rectangle structure. More...
#include <rect.h>
Public Member Functions | |
Rectx () | |
Constructs an rectangle. | |
Rectx (const Pointx< Type > &p, const Sizex< Type > &size) | |
Constructs an rectangle. | |
template<typename OtherType, typename std::enable_if_t< std::is_integral< Type >::value &&!std::is_integral< OtherType >::value, int > = 0> | |
Rectx (const Rectx< OtherType > ©) | |
template<typename OtherType, typename std::enable_if_t<!std::is_integral< Type >::value||std::is_integral< OtherType >::value, int > = 0> | |
Rectx (const Rectx< OtherType > ©) | |
Rectx (const Rectx< Type > &rect)=default | |
Constructs an rectangle. | |
Rectx (const Sizex< Type > &s) | |
Constructs an rectangle. | |
Rectx (Type new_left, Type new_top, const Sizex< Type > &size) | |
Constructs an rectangle. | |
Rectx (Type new_left, Type new_top, Type new_right, Type new_bottom) | |
Constructs an rectangle. | |
Rectx< Type > & | apply_alignment (Origin origin, Type x, Type y) |
Applies an origin and offset pair to this rectangle. | |
Rectx< Type > & | bounding_rect (const Rectx< Type > &rect) |
Calculates the bounding rectangle of the rectangles. | |
Rectx< Type > & | clip (const Rectx< Type > &cr) |
Clip according to the specified clip rectangle. | |
bool | contains (const Vec2< Type > &p) const |
Returns true if the rectangle contains the point. | |
Rectx< Type > & | expand (const Type &expand) |
Expand the rectangle. | |
Rectx< Type > & | expand (const Type &expand_left, const Type &expand_top, const Type &expand_right, const Type &expand_bottom) |
Expand the rectangle. | |
Rectx< Type > & | expand (const Type &left_and_right, const Type &top_and_bottom) |
Expand the rectangle. | |
Pointx< Type > | get_bottom_left () const |
Returns the bottom-left point outside the rectangle. | |
Pointx< Type > | get_bottom_right () const |
Returns the bottom-right point outside the rectangle. | |
Pointx< Type > | get_center () const |
Returns the center point of the rectangle. | |
Type | get_height () const |
Returns the height of the rectangle. | |
Rectx< Type > | get_rot_bounds (const Vec2< Type > &hotspot, const Angle &angle) const |
Returns another Rectx<Type> containing a rotated version of this one. | |
Rectx< Type > | get_rot_bounds (Origin origin, Type x, Type y, const Angle &angle) const |
Returns another Rectx<Type> containing a rotated version of this one. | |
Sizex< Type > | get_size () const |
Returns the size of the rectangle. | |
Pointx< Type > | get_top_left () const |
Returns the top-left point inside the rectangle. | |
Pointx< Type > | get_top_right () const |
Returns the top-right point outside the rectangle. | |
Type | get_width () const |
Returns the width of the rectangle. | |
bool | is_inside (const Rectx< Type > &r) const |
Returns true if rectangle passed is inside this rectangle. | |
bool | is_overlapped (const Rectx< Type > &r) const |
Returns true if rectangle passed is overlapping or inside this rectangle. | |
Rectx< Type > & | normalize () |
Normalize rectangle. | |
bool | operator!= (const Rectx< Type > &r) const |
Rect != Rect operator. | |
Rectx< Type > | operator* (const Type &s) const |
Rect * operator. | |
Rectx< Type > & | operator*= (const Type &s) |
Rect *= operator. | |
bool | operator== (const Rectx< Type > &r) const |
Rect == Rect operator. | |
Rectx< Type > & | overlap (const Rectx< Type > &rect) |
Calculates the intersection of two rectangles. | |
Rectx< Type > & | set_bottom_right (const Vec2< Type > &p) |
Sets the bottom-right point of the rectangle. | |
Rectx< Type > & | set_height (Type height) |
Sets the height of the rectangle. | |
Rectx< Type > & | set_size (const Sizex< Type > &size) |
Sets the size of the rectangle, maintaining top/left position. | |
Rectx< Type > & | set_top_left (const Vec2< Type > &p) |
Sets the top-left point of the rectangle. | |
Rectx< Type > & | set_width (Type width) |
Sets the width of the rectangle. | |
Rectx< Type > & | shrink (const Type &left_right, const Type &top_bottom) |
Shrink the rectangle. | |
Rectx< Type > & | shrink (const Type &new_left, const Type &new_top, const Type &new_right, const Type &new_bottom) |
Shrink the rectangle. | |
Rectx< Type > & | shrink (const Type &shrink) |
Shrink the rectangle. | |
Rectx< Type > & | translate (const Rectx< Type > &p) |
Translate the rect by another rect (only uses the left and top coords). | |
Rectx< Type > & | translate (const Sizex< Type > &p) |
Translate the rect. | |
Rectx< Type > & | translate (const Vec2< Type > &p) |
Translate the rect. | |
Rectx< Type > & | translate (Type x, Type y) |
Translate the rect. | |
Static Public Member Functions | |
static Rectx< Type > | ltrb (Type left, Type top, Type right, Type bottom) |
static Rectx< Type > | xywh (Type x, Type y, Type width, Type height) |
Public Attributes | |
Type | bottom |
Y2-coordinate (point outside the rectange) | |
Type | left |
X1-coordinate (left point inside the rectangle) | |
Type | right |
X2-coordinate (point outside the rectangle) | |
Type | top |
Y1-coordinate (top point inside the rectangle) | |
2D (left,top,right,bottom) rectangle structure.
These line templates are defined for: int (Rect), float (Rectf), double (Rectd)
|
inline |
Constructs an rectangle.
Initialised to zero
References bottom, left, right, and top.
Referenced by Rectx(), Rectx(), apply_alignment(), bounding_rect(), clip(), expand(), expand(), expand(), get_rot_bounds(), get_rot_bounds(), is_inside(), is_overlapped(), ltrb(), normalize(), operator!=(), operator*(), operator*=(), operator==(), overlap(), set_bottom_right(), set_height(), set_size(), set_top_left(), set_width(), shrink(), shrink(), shrink(), translate(), translate(), translate(), translate(), and xywh().
|
inline |
|
inline |
|
inline |
|
inline |
|
default |
|
inline |
|
inline |
|
inline |
Applies an origin and offset pair to this rectangle.
origin | The new origin to adjust to from default upper-left position |
x,y | Offsets applied negatively to each corner of the rectangle |
References Rectx(), bottom, clan::Vec2< Type >::calc_origin(), get_size(), left, right, top, clan::x, clan::Vec2< Type >::x, clan::y, and clan::Vec2< Type >::y.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Rectx< Type > clan::Rectx< Type >::get_rot_bounds | ( | const Vec2< Type > & | hotspot, |
const Angle & | angle ) const |
Returns another Rectx<Type> containing a rotated version of this one.
References Rectx(), and clan::angle.
Rectx< Type > clan::Rectx< Type >::get_rot_bounds | ( | Origin | origin, |
Type | x, | ||
Type | y, | ||
const Angle & | angle ) const |
Returns another Rectx<Type> containing a rotated version of this one.
origin | Determines the hotspot point within the rectangle |
x | Offsets applied negatively to the hotspot point |
y | Offsets applied negatively to the hotspot point |
angle | Angle |
References Rectx(), clan::angle, clan::x, and clan::y.
|
inline |
Returns the size of the rectangle.
References bottom, left, right, and top.
Referenced by apply_alignment().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Sets the size of the rectangle, maintaining top/left position.
References Rectx(), bottom, clan::Sizex< Type >::height, left, right, top, and clan::Sizex< Type >::width.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
Type clan::Rectx< Type >::bottom |
Y2-coordinate (point outside the rectange)
Referenced by Rectx(), Rectx(), Rectx(), Rectx(), Rectx(), Rectx(), apply_alignment(), bounding_rect(), clip(), contains(), expand(), expand(), expand(), get_bottom_left(), get_bottom_right(), get_center(), get_height(), get_size(), is_inside(), is_overlapped(), ltrb(), normalize(), operator!=(), operator*(), operator*=(), operator==(), overlap(), set_bottom_right(), set_height(), set_size(), shrink(), shrink(), shrink(), translate(), translate(), translate(), and translate().
Type clan::Rectx< Type >::left |
X1-coordinate (left point inside the rectangle)
Referenced by Rectx(), Rectx(), Rectx(), Rectx(), Rectx(), Rectx(), apply_alignment(), bounding_rect(), clip(), contains(), expand(), expand(), expand(), get_bottom_left(), get_center(), get_size(), get_top_left(), get_width(), is_inside(), is_overlapped(), ltrb(), normalize(), operator!=(), operator*(), operator*=(), operator==(), overlap(), set_size(), set_top_left(), set_width(), shrink(), shrink(), shrink(), translate(), translate(), translate(), and translate().
Type clan::Rectx< Type >::right |
X2-coordinate (point outside the rectangle)
Referenced by Rectx(), Rectx(), Rectx(), Rectx(), Rectx(), Rectx(), apply_alignment(), bounding_rect(), clip(), contains(), expand(), expand(), expand(), get_bottom_right(), get_center(), get_size(), get_top_right(), get_width(), is_inside(), is_overlapped(), ltrb(), normalize(), operator!=(), operator*(), operator*=(), operator==(), overlap(), set_bottom_right(), set_size(), set_width(), shrink(), shrink(), shrink(), translate(), translate(), translate(), and translate().
Type clan::Rectx< Type >::top |
Y1-coordinate (top point inside the rectangle)
Referenced by Rectx(), Rectx(), Rectx(), Rectx(), Rectx(), Rectx(), apply_alignment(), bounding_rect(), clip(), contains(), expand(), expand(), expand(), get_center(), get_height(), get_size(), get_top_left(), get_top_right(), is_inside(), is_overlapped(), ltrb(), normalize(), operator!=(), operator*(), operator*=(), operator==(), overlap(), set_height(), set_size(), set_top_left(), shrink(), shrink(), shrink(), translate(), translate(), translate(), and translate().