Commit 3ced02ab authored by Martin Heistermann's avatar Martin Heistermann

Use explicit template instantiation to speed up compile times

parent 613183cd
......@@ -63,6 +63,9 @@ typedef OpenVolumeMesh::GeometryKernel<ACG::Vec3d, OpenVolumeMesh::HexahedralMes
/// Typedef for a mesh object containing a polyhedral mesh
typedef VolumeMeshObject<HexahedralMesh> HexahedralMeshObject;
extern template class VolumeMeshObject<HexahedralMesh>;
extern template class ACG::SceneGraph::VolumeMeshNodeT<HexahedralMesh>;
#include <ObjectTypes/HexahedralMesh/PluginFunctionsHexahedralMesh.hh>
//=============================================================================
......
......@@ -41,6 +41,7 @@
#include <OpenFlipper/common/Types.hh>
#include <OpenFlipper/BasePlugin/PluginFunctions.hh>
#include <ObjectTypes/HexahedralMesh/PluginFunctionsHexahedralMesh.hh>
......
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (C) 2001-2014 by Computer Graphics Group, RWTH Aachen *
* www.openflipper.org *
* *
*--------------------------------------------------------------------------- *
* This file is part of OpenFlipper. *
* *
* OpenFlipper is free software: you can redistribute it and/or modify *
* it under the terms of the GNU Lesser General Public License as *
* published by the Free Software Foundation, either version 3 of *
* the License, or (at your option) any later version with the *
* following exceptions: *
* *
* If other files instantiate templates or use macros *
* or inline functions from this file, or you compile this file and *
* link it with other files to produce an executable, this file does *
* not by itself cause the resulting executable to be covered by the *
* GNU Lesser General Public License. This exception does not however *
* invalidate any other reasons why the executable file might be *
* covered by the GNU Lesser General Public License. *
* *
* OpenFlipper 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 for more details. *
* *
* You should have received a copy of the GNU LesserGeneral Public *
* License along with OpenFlipper. If not, *
* see <http://www.gnu.org/licenses/>. *
* *
\*===========================================================================*/
#include "HexahedralMesh.hh"
#include <ObjectTypes/VolumeMeshObject/VolumeMeshObjectT.cc>
#include <ObjectTypes/VolumeMeshObject/VolumeMeshNodeT.cc>
#include <ObjectTypes/VolumeMeshObject/VolumeMeshNodeGLCompatT.cc>
template class VolumeMeshObject<HexahedralMesh>;
template class ACG::SceneGraph::VolumeMeshNodeT<HexahedralMesh>;
......@@ -41,6 +41,8 @@
#include <OpenFlipper/common/Types.hh>
#include <OpenFlipper/BasePlugin/PluginFunctions.hh>
#include <ObjectTypes/PolyhedralMesh/PluginFunctionsPolyhedralMesh.hh>
......
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (C) 2001-2014 by Computer Graphics Group, RWTH Aachen *
* www.openflipper.org *
* *
*--------------------------------------------------------------------------- *
* This file is part of OpenFlipper. *
* *
* OpenFlipper is free software: you can redistribute it and/or modify *
* it under the terms of the GNU Lesser General Public License as *
* published by the Free Software Foundation, either version 3 of *
* the License, or (at your option) any later version with the *
* following exceptions: *
* *
* If other files instantiate templates or use macros *
* or inline functions from this file, or you compile this file and *
* link it with other files to produce an executable, this file does *
* not by itself cause the resulting executable to be covered by the *
* GNU Lesser General Public License. This exception does not however *
* invalidate any other reasons why the executable file might be *
* covered by the GNU Lesser General Public License. *
* *
* OpenFlipper 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 for more details. *
* *
* You should have received a copy of the GNU LesserGeneral Public *
* License along with OpenFlipper. If not, *
* see <http://www.gnu.org/licenses/>. *
* *
\*===========================================================================*/
#include "PolyhedralMesh.hh"
#include <ObjectTypes/VolumeMeshObject/VolumeMeshObjectT.cc>
#include <ObjectTypes/VolumeMeshObject/VolumeMeshNodeT.cc>
#include <ObjectTypes/VolumeMeshObject/VolumeMeshNodeGLCompatT.cc>
template class VolumeMeshObject<PolyhedralMesh>;
template class ACG::SceneGraph::VolumeMeshNodeT<PolyhedralMesh>;
......@@ -62,6 +62,9 @@ typedef OpenVolumeMesh::GeometryKernel<ACG::Vec3d, OpenVolumeMesh::TopologyKerne
/// Typedef for a mesh object containing a polyhedral mesh
typedef VolumeMeshObject<PolyhedralMesh> PolyhedralMeshObject;
extern template class VolumeMeshObject<PolyhedralMesh>;
extern template class ACG::SceneGraph::VolumeMeshNodeT<PolyhedralMesh>;
#include <ObjectTypes/PolyhedralMesh/PluginFunctionsPolyhedralMesh.hh>
//=============================================================================
......
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (C) 2001-2014 by Computer Graphics Group, RWTH Aachen *
* www.openflipper.org *
* *
*--------------------------------------------------------------------------- *
* This file is part of OpenFlipper. *
* *
* OpenFlipper is free software: you can redistribute it and/or modify *
* it under the terms of the GNU Lesser General Public License as *
* published by the Free Software Foundation, either version 3 of *
* the License, or (at your option) any later version with the *
* following exceptions: *
* *
* If other files instantiate templates or use macros *
* or inline functions from this file, or you compile this file and *
* link it with other files to produce an executable, this file does *
* not by itself cause the resulting executable to be covered by the *
* GNU Lesser General Public License. This exception does not however *
* invalidate any other reasons why the executable file might be *
* covered by the GNU Lesser General Public License. *
* *
* OpenFlipper 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 for more details. *
* *
* You should have received a copy of the GNU LesserGeneral Public *
* License along with OpenFlipper. If not, *
* see <http://www.gnu.org/licenses/>. *
* *
\*===========================================================================*/
#include "TetrahedralMesh.hh"
#include <ObjectTypes/VolumeMeshObject/VolumeMeshObjectT.cc>
#include <ObjectTypes/VolumeMeshObject/VolumeMeshNodeT.cc>
#include <ObjectTypes/VolumeMeshObject/VolumeMeshNodeGLCompatT.cc>
template class VolumeMeshObject<TetrahedralMesh>;
template class ACG::SceneGraph::VolumeMeshNodeT<TetrahedralMesh>;
......@@ -58,6 +58,9 @@ typedef OpenVolumeMesh::TetrahedralGeometryKernel<ACG::Vec3d, OpenVolumeMesh::Te
/// Typedef for a mesh object containing a polyhedral mesh
typedef VolumeMeshObject<TetrahedralMesh> TetrahedralMeshObject;
extern template class VolumeMeshObject<TetrahedralMesh>;
extern template class ACG::SceneGraph::VolumeMeshNodeT<TetrahedralMesh>;
#include <ObjectTypes/TetrahedralMesh/PluginFunctionsTetrahedralMesh.hh>
//=============================================================================
......
......@@ -286,10 +286,7 @@ private:
} // namespace SceneGraph
} // namespace ACG
//=============================================================================
#if defined(INCLUDE_TEMPLATES) && !defined(VOLUMEMESHNODET_CC)
#include "VolumeMeshNodeT.cc"
#include "VolumeMeshNodeGLCompatT.cc"
#endif
//=============================================================================
#endif // VOLUMEMESHNODE_HH
//=============================================================================
......
......@@ -245,8 +245,4 @@ public:
//=============================================================================
#if defined(INCLUDE_TEMPLATES) && !defined(VOLUMEMESHOBJECTT_CC)
#define VOLUMEMESHOBJECT_TEMPLATES
#include "VolumeMeshObjectT.cc"
#endif
#endif
......@@ -43,6 +43,7 @@
#include "TypeHexahedralMesh.hh"
#include <ObjectTypes/Plane/Plane.hh>
#include <OpenFlipper/common/GlobalOptions.hh>
#include <OpenFlipper/BasePlugin/PluginFunctions.hh>
#include <QInputDialog>
#include <QMenu>
......
......@@ -43,6 +43,7 @@
#include "TypePolyhedralMesh.hh"
#include <ObjectTypes/Plane/Plane.hh>
#include <OpenFlipper/common/GlobalOptions.hh>
#include <OpenFlipper/BasePlugin/PluginFunctions.hh>
#include <QMenu>
#include <QInputDialog>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment