aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2010-02-13 14:00:37 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2013-01-05 17:17:47 +0100
commitb5ead1a51f547e10b13365acf5e2a1e6e007a5a8 (patch)
treef6f3fbb63a4fca6c529d3c25ba4eb4d3d20a3138
parenta073f3e02752b0483e6a9301cbf02695239c7783 (diff)
downloadusdx-b5ead1a51f547e10b13365acf5e2a1e6e007a5a8.tar.gz
usdx-b5ead1a51f547e10b13365acf5e2a1e6e007a5a8.tar.xz
usdx-b5ead1a51f547e10b13365acf5e2a1e6e007a5a8.zip
added Point, Point3D, Dimension, Rectangle, RgbColor and Texture classes
-rw-r--r--src/base/texture_colorized.cpp32
-rw-r--r--src/base/texture_colorized.hpp52
-rw-r--r--src/base/texture_plain.cpp32
-rw-r--r--src/base/texture_plain.hpp62
-rw-r--r--src/base/texture_transparent.cpp32
-rw-r--r--src/base/texture_transparent.hpp53
-rw-r--r--src/utils/dimension.cpp50
-rw-r--r--src/utils/dimension.hpp46
-rw-r--r--src/utils/point.cpp48
-rw-r--r--src/utils/point.hpp46
-rw-r--r--src/utils/point_3d.cpp43
-rw-r--r--src/utils/point_3d.hpp48
-rw-r--r--src/utils/rectangle.cpp78
-rw-r--r--src/utils/rectangle.hpp54
-rw-r--r--src/utils/rgb_color.cpp50
-rw-r--r--src/utils/rgb_color.hpp47
16 files changed, 773 insertions, 0 deletions
diff --git a/src/base/texture_colorized.cpp b/src/base/texture_colorized.cpp
new file mode 100644
index 00000000..89e3ae54
--- /dev/null
+++ b/src/base/texture_colorized.cpp
@@ -0,0 +1,32 @@
+/*
+ * 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 "texture_colorized.hpp"
+
+namespace usdx
+{
+
+};
diff --git a/src/base/texture_colorized.hpp b/src/base/texture_colorized.hpp
new file mode 100644
index 00000000..56b06112
--- /dev/null
+++ b/src/base/texture_colorized.hpp
@@ -0,0 +1,52 @@
+/*
+ * 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$
+ */
+
+#ifndef TEXTURE_COLORIZED_HPP
+#define TEXTURE_COLORIZED_HPP
+
+#include "texture_transparent.hpp"
+#include "utils/rgb_color.hpp"
+
+namespace usdx
+{
+ /**
+ * This class represents a texture like TextureTransparent but the hue
+ * value from the HSV color model is replaced with a different value.
+ * @see: TextureTransparent
+ */
+ class TextureColorized : public TextureTransparent
+ {
+ private:
+ RgbColor color;
+ float intensity;
+
+ public:
+ TextureColorized();
+ virtual ~TextureColorized();
+ };
+};
+
+#endif
diff --git a/src/base/texture_plain.cpp b/src/base/texture_plain.cpp
new file mode 100644
index 00000000..262ff766
--- /dev/null
+++ b/src/base/texture_plain.cpp
@@ -0,0 +1,32 @@
+/*
+ * 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 "texture_plain.hpp"
+
+namespace usdx
+{
+
+};
diff --git a/src/base/texture_plain.hpp b/src/base/texture_plain.hpp
new file mode 100644
index 00000000..3fc76072
--- /dev/null
+++ b/src/base/texture_plain.hpp
@@ -0,0 +1,62 @@
+/*
+ * 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$
+ */
+
+#ifndef TEXTURE_PLAIN_HPP
+#define TEXTURE_PLAIN_HPP
+
+#include <boost/filesystem.hpp>
+#include <GL/gl.h>
+#include "utils/point_3d.hpp"
+#include "utils/dimension.hpp"
+#include "utils/rectangle.hpp"
+
+namespace usdx
+{
+ class TexturePlain
+ {
+ private:
+ GLuint tex_num;
+ Point3D position;
+ Dimension size;
+
+ Dimension scale; ///< for dynamic scaling
+ float rotation; ///< radiant (0 - 2*pi)
+
+ Dimension tex; ///< percentage of size to use [0..1]
+ Rectangle tex_rect;
+
+ boost::filesystem::wpath filename; ///< experimental for
+ ///handling cache
+ ///images. maybe it's useful
+ ///for dynamic skins
+
+ public:
+ TexturePlain();
+ virtual ~TexturePlain();
+ };
+};
+
+#endif
diff --git a/src/base/texture_transparent.cpp b/src/base/texture_transparent.cpp
new file mode 100644
index 00000000..77aa8a14
--- /dev/null
+++ b/src/base/texture_transparent.cpp
@@ -0,0 +1,32 @@
+/*
+ * 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 "texture_transparent.hpp"
+
+namespace usdx
+{
+
+};
diff --git a/src/base/texture_transparent.hpp b/src/base/texture_transparent.hpp
new file mode 100644
index 00000000..9cb8bba4
--- /dev/null
+++ b/src/base/texture_transparent.hpp
@@ -0,0 +1,53 @@
+/*
+ * 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$
+ */
+
+#ifndef TEXTURE_TRANSPARENT_HPP
+#define TEXTURE_TRANSPARENT_HPP
+
+#include "texture_plain.hpp"
+
+namespace usdx
+{
+ /**
+ * This class represents a texture like TexturePlain but with the
+ * ability to set a alpha value to paint this texture transparent.
+ * @see: TexturePlain
+ */
+ class TextureTransparent : public TexturePlain
+ {
+ private:
+ float alpha;
+
+ public:
+ TextureTransparent();
+ virtual ~TextureTransparent();
+
+ float get_alpha(void) const;
+ void set_alpha(float alpha);
+ };
+};
+
+#endif
diff --git a/src/utils/dimension.cpp b/src/utils/dimension.cpp
new file mode 100644
index 00000000..11a1feb3
--- /dev/null
+++ b/src/utils/dimension.cpp
@@ -0,0 +1,50 @@
+/*
+ * 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(float width, float height) :
+ width(width), height(height)
+ {
+ }
+
+ Dimension::Dimension(const Dimension& dimension) :
+ width(dimension.width), height(dimension.height)
+ {
+ }
+
+ float Dimension::get_width(void) const
+ {
+ return width;
+ }
+
+ float Dimension::get_height(void) const
+ {
+ return height;
+ }
+};
diff --git a/src/utils/dimension.hpp b/src/utils/dimension.hpp
new file mode 100644
index 00000000..656efefb
--- /dev/null
+++ b/src/utils/dimension.hpp
@@ -0,0 +1,46 @@
+/*
+ * 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$
+ */
+
+#ifndef DIMENSION_HPP
+#define DIMENSION_HPP
+
+namespace usdx
+{
+ class Dimension
+ {
+ private:
+ float width;
+ float height;
+ public:
+ Dimension(float width, float height);
+ Dimension(const Dimension& dimension);
+
+ float get_width(void) const;
+ float get_height(void) const;
+ };
+};
+
+#endif
diff --git a/src/utils/point.cpp b/src/utils/point.cpp
new file mode 100644
index 00000000..f4fd0184
--- /dev/null
+++ b/src/utils/point.cpp
@@ -0,0 +1,48 @@
+/*
+ * 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 "point.hpp"
+
+namespace usdx
+{
+ Point::Point(float x, float y) : x(x), y(y)
+ {
+ }
+
+ Point::Point(const Point& point) : x(point.x), y(point.y)
+ {
+ }
+
+ float Point::get_x(void) const
+ {
+ return x;
+ }
+
+ float Point::get_y(void) const
+ {
+ return y;
+ }
+};
diff --git a/src/utils/point.hpp b/src/utils/point.hpp
new file mode 100644
index 00000000..f4d23c4f
--- /dev/null
+++ b/src/utils/point.hpp
@@ -0,0 +1,46 @@
+/*
+ * 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$
+ */
+
+#ifndef POINT_HPP
+#define POINT_HPP
+
+namespace usdx
+{
+ class Point
+ {
+ private:
+ float x;
+ float y;
+ public:
+ Point(float x, float y);
+ Point(const Point& point);
+
+ float get_x(void) const;
+ float get_y(void) const;
+ };
+};
+
+#endif
diff --git a/src/utils/point_3d.cpp b/src/utils/point_3d.cpp
new file mode 100644
index 00000000..5f8f877a
--- /dev/null
+++ b/src/utils/point_3d.cpp
@@ -0,0 +1,43 @@
+/*
+ * 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 "point_3d.hpp"
+
+namespace usdx
+{
+ Point3D::Point3D(float x, float y, float z) : Point(x, y), z(z)
+ {
+ }
+
+ Point3D::Point3D(const Point3D& point) : Point(point), z(point.z)
+ {
+ }
+
+ float Point3D::get_z(void) const
+ {
+ return z;
+ }
+};
diff --git a/src/utils/point_3d.hpp b/src/utils/point_3d.hpp
new file mode 100644
index 00000000..0087c08a
--- /dev/null
+++ b/src/utils/point_3d.hpp
@@ -0,0 +1,48 @@
+/*
+ * 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$
+ */
+
+#ifndef POINT_3D_HPP
+#define POINT_3D_HPP
+
+#include "point.hpp"
+
+
+namespace usdx
+{
+ class Point3D : public Point
+ {
+ private:
+ float z;
+ public:
+ Point3D(float x, float y, float z);
+ Point3D(const Point3D& point);
+
+ float get_z(void) const;
+ };
+
+};
+
+#endif
diff --git a/src/utils/rectangle.cpp b/src/utils/rectangle.cpp
new file mode 100644
index 00000000..b31e514c
--- /dev/null
+++ b/src/utils/rectangle.cpp
@@ -0,0 +1,78 @@
+/*
+ * 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 "rectangle.hpp"
+
+namespace usdx
+{
+ Rectangle::Rectangle(float x1, float y1, float x2, float y2) :
+ point1(x1, y1), point2(x2, y2)
+ {
+ }
+
+ Rectangle::Rectangle(const Point& point1, const Point& point2) :
+ point1(point1), point2(point2)
+ {
+ }
+
+ Rectangle::Rectangle(const Point& point1, float width, float height) :
+ point1(point1),
+ point2(point1.get_x() + width, point1.get_y() + height)
+ {
+ }
+
+ Rectangle::Rectangle(const Point& point1, const Dimension& dimension) :
+ point1(point1),
+ point2(point1.get_x() + dimension.get_width(),
+ point1.get_y() + dimension.get_height())
+ {
+ }
+
+ Rectangle::Rectangle(const Rectangle& rectangle) :
+ point1(rectangle.point1), point2(rectangle.point2)
+ {
+ }
+
+ const Point& Rectangle::get_point1(void) const
+ {
+ return point1;
+ }
+
+ const Point& Rectangle::get_point2(void) const
+ {
+ return point2;
+ }
+
+ const float Rectangle::get_width(void) const
+ {
+ return point2.get_x() - point1.get_x();
+ }
+
+ const float Rectangle::get_height(void) const
+ {
+ return point2.get_y() - point1.get_y();
+ }
+};
diff --git a/src/utils/rectangle.hpp b/src/utils/rectangle.hpp
new file mode 100644
index 00000000..0dc456ef
--- /dev/null
+++ b/src/utils/rectangle.hpp
@@ -0,0 +1,54 @@
+/*
+ * 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$
+ */
+
+#ifndef RECTANGLE_HPP
+#define RECTANGLE_HPP
+
+#include "utils/point.hpp"
+#include "utils/dimension.hpp"
+
+namespace usdx
+{
+ class Rectangle
+ {
+ private:
+ 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;
+ };
+};
+
+#endif
diff --git a/src/utils/rgb_color.cpp b/src/utils/rgb_color.cpp
new file mode 100644
index 00000000..04c10ba5
--- /dev/null
+++ b/src/utils/rgb_color.cpp
@@ -0,0 +1,50 @@
+/*
+ * 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 "rgb_color.hpp"
+
+namespace usdx
+{
+ RgbColor::RgbColor(float red, float green, float blue) :
+ red(red), green(green), blue(blue)
+ {
+ }
+
+ float RgbColor::get_red(void) const
+ {
+ return red;
+ }
+
+ float RgbColor::get_green(void) const
+ {
+ return green;
+ }
+
+ float RgbColor::get_blue(void) const
+ {
+ return blue;
+ }
+};
diff --git a/src/utils/rgb_color.hpp b/src/utils/rgb_color.hpp
new file mode 100644
index 00000000..f5b36e7a
--- /dev/null
+++ b/src/utils/rgb_color.hpp
@@ -0,0 +1,47 @@
+/*
+ * 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$
+ */
+
+#ifndef RGB_COLOR_HPP
+#define RGB_COLOR_HPP
+
+namespace usdx
+{
+ class RgbColor
+ {
+ private:
+ float red;
+ float green;
+ float blue;
+ public:
+ RgbColor(float red, float green, float blue);
+
+ float get_red(void) const;
+ float get_green(void) const;
+ float get_blue(void) const;
+ };
+};
+
+#endif