27#include <easy3d/core/surface_mesh.h>
28#include <easy3d/util/initializer.h>
61 mesh->add_triangle(v0, v1, v3);
62 mesh->add_triangle(v1, v2, v3);
63 mesh->add_triangle(v2, v0, v3);
64 mesh->add_triangle(v0, v2, v1);
70int main(
int argc,
char** argv) {
74 SurfaceMesh* mesh = old_mesh_from_previous_example();
76 std::cout <<
"----------------------------------------\n";
77 std::cout <<
"The incident vertices of each vertex" << std::endl;
78 std::cout <<
"----------------------------------------\n";
82 std::cout <<
"incident vertices of vertex " << v <<
": ";
86 std::cout << vv <<
" ";
92 std::cout << vv <<
" ";
96 std::cout << std::endl;
99 std::cout <<
"\n--------------------------------------\n";
100 std::cout <<
"The incident outgoing/ingoing edges of each vertex" << std::endl;
101 std::cout <<
"----------------------------------------\n";
105 std::cout <<
"incident outgoing/ingoing edges of vertex " << v <<
": ";
109 std::cout << h <<
"/" << mesh->
opposite(h) <<
" ";
115 std::cout << h <<
"/" << mesh->
opposite(h) <<
" ";
117 }
while (cir != end);
119 std::cout << std::endl;
122 std::cout <<
"\n--------------------------------------\n";
123 std::cout <<
"The incident faces of each vertex" << std::endl;
124 std::cout <<
"----------------------------------------\n";
128 std::cout <<
"incident faces of vertex " << v <<
": ";
131 for (
auto f : mesh->
faces(v))
132 std::cout << f <<
" ";
138 std::cout << f <<
" ";
140 }
while (cir != end);
142 std::cout << std::endl;
145 std::cout <<
"\n--------------------------------------\n";
146 std::cout <<
"The incident vertices of each face" << std::endl;
147 std::cout <<
"----------------------------------------\n";
150 for (
auto f : mesh->
faces()) {
151 std::cout <<
"incident vertices of face " << f <<
": ";
155 std::cout << v <<
" ";
161 std::cout << v <<
" ";
163 }
while (cir != end);
165 std::cout << std::endl;
168 std::cout <<
"\n--------------------------------------\n";
169 std::cout <<
"The incident half-edges of each face" << std::endl;
170 std::cout <<
"----------------------------------------\n";
173 for (
auto f : mesh->
faces()) {
174 std::cout <<
"half-edges around face " << f <<
": ";
178 std::cout << h <<
" ";
184 std::cout << h <<
" ";
186 }
while (cir != end);
188 std::cout << std::endl;
191 std::cout <<
"\n--------------------------------------\n";
192 std::cout <<
"The two end points of each edge" << std::endl;
193 std::cout <<
"----------------------------------------\n";
196 for (
auto e : mesh->
edges()) {
197 std::cout <<
"the two end points of edge " << e <<
": ";
199 std::cout << vs <<
" ";
201 std::cout << vt <<
" " << std::endl;
204 std::cout <<
"\n--------------------------------------\n";
205 std::cout <<
"The two faces connected by each edge" << std::endl;
206 std::cout <<
"----------------------------------------\n";
209 for (
auto e : mesh->
edges()) {
210 std::cout <<
"the two faces connected by edge " << e <<
": ";
213 std::cout <<
"NULL" <<
" ";
215 std::cout << mesh->
face(h0) <<
" ";
219 std::cout <<
"NULL" <<
" ";
221 std::cout << mesh->
face(h1) <<
" ";
223 std::cout << std::endl;
Definition: surface_mesh.h:754
Definition: surface_mesh.h:920
Definition: surface_mesh.h:678
Definition: surface_mesh.h:843
Definition: surface_mesh.h:595
A halfedge data structure for polygonal meshes of 2-manifold.
Definition: surface_mesh.h:52
bool is_border(Vertex v) const
returns whether v is a boundary vertex
Definition: surface_mesh.h:1176
EdgeContainer edges() const
returns edge container for C++11 range-based for-loops
Definition: surface_mesh.h:1667
VertexContainer vertices() const
returns vertex container for C++11 range-based for-loops
Definition: surface_mesh.h:1631
Halfedge opposite(Halfedge h) const
returns the opposite halfedge of h
Definition: surface_mesh.h:1260
Halfedge halfedge(Edge e, unsigned int i) const
returns the i'th halfedge of edge e. i has to be 0 or 1.
Definition: surface_mesh.h:1307
FaceContainer faces() const
returns face container for C++11 range-based for-loops
Definition: surface_mesh.h:1685
HalfedgeContainer halfedges() const
returns halfedge container for C++11 range-based for-loops
Definition: surface_mesh.h:1649
Face face(Halfedge h) const
returns the face incident to halfedge h
Definition: surface_mesh.h:1229
Vertex vertex(Edge e, unsigned int i) const
returns the i'th vertex of edge e. i has to be 0 or 1.
Definition: surface_mesh.h:1314
Definition: collider.cpp:182
void initialize(bool use_log_file, bool use_setting_file, const std::string &resource_dir)
Initialization of Easy3D.
Definition: initializer.cpp:35
Definition: surface_mesh.h:134
Definition: surface_mesh.h:114
Definition: surface_mesh.h:104