2D (left,top,right,bottom) rectangle structure. More...

#include <line.h>

Public Member Functions

 Rectx ()
 Constructs an rectangle. More...
 
 Rectx (const Sizex< Type > &s)
 Constructs an rectangle. More...
 
 Rectx (Type new_left, Type new_top, Type new_right, Type new_bottom)
 Constructs an rectangle. More...
 
 Rectx (const Pointx< Type > &p, const Sizex< Type > &size)
 Constructs an rectangle. More...
 
 Rectx (Type new_left, Type new_top, const Sizex< Type > &size)
 Constructs an rectangle. More...
 
 Rectx (const Rectx< int > &rect)
 Constructs an rectangle. More...
 
 Rectx (const Rectx< float > &rect)
 Constructs an rectangle. More...
 
 Rectx (const Rectx< double > &rect)
 Constructs an rectangle. More...
 
template<>
 Rectx (const Rectx< float > &rect)
 
template<>
 Rectx (const Rectx< double > &rect)
 
Rectx< Type > & apply_alignment (Origin origin, Type x, Type y)
 Applies an origin and offset pair to this rectangle. More...
 
Rectx< Type > & bounding_rect (const Rectx< Type > &rect)
 Calculates the bounding rectangle of the rectangles. More...
 
Rectx< Type > & clip (const Rectx< Type > &cr)
 Clip according to the specified clip rectangle. More...
 
bool contains (const Vec2< Type > &p) const
 Returns true if the rectangle contains the point. More...
 
Rectx< Type > & expand (const Type &expand_left, const Type &expand_top, const Type &expand_right, const Type &expand_bottom)
 Expand the rectangle. More...
 
Rectx< Type > & expand (const Type &left_and_right, const Type &top_and_bottom)
 Expand the rectangle. More...
 
Rectx< Type > & expand (const Type &expand)
 Expand the rectangle. More...
 
Pointx< Type > get_bottom_left () const
 Returns the bottom-left point outside the rectangle. More...
 
Pointx< Type > get_bottom_right () const
 Returns the bottom-right point outside the rectangle. More...
 
Pointx< Type > get_center () const
 Returns the center point of the rectangle. More...
 
Type get_height () const
 Returns the height of the rectangle. More...
 
Rectx< Type > get_rot_bounds (const Vec2< Type > &hotspot, const Angle &angle) const
 Returns another Rectx<Type> containing a rotated version of this one. More...
 
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. More...
 
Sizex< Type > get_size () const
 Returns the size of the rectangle. More...
 
Pointx< Type > get_top_left () const
 Returns the top-left point inside the rectangle. More...
 
Pointx< Type > get_top_right () const
 Returns the top-right point outside the rectangle. More...
 
Type get_width () const
 Returns the width of the rectangle. More...
 
bool is_inside (const Rectx< Type > &r) const
 Returns true if rectangle passed is inside this rectangle. More...
 
bool is_overlapped (const Rectx< Type > &r) const
 Returns true if rectangle passed is overlapping or inside this rectangle. More...
 
Rectx< Type > & normalize ()
 Normalize rectangle. More...
 
bool operator!= (const Rectx< Type > &r) const
 Rect != Rect operator. More...
 
Rectx< Type > operator* (const Type &s) const
 Rect * operator. More...
 
Rectx< Type > & operator*= (const Type &s)
 Rect *= operator. More...
 
bool operator== (const Rectx< Type > &r) const
 Rect == Rect operator. More...
 
Rectx< Type > & overlap (const Rectx< Type > &rect)
 Calculates the intersection of two rectangles. More...
 
Rectx< Type > & set_bottom_right (const Vec2< Type > &p)
 Sets the bottom-right point of the rectangle. More...
 
Rectx< Type > & set_height (Type height)
 Sets the height of the rectangle. More...
 
Rectx< Type > & set_size (const Sizex< Type > &size)
 Sets the size of the rectangle, maintaining top/left position. More...
 
Rectx< Type > & set_top_left (const Vec2< Type > &p)
 Sets the top-left point of the rectangle. More...
 
Rectx< Type > & set_width (Type width)
 Sets the width of the rectangle. More...
 
Rectx< Type > & shrink (const Type &new_left, const Type &new_top, const Type &new_right, const Type &new_bottom)
 Shrink the rectangle. More...
 
Rectx< Type > & shrink (const Type &left_right, const Type &top_bottom)
 Shrink the rectangle. More...
 
Rectx< Type > & shrink (const Type &shrink)
 Shrink the rectangle. More...
 
Rectx< Type > & translate (const Vec2< Type > &p)
 Translate the rect. More...
 
Rectx< Type > & translate (const Sizex< Type > &p)
 Translate the rect. More...
 
