From f565f417f386c5d13f73da8b3eca19847dc4367c Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Thu, 22 Mar 2012 16:36:07 +0100 Subject: utils/dimension: added template for types of the metrics --- src/menu/texture.hpp | 6 ++--- src/utils/dimension.cpp | 60 ------------------------------------------------- src/utils/dimension.hpp | 48 ++++++++++++++++++++++++++++++++------- src/utils/rectangle.hpp | 2 +- 4 files changed, 44 insertions(+), 72 deletions(-) delete mode 100644 src/utils/dimension.cpp (limited to 'src') 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 size; public: - TextureSizeException(Dimension size) : size(size) { }; + TextureSizeException(Dimension size) : size(size) { }; virtual ~TextureSizeException() { }; }; @@ -76,7 +76,7 @@ namespace usdx GLuint texture; GLenum texture_format; - Dimension size; + Dimension 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 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& operator=(const Dimension& 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& point1, const Dimension& dimension) : + Rectangle(const Point& point1, const Dimension& dimension) : point1(point1), point2(point1.get_x() + dimension.get_width(), point1.get_y() + dimension.get_height()) -- cgit v1.2.3