diff --git a/MeshLib/Elements/Hex.h b/MeshLib/Elements/Hex.h index dab38b430912d66a85bd70e3454cd7c2cb963cd9..f691bad8cc15a8d38d67e3d1e1a273b7dadb66ab 100644 --- a/MeshLib/Elements/Hex.h +++ b/MeshLib/Elements/Hex.h @@ -19,6 +19,9 @@ #include "HexRule8.h" #include "HexRule20.h" +extern template class MeshLib::TemplateElement<MeshLib::HexRule20>; +extern template class MeshLib::TemplateElement<MeshLib::HexRule8>; + namespace MeshLib { typedef TemplateElement<HexRule8> Hex; typedef TemplateElement<HexRule20> Hex20; diff --git a/MeshLib/Elements/Line.h b/MeshLib/Elements/Line.h index 5616c32120adc75ef77e1d6b6016ce553426a5dd..392e3061be1f6aacf4dcf17dc0052d46ce0310b0 100644 --- a/MeshLib/Elements/Line.h +++ b/MeshLib/Elements/Line.h @@ -19,6 +19,9 @@ #include "LineRule2.h" #include "LineRule3.h" +extern template class MeshLib::TemplateElement<MeshLib::LineRule2>; +extern template class MeshLib::TemplateElement<MeshLib::LineRule3>; + namespace MeshLib { typedef TemplateElement<LineRule2> Line; diff --git a/MeshLib/Elements/Prism.h b/MeshLib/Elements/Prism.h index 037f75200b0e8c726ed94a4fa8bb2446a02d0a93..82f8b23e001c6fe25b03dd082a803140b40e0a3f 100644 --- a/MeshLib/Elements/Prism.h +++ b/MeshLib/Elements/Prism.h @@ -19,6 +19,9 @@ #include "PrismRule6.h" #include "PrismRule15.h" +extern template class MeshLib::TemplateElement<MeshLib::PrismRule15>; +extern template class MeshLib::TemplateElement<MeshLib::PrismRule6>; + namespace MeshLib { typedef TemplateElement<PrismRule6> Prism; diff --git a/MeshLib/Elements/Pyramid.h b/MeshLib/Elements/Pyramid.h index d4e1628bc6ae21c11f05338e8eff90cbe79bddab..a2653d6eb874a43d4955288a111eecfbc8fa72df 100644 --- a/MeshLib/Elements/Pyramid.h +++ b/MeshLib/Elements/Pyramid.h @@ -19,6 +19,9 @@ #include "PyramidRule5.h" #include "PyramidRule13.h" +extern template class MeshLib::TemplateElement<MeshLib::PyramidRule13>; +extern template class MeshLib::TemplateElement<MeshLib::PyramidRule5>; + namespace MeshLib { typedef TemplateElement<PyramidRule5> Pyramid; diff --git a/MeshLib/Elements/Quad.h b/MeshLib/Elements/Quad.h index c8bdb1d05da63a1f1a654604c3d0ad5fab5c706a..750a436c3f6e53f745b3464f514ad8302adccba6 100644 --- a/MeshLib/Elements/Quad.h +++ b/MeshLib/Elements/Quad.h @@ -20,6 +20,10 @@ #include "QuadRule8.h" #include "QuadRule9.h" +extern template class MeshLib::TemplateElement<MeshLib::QuadRule4>; +extern template class MeshLib::TemplateElement<MeshLib::QuadRule8>; +extern template class MeshLib::TemplateElement<MeshLib::QuadRule9>; + namespace MeshLib { diff --git a/MeshLib/Elements/TemplateElement.cpp b/MeshLib/Elements/TemplateElement.cpp new file mode 100644 index 0000000000000000000000000000000000000000..134775fb3c550fc1aa3f551a9bcc9a230a9390fa --- /dev/null +++ b/MeshLib/Elements/TemplateElement.cpp @@ -0,0 +1,34 @@ +/** + * \copyright + * Copyright (c) 2012-2015, OpenGeoSys Community (http://www.opengeosys.org) + * Distributed under a Modified BSD License. + * See accompanying file LICENSE.txt or + * http://www.opengeosys.org/project/license + * + */ + +#include "TemplateElement.h" + +#include "MeshLib/Elements/Hex.h" +#include "MeshLib/Elements/Line.h" +#include "MeshLib/Elements/Prism.h" +#include "MeshLib/Elements/Pyramid.h" +#include "MeshLib/Elements/Quad.h" +#include "MeshLib/Elements/Tet.h" +#include "MeshLib/Elements/Tri.h" + +template class MeshLib::TemplateElement<MeshLib::HexRule20 >; +template class MeshLib::TemplateElement<MeshLib::HexRule8 >; +template class MeshLib::TemplateElement<MeshLib::LineRule2 >; +template class MeshLib::TemplateElement<MeshLib::LineRule3 >; +template class MeshLib::TemplateElement<MeshLib::PrismRule15 >; +template class MeshLib::TemplateElement<MeshLib::PrismRule6 >; +template class MeshLib::TemplateElement<MeshLib::PyramidRule13>; +template class MeshLib::TemplateElement<MeshLib::PyramidRule5 >; +template class MeshLib::TemplateElement<MeshLib::QuadRule4 >; +template class MeshLib::TemplateElement<MeshLib::QuadRule8 >; +template class MeshLib::TemplateElement<MeshLib::QuadRule9 >; +template class MeshLib::TemplateElement<MeshLib::TetRule10 >; +template class MeshLib::TemplateElement<MeshLib::TetRule4 >; +template class MeshLib::TemplateElement<MeshLib::TriRule3 >; +template class MeshLib::TemplateElement<MeshLib::TriRule6 >; diff --git a/MeshLib/Elements/Tet.h b/MeshLib/Elements/Tet.h index f8fd7b598d26d41c37115a8bdc6f498642d60d4c..ad55b78c7074c165b4eb6b60679be3e3a30e003c 100644 --- a/MeshLib/Elements/Tet.h +++ b/MeshLib/Elements/Tet.h @@ -19,6 +19,9 @@ #include "TetRule4.h" #include "TetRule10.h" +extern template class MeshLib::TemplateElement<MeshLib::TetRule10>; +extern template class MeshLib::TemplateElement<MeshLib::TetRule4>; + namespace MeshLib { typedef TemplateElement<TetRule4> Tet; diff --git a/MeshLib/Elements/Tri.h b/MeshLib/Elements/Tri.h index 80ea9c6e449b1820c0182549bd587e85c1d41962..7bfc72ba7b61e6c71512a693e34e45788e9a650f 100644 --- a/MeshLib/Elements/Tri.h +++ b/MeshLib/Elements/Tri.h @@ -19,6 +19,10 @@ #include "TriRule3.h" #include "TriRule6.h" + +extern template class MeshLib::TemplateElement<MeshLib::TriRule3>; +extern template class MeshLib::TemplateElement<MeshLib::TriRule6>; + namespace MeshLib { typedef TemplateElement<TriRule3> Tri;