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