This example shows how to construct a mesh from its vertices and known connectivity.
27#include <easy3d/core/surface_mesh.h>
28#include <easy3d/core/surface_mesh_builder.h>
29#include <easy3d/util/initializer.h>
39int main(
int argc,
char** argv) {
64 const std::vector<vec3> points = {
81 mesh.add_triangle(v0, v1, v3);
82 mesh.add_triangle(v1, v2, v3);
83 mesh.add_triangle(v2, v0, v3);
84 mesh.add_triangle(v0, v2, v1);
87 else if (option == 2) {
103 LOG(ERROR) <<
"option must be 1 or 2";
105 std::cout <<
"#face: " << mesh.n_faces() << std::endl;
106 std::cout <<
"#vertex: " << mesh.n_vertices() << std::endl;
107 std::cout <<
"#edge: " << mesh.n_edges() << std::endl;
A helper class for constructing manifold surface mesh models.
Definition surface_mesh_builder.h:55
void end_surface(bool log_issues=true)
Finalize surface construction.
Definition surface_mesh_builder.cpp:69
Face add_triangle(Vertex v1, Vertex v2, Vertex v3)
Add a new triangle face connecting vertices v1, v2, and v3.
Definition surface_mesh_builder.cpp:354
Vertex add_vertex(const vec3 &p)
Add a vertex to the mesh.
Definition surface_mesh_builder.cpp:228
void begin_surface()
Begin surface construction.
Definition surface_mesh_builder.cpp:54
A halfedge data structure for polygonal meshes of 2-manifold.
Definition surface_mesh.h:51
Definition collider.cpp:182
This type represents a vertex (internally it is basically an index).
Definition surface_mesh.h:135