template struct geom::TRect
Template rectangle in an arbitrary dimension.
#include <GeometryStructures.h> template <typename T> struct TRect { // typedefs typedef glm::tvec2<T> Vec2; // fields Vec2 position = Vec2((T)0); Vec2 position2 = Vec2((T)0); utils::PropertyByValue<TRect<T>, T,&TRect<T>::GetX,&TRect<T>::SetX> x; utils::PropertyByValue<TRect<T>, T,&TRect<T>::GetY,&TRect<T>::SetY> y; utils::PropertyByValue<TRect<T>, T,&TRect<T>::GetWidth,&TRect<T>::SetWidth> width; utils::PropertyByValue<TRect<T>, T,&TRect<T>::GetHeight,&TRect<T>::SetHeight> height; utils::PropertyByValue<TRect<T>, T,&TRect<T>::GetX2,&TRect<T>::SetX2> x2; utils::PropertyByValue<TRect<T>, T,&TRect<T>::GetY2,&TRect<T>::SetY2> y2; utils::Property<TRect<T>, Vec2,&TRect<T>::GetSize,&TRect<T>::SetSize> size; // construction TRect(); TRect(const T x1, const T y1, const T x2, const T y2); TRect(const Vec2& point1, const Vec2& point2); TRect(const Vec2& top_left_origin, const T size_width, const T size_height); // methods void SetSize(const Vec2& new_size); void Set(const TRect& rect); void Set(const T t_x1, const T t_y1, const T t_x2, const T t_y2); void Set(const Vec2& point1, const Vec2& point2); Vec2 GetSize() const; T GetX() const; T GetY() const; T GetWidth() const; T GetHeight() const; T GetX2() const; T GetY2() const; void SetX(const T value); void SetY(const T value); void SetWidth(const T value); void SetHeight(const T value); void SetX2(const T value); void SetY2(const T value); Vec2 Center(void) const; bool Contains(const Vec2& point) const; T Area(void) const; };