From 32a73395e233de41ce19c052dc34a2c450b700a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 6 Apr 2012 02:09:51 +0200 Subject: [PATCH] Plane primitive. --- src/Primitives/CMakeLists.txt | 1 + src/Primitives/Plane.cpp | 29 ++++++++++++++++++++++++++ src/Primitives/Plane.h | 39 +++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 src/Primitives/Plane.cpp create mode 100644 src/Primitives/Plane.h diff --git a/src/Primitives/CMakeLists.txt b/src/Primitives/CMakeLists.txt index a8e8c5ce0..17a80f388 100644 --- a/src/Primitives/CMakeLists.txt +++ b/src/Primitives/CMakeLists.txt @@ -2,6 +2,7 @@ set(MagnumPrimitives_SRCS Capsule.cpp Cube.cpp Icosphere.cpp + Plane.cpp UVSphere.cpp ) diff --git a/src/Primitives/Plane.cpp b/src/Primitives/Plane.cpp new file mode 100644 index 000000000..f12f6fa8a --- /dev/null +++ b/src/Primitives/Plane.cpp @@ -0,0 +1,29 @@ +/* + Copyright © 2010, 2011, 2012 Vladimír Vondruš + + This file is part of Magnum. + + Magnum is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 3 + only, as published by the Free Software Foundation. + + Magnum 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 Lesser General Public License version 3 for more details. +*/ + +#include "Plane.h" + +using namespace std; + +namespace Magnum { namespace Primitives { + +Plane::Plane(): MeshData(Mesh::Primitive::TriangleStrip, nullptr, {new vector{ + {1.0f, -1.0f, 0.0f}, + {1.0f, 1.0f, 0.0f}, + {-1.0f, -1.0f, 0.0f}, + {-1.0f, 1.0f, 0.0f} +}}, {}, {}) {} + +}} diff --git a/src/Primitives/Plane.h b/src/Primitives/Plane.h new file mode 100644 index 000000000..7ad887ca9 --- /dev/null +++ b/src/Primitives/Plane.h @@ -0,0 +1,39 @@ +#ifndef Magnum_Primitives_Plane_h +#define Magnum_Primitives_Plane_h +/* + Copyright © 2010, 2011, 2012 Vladimír Vondruš + + This file is part of Magnum. + + Magnum is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License version 3 + only, as published by the Free Software Foundation. + + Magnum 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 Lesser General Public License version 3 for more details. +*/ + +/** @file + * @brief Class Magnum::Primitives::Plane + */ + +#include "Trade/MeshData.h" + +namespace Magnum { namespace Primitives { + +/** +@brief %Plane primitive + +2x2 plane orthogonal to Z axis. +*/ +class Plane: public Trade::MeshData { + public: + /** @brief Constructor */ + Plane(); +}; + +}} + +#endif