aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils/rectangle.hpp
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2012-03-21 12:00:36 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2013-01-05 17:17:51 +0100
commitddcaca8432c2caf57d1defade0c32e90c649554c (patch)
tree3fb4f8edfb3aac494bce9d858d32b1cbec09d82e /src/utils/rectangle.hpp
parent2aba7ea7a02f967efc40edb332ab42c56ed92ce6 (diff)
downloadusdx-ddcaca8432c2caf57d1defade0c32e90c649554c.tar.gz
usdx-ddcaca8432c2caf57d1defade0c32e90c649554c.tar.xz
usdx-ddcaca8432c2caf57d1defade0c32e90c649554c.zip
utils: templatized point, point_3d and rectangle
added template parameter for the geometry helper classes, moved function definitions to hpp file to support templates
Diffstat (limited to '')
-rw-r--r--src/utils/rectangle.hpp64
1 files changed, 52 insertions, 12 deletions
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 T>
class Rectangle
{
private:
- Point point1;
- Point point2;
+ Point<T> point1;
+ Point<T> 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<T>& point1, const Point<T>& point2) :
+ point1(point1), point2(point2)
+ {
+ }
+
+ Rectangle(const Point<T>& point1, T width, T height) :
+ point1(point1),
+ point2(point1.get_x() + width, point1.get_y() + height)
+ {
+ }
+
+ Rectangle(const Point<T>& point1, const Dimension& dimension) :
+ point1(point1),
+ point2(point1.get_x() + dimension.get_width(),
+ point1.get_y() + dimension.get_height())
+ {
+ }
+
+ Rectangle(const Rectangle<T>& rectangle) :
+ point1(rectangle.point1), point2(rectangle.point2)
+ {
+ }
+
+
+ const Point<T>& get_point1(void) const
+ {
+ return point1;
+ }
+
+ const Point<T>& 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();
+ }
};
};