From b5ead1a51f547e10b13365acf5e2a1e6e007a5a8 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Sat, 13 Feb 2010 14:00:37 +0100 Subject: added Point, Point3D, Dimension, Rectangle, RgbColor and Texture classes --- src/utils/dimension.cpp | 50 +++++++++++++++++++++++++++++++ src/utils/dimension.hpp | 46 +++++++++++++++++++++++++++++ src/utils/point.cpp | 48 ++++++++++++++++++++++++++++++ src/utils/point.hpp | 46 +++++++++++++++++++++++++++++ src/utils/point_3d.cpp | 43 +++++++++++++++++++++++++++ src/utils/point_3d.hpp | 48 ++++++++++++++++++++++++++++++ src/utils/rectangle.cpp | 78 +++++++++++++++++++++++++++++++++++++++++++++++++ src/utils/rectangle.hpp | 54 ++++++++++++++++++++++++++++++++++ src/utils/rgb_color.cpp | 50 +++++++++++++++++++++++++++++++ src/utils/rgb_color.hpp | 47 +++++++++++++++++++++++++++++ 10 files changed, 510 insertions(+) create mode 100644 src/utils/dimension.cpp create mode 100644 src/utils/dimension.hpp create mode 100644 src/utils/point.cpp create mode 100644 src/utils/point.hpp create mode 100644 src/utils/point_3d.cpp create mode 100644 src/utils/point_3d.hpp create mode 100644 src/utils/rectangle.cpp create mode 100644 src/utils/rectangle.hpp create mode 100644 src/utils/rgb_color.cpp create mode 100644 src/utils/rgb_color.hpp (limited to 'src/utils') 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 -- cgit v1.2.3