Rectx< Type > & translate (const Rectx< Type > &p)
 Translate the rect by another rect (only uses the left and top coords). More...
 
Rectx< Type > & translate (Type x, Type y)
 Translate the rect. More...
 

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) More...
 
Type left
 X1-coordinate (left point inside the rectangle) More...
 
Type right
 X2-coordinate (point outside the rectangle) More...
 
Type top
 Y1-coordinate (top point inside the rectangle) More...
 

Detailed Description

template<typename Type>
class clan::Rectx< Type >

2D (left,top,right,bottom) rectangle structure.

These line templates are defined for: int (Rect), float (Rectf), double (Rectd)

Constructor & Destructor Documentation

template<typename Type>
clan::Rectx< Type >::Rectx ( )
inline

Constructs an rectangle.

Initialised to zero

template<typename Type>
clan::Rectx< Type >::Rectx ( const Sizex< Type > &  s)
inline

Constructs an rectangle.

Parameters
s= Size
template<typename Type>
clan::Rectx< Type >::Rectx ( Type  new_left,
Type  new_top,
Type  new_right,
Type  new_bottom 
)
inline

Constructs an rectangle.

Parameters
new_leftInitial left position of rectangle.
new_topInitial top position of rectangle.
new_rightInitial right position of rectangle.
new_bottomInitial bottom position of rectangle.
template<typename Type>
clan::Rectx< Type >::Rectx ( const Pointx< Type > &  p,
const Sizex< Type > &  size 
)
inline

Constructs an rectangle.

Parameters
p= Initial top-left position of rectangle.
sizeInitial size of rectangle.
template<typename Type>
clan::Rectx< Type >::Rectx ( Type  new_left,
Type  new_top,
const Sizex< Type > &  size 
)
inline

Constructs an rectangle.

Parameters
new_leftInitial left position of rectangle.
new_topInitial top position of rectangle.
sizeInitial size of rectangle.
template<>
clan::Rectx< int >::Rectx ( const Rectx< float > &  rect)
inline

References clan::f, clan::left, and clan::right.

template<>
clan::Rectx< int >::Rectx ( const Rectx< double > &  rect)
inline

References clan::left, and clan::right.

Member Function Documentation

template<typename Type>
Rectx<Type>& clan::Rectx< Type >::apply_alignment ( Origin  origin,
Type  x,
Type  y 
)
inline

Applies an origin and offset pair to this rectangle.

Parameters
originThe new origin to adjust to from default upper-left position
x,yOffsets applied negatively to each corner of the rectangle
Returns
reference to this object
template<typename Type>
Rectx<Type>& clan::Rectx< Type >::bounding_rect ( const Rectx< Type > &  rect)
inline

Calculates the bounding rectangle of the rectangles.

Rect values become: min left, min top, max right, max bottom.

Returns
reference to this object
template<typename Type>
Rectx<Type>& clan::Rectx< Type >::clip ( const Rectx< Type > &  cr)
inline

Clip according to the specified clip rectangle.

Returns
reference to this object
template<typename Type>
bool clan::Rectx< Type >::contains ( const Vec2< Type > &  p) const
inline

Returns true if the rectangle contains the point.

template<typename Type>
Rectx<Type>& clan::Rectx< Type >::expand ( const Type &  expand_left,
const Type &  expand_top,
const Type &  expand_right,
const Type &  expand_bottom 
)
inline

Expand the rectangle.

Returns
reference to this object

Referenced by clan::Rectx< int >::expand().

template<typename Type>
Rectx<Type>& clan::Rectx< Type >::expand ( const Type &  left_and_right,
const Type &  top_and_bottom 
)
inline

Expand the rectangle.

Returns
reference to this object
template<typename Type>
Rectx<Type>& clan::Rectx< Type >::expand ( const Type &  expand)
inline

Expand the rectangle.

Returns
reference to this object
template<typename Type>
Pointx<Type> clan::Rectx< Type >::get_bottom_left ( ) const
inline

Returns the bottom-left point outside the rectangle.

template<typename Type>
Pointx<Type> clan::Rectx< Type >::get_bottom_right ( ) const
inline

Returns the bottom-right point outside the rectangle.

template<typename Type>
Pointx<Type> clan::Rectx< Type >::get_center ( ) const
inline

Returns the center point of the rectangle.

template<typename Type>
Type clan::Rectx< Type >::get_height ( ) const
inline

Returns the height of the rectangle.

template<typename Type>
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.

Parameters
hotspotPoint to rotate around.
angleAngle to rotate.
template<typename Type>
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.

Parameters
originDetermines the hotspot point within the rectangle
xOffsets applied negatively to the hotspot point
yOffsets applied negatively to the hotspot point
angleAngle
template<typename Type>
Sizex<Type> clan::Rectx< Type >::get_size ( ) const
inline

