From 79a36bd373c17597d9c55e433fb9c764696d4fcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Thu, 12 Jan 2012 01:06:13 +0100 Subject: [PATCH] New namespace and base class for mesh tools. --- src/MeshTools/AbstractTool.h | 54 ++++++++++++++++++++++++++++++++++++ src/MeshTools/CMakeLists.txt | 4 +++ 2 files changed, 58 insertions(+) create mode 100644 src/MeshTools/AbstractTool.h create mode 100644 src/MeshTools/CMakeLists.txt diff --git a/src/MeshTools/AbstractTool.h b/src/MeshTools/AbstractTool.h new file mode 100644 index 000000000..b2a650cd1 --- /dev/null +++ b/src/MeshTools/AbstractTool.h @@ -0,0 +1,54 @@ +#ifndef Magnum_MeshTools_AbstractTool_h +#define Magnum_MeshTools_AbstractTool_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::MeshTools::AbstractTool + */ + +#include "MeshBuilder.h" + +namespace Magnum { + +/** + * @brief %Mesh tools + * + * Tools for generating, optimizing and cleaning meshes. + */ +namespace MeshTools { + +/** + * @brief Base class for mesh tools + * + * Provides access to internals of MeshBuilder instance for subclasses. + */ +template class AbstractTool { + public: + /** + * @brief Constructor + * @param builder %Mesh builder to operate on + */ + inline AbstractTool(MeshBuilder& builder): builder(builder), vertices(builder._vertices), indices(builder._indices) {} + + protected: + MeshBuilder& builder; /**< @brief Builder instance */ + std::vector& vertices; /**< @brief Builder vertices */ + std::vector& indices; /**< @brief Builder indices */ +}; + +}} + +#endif diff --git a/src/MeshTools/CMakeLists.txt b/src/MeshTools/CMakeLists.txt new file mode 100644 index 000000000..e70e0d132 --- /dev/null +++ b/src/MeshTools/CMakeLists.txt @@ -0,0 +1,4 @@ +if(BUILD_TESTS) + enable_testing() + add_subdirectory(Test) +endif()