Line 67... |
Line 67... |
67 |
const int* indices);
|
67 |
const int* indices);
|
68 |
|
68 |
|
69 |
/// Build a manifold from a TriMesh
|
69 |
/// Build a manifold from a TriMesh
|
70 |
void build(const Geometry::TriMesh& mesh);
|
70 |
void build(const Geometry::TriMesh& mesh);
|
71 |
|
71 |
|
72 |
/// Add a face to the Manifold
|
72 |
/** Add a face to the Manifold.
|
- |
|
73 |
This function is provided a vector of points in space and transforms it into a single
|
- |
|
74 |
polygonal face calling build. It is purely for convenience. */
|
73 |
FaceID add_face(std::vector<Manifold::Vec> points);
|
75 |
FaceID add_face(std::vector<Manifold::Vec> points);
|
74 |
|
76 |
|
75 |
// /** Removes a face from the Manifold. If it is an interior face it is simply replaces
|
77 |
/** Removes a face from the Manifold. If it is an interior face it is simply replaces
|
76 |
// by an InvalidFaceID. If the face contains boundary edges, these go away. */
|
78 |
by an InvalidFaceID. If the face contains boundary edges, these are removed. Situations
|
- |
|
79 |
may arise where the mesh is no longer manifold because the situation at a boundary vertex
|
- |
|
80 |
is not homeomorphic to a half disk. This, we can probably ignore since from the data
|
- |
|
81 |
structure point of view it is not really a problem that a vertex is incident on two holes -
|
- |
|
82 |
a hole can be seen as a special type of face. The function returns false if the FaceID is
|
- |
|
83 |
not valid, otherwise the function must complete. */
|
77 |
// bool remove_face(FaceID fid);
|
84 |
bool remove_face(FaceID fid);
|
78 |
//
|
85 |
|
79 |
// /** Remove an edge from the Manifold.
|
86 |
/** Remove an edge from the Manifold.
|
80 |
// This function will remove the faces on either side and the edge itself in the process. */
|
87 |
This function will remove the faces on either side and the edge itself in the process. Thus,
|
- |
|
88 |
it is a simple application of remove_face. */
|
81 |
// bool remove_edge(HalfEdgeID hid);
|
89 |
bool remove_edge(HalfEdgeID hid);
|
82 |
//
|
90 |
|
83 |
// /** Remove a vertex from the Manifold.
|
91 |
/** Remove a vertex from the Manifold.
|
84 |
// This function merges all faces around the vertex into one and then removes
|
92 |
This function merges all faces around the vertex into one and then removes
|
85 |
// this resulting face. */
|
93 |
this resulting face. */
|
86 |
// bool remove_vertex(VertexID vid);
|
94 |
bool remove_vertex(VertexID vid);
|
87 |
|
95 |
|
88 |
/// number of vertices
|
96 |
/// number of vertices
|
89 |
size_t no_vertices() const { return kernel.no_vertices();}
|
97 |
size_t no_vertices() const { return kernel.no_vertices();}
|
90 |
/// number of active faces
|
98 |
/// number of active faces
|
91 |
size_t no_faces() const { return kernel.no_faces();}
|
99 |
size_t no_faces() const { return kernel.no_faces();}
|