10#ifndef MVE_VERTEX_INFO_HEADER
11#define MVE_VERTEX_INFO_HEADER
48 void remove_adjacent_face (std::size_t
face_id);
49 void remove_adjacent_vertex (std::size_t
vertex_id);
50 void replace_adjacent_face (std::size_t old_id, std::size_t new_id);
51 void replace_adjacent_vertex (std::size_t old_id, std::size_t new_id);
72 bool is_mesh_edge (std::size_t v1, std::size_t v2)
const;
75 void get_faces_for_edge (std::size_t v1, std::size_t v2,
76 std::vector<std::size_t>* adjacent_faces)
const;
80 VertexInfo const& operator[] (std::size_t
id)
const;
83 std::size_t size (
void)
const;
87 std::vector<VertexInfo> vertex_info;
93MeshInfo::MeshInfo (
void)
100 this->initialize(mesh);
104MeshInfo::operator[] (std::size_t
id)
106 return this->vertex_info[id];
110MeshInfo::operator[] (std::size_t
id)
const
112 return this->vertex_info[id];
116MeshInfo::at (std::size_t
id)
118 return this->vertex_info[id];
122MeshInfo::at (std::size_t
id)
const
124 return this->vertex_info[id];
128MeshInfo::size (
void)
const
130 return this->vertex_info.size();
134MeshInfo::clear (
void)
136 std::vector<VertexInfo>().swap(this->vertex_info);
140MeshInfo::VertexInfo::remove_adjacent_face (std::size_t
face_id)
142 this->faces.erase(std::remove(this->faces.begin(), this->faces.end(),
147MeshInfo::VertexInfo::remove_adjacent_vertex (std::size_t
vertex_id)
149 this->verts.erase(std::remove(this->verts.begin(), this->verts.end(),
154MeshInfo::VertexInfo::replace_adjacent_face (std::size_t old_id,
157 std::replace(this->faces.begin(), this->faces.end(), old_id, new_id);
161MeshInfo::VertexInfo::replace_adjacent_vertex (std::size_t old_id,
164 std::replace(this->verts.begin(), this->verts.end(), old_id, new_id);
std::vector< std::size_t > AdjacentVertices
std::vector< std::size_t > AdjacentFaces
VertexClass
Vertex classification according to adjacent triangles.
@ VERTEX_CLASS_COMPLEX
Vertex with more than one triangle fan.
@ VERTEX_CLASS_BORDER
Vertex with a single but open fan of triangles.
@ VERTEX_CLASS_SIMPLE
Vertex with a single closed fan of adjacent triangles.
Triangle mesh representation.
std::shared_ptr< TriangleMesh const > ConstPtr
#define MVE_NAMESPACE_BEGIN
#define MVE_NAMESPACE_END
Per-vertex classification and adjacency information.