3#include <boost/container/flat_map.hpp>
15template <
typename UnaryPredicate>
25template <
typename UnaryPredicate>
29 std::vector<Vertex *> vertexMap(source.
nVertices(),
nullptr);
37 vertexMap[vertex.getID()] = &v;
41 auto fetch = [&vertexMap](
int vid) ->
Vertex * {
43 return vertexMap.at(vid);
45 return vertexMap[vid];
51 auto vertex1 = fetch(edge.vertex(0).getID());
52 auto vertex2 = fetch(edge.vertex(1).getID());
61 auto vertex1 = fetch(triangle.vertex(0).getID());
62 auto vertex2 = fetch(triangle.vertex(1).getID());
63 auto vertex3 = fetch(triangle.vertex(2).getID());
73 auto vertex1 = fetch(tetra.vertex(0).getID());
74 auto vertex2 = fetch(tetra.vertex(1).getID());
75 auto vertex3 = fetch(tetra.vertex(2).getID());
76 auto vertex4 = fetch(tetra.vertex(3).getID());
86template <
typename UnaryPredicate>
Linear edge of a mesh, defined by two Vertex objects.
Container and creator for meshes.
Triangle & createTriangle(Edge &edgeOne, Edge &edgeTwo, Edge &edgeThree)
Creates and initializes a Triangle object.
VertexContainer & vertices()
Returns modifieable container holding all vertices.
std::size_t nVertices() const
Returns the number of vertices.
bool hasConnectivity() const
TetraContainer & tetrahedra()
Returns modifiable container holding all tetrahedra.
Tetrahedron & createTetrahedron(Vertex &vertexOne, Vertex &vertexTwo, Vertex &vertexThree, Vertex &vertexFour)
Creates and initializes a Tetrahedron object.
TriangleContainer & triangles()
Returns modifiable container holding all triangles.
Edge & createEdge(Vertex &vertexOne, Vertex &vertexTwo)
Creates and initializes an Edge object.
Vertex & createVertex(const Eigen::Ref< const Eigen::VectorXd > &coords)
Creates and initializes a Vertex object.
EdgeContainer & edges()
Returns modifiable container holding all edges.
Tetrahedron of a mesh, defined by 4 vertices.
Triangle of a mesh, defined by three vertices.
void setTagged(bool tagged)
void setGlobalIndex(int globalIndex)
void setOwner(bool owner)
provides Mesh, Data and primitives.
void filterMesh(Mesh &destination, const Mesh &source, UnaryPredicate &&p)
void filterMeshWithConnectivity(Mesh &destination, const Mesh &source, UnaryPredicate p)
void filterMeshWithoutConnectivity(Mesh &destination, const Mesh &source, UnaryPredicate p)