| 84 | |
| 85 | template<class Mesh, template<class> class MeshObjectType, class Type> |
| 86 | class MeshObject |
| 87 | : |
| 88 | public MeshObjectType<Mesh> |
| 89 | { |
| 90 | |
| 91 | protected: |
| 92 | |
| 93 | // Reference to Mesh |
| 94 | const Mesh& mesh_; |
| 95 | |
| 96 | |
| 97 | public: |
| 98 | |
| 99 | // Constructors |
| 100 | |
| 101 | explicit MeshObject(const Mesh& mesh); |
| 102 | |
| 103 | static const Type& New(const Mesh& mesh); |
| 104 | |
| 105 | template<class Data1> |
| 106 | static const Type& New |
| 107 | ( |
| 108 | const Mesh& mesh, |
| 109 | const Data1& d |
| 110 | ); |
| 111 | |
| 112 | template<class Data1, class Data2> |
| 113 | static const Type& New |
| 114 | ( |
| 115 | const Mesh& mesh, |
| 116 | const Data1&, |
| 117 | const Data2& |
| 118 | ); |
| 119 | |
| 120 | template<class Data1, class Data2, class Data3> |
| 121 | static const Type& New |
| 122 | ( |
| 123 | const Mesh& mesh, |
| 124 | const Data1&, |
| 125 | const Data2&, |
| 126 | const Data3& |
| 127 | ); |
| 128 | |
| 129 | template<class Data1, class Data2, class Data3, class Data4> |
| 130 | static const Type& New |
| 131 | ( |
| 132 | const Mesh& mesh, |
| 133 | const Data1&, |
| 134 | const Data2&, |
| 135 | const Data3&, |
| 136 | const Data4& |
| 137 | ); |
| 138 | |
| 139 | |
| 140 | // Destructors |
| 141 | |
| 142 | virtual ~MeshObject(); |
| 143 | |