Returns the size of the rectangle.

Referenced by clan::Rectx< int >::apply_alignment().

template<typename Type>
Pointx<Type> clan::Rectx< Type >::get_top_left ( ) const
inline

Returns the top-left point inside the rectangle.

template<typename Type>
Pointx<Type> clan::Rectx< Type >::get_top_right ( ) const
inline

Returns the top-right point outside the rectangle.

template<typename Type>
Type clan::Rectx< Type >::get_width ( ) const
inline

Returns the width of the rectangle.

template<typename Type>
bool clan::Rectx< Type >::is_inside ( const Rectx< Type > &  r) const
inline

Returns true if rectangle passed is inside this rectangle.

template<typename Type>
bool clan::Rectx< Type >::is_overlapped ( const Rectx< Type > &  r) const
inline

Returns true if rectangle passed is overlapping or inside this rectangle.

template<typename Type>
static Rectx<Type> clan::Rectx< Type >::ltrb ( Type  left,
Type  top,
Type  right,
Type  bottom 
)
inlinestatic
template<typename Type>
Rectx<Type>& clan::Rectx< Type >::normalize ( )
inline

Normalize rectangle.

Sets the width to 0 if found a negative width Sets the height to 0 if found a negative height

Returns
reference to this object
template<typename Type>
bool clan::Rectx< Type >::operator!= ( const Rectx< Type > &  r) const
inline

Rect != Rect operator.

template<typename Type>
Rectx<Type> clan::Rectx< Type >::operator* ( const Type &  s) const
inline

Rect * operator.

template<typename Type>
Rectx<Type>& clan::Rectx< Type >::operator*= ( const Type &  s)
inline

Rect *= operator.

template<typename Type>
bool clan::Rectx< Type >::operator== ( const Rectx< Type > &  r) const
inline

Rect == Rect operator.

template<typename Type>
Rectx<Type>& clan::Rectx< Type >::overlap ( const Rectx< Type > &  rect)
inline

Calculates the intersection of two rectangles.

Rect values become: max left, max top, min right, min bottom.

Returns
reference to this object
template<typename Type>
Rectx<Type>& clan::Rectx< Type >::set_bottom_right ( const Vec2< Type > &  p)
inline

Sets the bottom-right point of the rectangle.

Returns
reference to this object
template<typename Type>
Rectx<Type>& clan::Rectx< Type >::set_height ( Type  height)
inline

Sets the height of the rectangle.

Returns
reference to this object
template<typename Type>
Rectx<Type>& clan::Rectx< Type >::set_size ( const Sizex< Type > &  size)
inline

Sets the size of the rectangle, maintaining top/left position.

Returns
reference to this object
template<typename Type>
Rectx<Type>& clan::Rectx< Type >::set_top_left ( const Vec2< Type > &  p)
inline

Sets the top-left point of the rectangle.

Returns
reference to this object
template<typename Type>
Rectx<Type>& clan::Rectx< Type >::set_width ( Type  width)
inline

Sets the width of the rectangle.

Returns
reference to this object
template<typename Type>
Rectx<Type>& clan::Rectx< Type >::shrink ( const Type &  new_left,
const Type &  new_top,
const Type &  new_right,
const Type &  new_bottom 
)
inline

Shrink the rectangle.

Returns
reference to this object

Referenced by clan::Rectx< int >::shrink().

template<typename Type>
Rectx<Type>& clan::Rectx< Type >::shrink ( const Type &  left_right,
const Type &  top_bottom 
)
inline

Shrink the rectangle.

Returns
reference to this object
template<typename Type>
Rectx<Type>& clan::Rectx< Type >::shrink ( const Type &  shrink)
inline

Shrink the rectangle.

Returns
reference to this object
template<typename Type>
Rectx<Type>& clan::Rectx< Type >::translate ( const Vec2< Type > &  p)
inline

Translate the rect.

Returns
reference to this object
template<typename Type>
Rectx<Type>& clan::Rectx< Type >::translate ( const Sizex< Type > &  p)
inline

Translate the rect.

Returns
reference to this object
template<typename Type>
Rectx<Type>& clan::Rectx< Type >::translate ( const Rectx< Type > &  p)
inline

Translate the rect by another rect (only uses the left and top coords).

Returns
reference to this object
template<typename Type>
Rectx<Type>& clan::Rectx< Type >::translate ( Type  x,
Type  y 
)
inline

Translate the rect.

Returns
reference to this object
template<typename Type>
static Rectx<Type> clan::Rectx< Type >::xywh ( Type  x,
Type  y,
Type  width,
Type  height 
)
inlinestatic

Member Data Documentation


The documentation for this class was generated from the following files: