From ddcaca8432c2caf57d1defade0c32e90c649554c Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Wed, 21 Mar 2012 12:00:36 +0100 Subject: utils: templatized point, point_3d and rectangle added template parameter for the geometry helper classes, moved function definitions to hpp file to support templates --- src/utils/rectangle.hpp | 64 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 12 deletions(-) (limited to 'src/utils/rectangle.hpp') diff --git a/src/utils/rectangle.hpp b/src/utils/rectangle.hpp index c77b8673..abe26ef1 100644 --- a/src/utils/rectangle.hpp +++ b/src/utils/rectangle.hpp @@ -32,22 +32,62 @@ namespace usdx { + template class Rectangle { private: - Point point1; - Point point2; + Point point1; + Point point2; + public: - Rectangle(float x1, float y1, float x2, float y2); - Rectangle(const Point& point1, const Point& point2); - Rectangle(const Point& point1, float width, float height); - Rectangle(const Point& point1, const Dimension& dimension); - Rectangle(const Rectangle& rectangle); - - const Point& get_point1(void) const; - const Point& get_point2(void) const; - const float get_width(void) const; - const float get_height(void) const; + Rectangle(T x1, T y1, T x2, T y2) : + point1(x1, y1), point2(x2, y2) + { + } + + Rectangle(const Point& point1, const Point& point2) : + point1(point1), point2(point2) + { + } + + Rectangle(const Point& point1, T width, T height) : + point1(point1), + point2(point1.get_x() + width, point1.get_y() + height) + { + } + + Rectangle(const Point& point1, const Dimension& dimension) : + point1(point1), + point2(point1.get_x() + dimension.get_width(), + point1.get_y() + dimension.get_height()) + { + } + + Rectangle(const Rectangle& rectangle) : + point1(rectangle.point1), point2(rectangle.point2) + { + } + + + const Point& get_point1(void) const + { + return point1; + } + + const Point& get_point2(void) const + { + return point2; + } + + const T get_width(void) const + { + return point2.get_x() - point1.get_x(); + } + + const T get_height(void) const + { + return point2.get_y() - point1.get_y(); + } }; }; -- cgit v1.2.3