aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2012-03-22 16:36:07 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2013-01-05 17:17:51 +0100
commitf565f417f386c5d13f73da8b3eca19847dc4367c (patch)
treeb97a90936792fdfe382a0f703d643ca623468f6d
parent4f31d71c8164a84a45aa1e2408e0e2cb54ff30bb (diff)
downloadusdx-f565f417f386c5d13f73da8b3eca19847dc4367c.tar.gz
usdx-f565f417f386c5d13f73da8b3eca19847dc4367c.tar.xz
usdx-f565f417f386c5d13f73da8b3eca19847dc4367c.zip
utils/dimension: added template for types of the metrics
-rw-r--r--src/menu/texture.hpp6
-rw-r--r--src/utils/dimension.cpp60
-rw-r--r--src/utils/dimension.hpp48
-rw-r--r--src/utils/rectangle.hpp2
4 files changed, 44 insertions, 72 deletions
diff --git a/src/menu/texture.hpp b/src/menu/texture.hpp
index 6e1ea640..19197b0a 100644
--- a/src/menu/texture.hpp
+++ b/src/menu/texture.hpp
@@ -49,10 +49,10 @@ namespace usdx
class TextureSizeException : public TextureLoadException
{
private:
- Dimension size;
+ Dimension<int> size;
public:
- TextureSizeException(Dimension size) : size(size) { };
+ TextureSizeException(Dimension<int> size) : size(size) { };
virtual ~TextureSizeException() { };
};
@@ -76,7 +76,7 @@ namespace usdx
GLuint texture;
GLenum texture_format;
- Dimension size;
+ Dimension<int> size;
float rotation; ///< radiant (0 - 2*pi)
diff --git a/src/utils/dimension.cpp b/src/utils/dimension.cpp
deleted file mode 100644
index f83636ff..00000000
--- a/src/utils/dimension.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * UltraStar Deluxe - Karaoke Game
- *
- * UltraStar Deluxe is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- */
-
-#include "dimension.hpp"
-
-namespace usdx
-{
- Dimension::Dimension(unsigned int width, unsigned int height) :
- width(width), height(height)
- {
- }
-
- Dimension::Dimension(const Dimension& dimension) :
- width(dimension.width), height(dimension.height)
- {
- }
-
- unsigned int Dimension::get_width(void) const
- {
- return width;
- }
-
- void Dimension::set_width(unsigned int width)
- {
- this->width = width;
- }
-
- unsigned int Dimension::get_height(void) const
- {
- return height;
- }
-
- void Dimension::set_height(unsigned int height)
- {
- this->height = height;
- }
-};
diff --git a/src/utils/dimension.hpp b/src/utils/dimension.hpp
index 4518fbb8..788adbf9 100644
--- a/src/utils/dimension.hpp
+++ b/src/utils/dimension.hpp
@@ -29,20 +29,52 @@
namespace usdx
{
+ template <class T>
class Dimension
{
private:
- unsigned int width;
- unsigned int height;
+ T width;
+ T height;
+
public:
- Dimension(unsigned int width, unsigned int height);
- Dimension(const Dimension& dimension);
+ Dimension(T width, T height) :
+ width(width), height(height)
+ {
+ }
+
+ Dimension(const Dimension& dimension) :
+ width(dimension.width), height(dimension.height)
+ {
+ }
+
+ Dimension<T>& operator=(const Dimension<T>& dimension)
+ {
+ width = dimension.width;
+ height = dimension.height;
+ return *this;
+ }
+
+
+
+ T get_width(void) const
+ {
+ return width;
+ }
+
+ void set_width(const T& value)
+ {
+ width = value;
+ }
- unsigned int get_width(void) const;
- void set_width(unsigned int width);
+ T get_height(void) const
+ {
+ return height;
+ }
- unsigned int get_height(void) const;
- void set_height(unsigned int height);
+ void set_height(const T& value)
+ {
+ height = value;
+ }
};
};
diff --git a/src/utils/rectangle.hpp b/src/utils/rectangle.hpp
index e2fddc78..016e86d3 100644
--- a/src/utils/rectangle.hpp
+++ b/src/utils/rectangle.hpp
@@ -56,7 +56,7 @@ namespace usdx
{
}
- Rectangle(const Point<T>& point1, const Dimension& dimension) :
+ Rectangle(const Point<T>& point1, const Dimension<T>& dimension) :
point1(point1),
point2(point1.get_x() + dimension.get_width(),
point1.get_y() + dimension.get_height())