-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathREADME
More file actions
32 lines (24 loc) · 1.28 KB
/
README
File metadata and controls
32 lines (24 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Author: Yotam Gingold <yotam (strudel) yotamgingold.com>
License: Public Domain. (I, Yotam Gingold, the author, release this code into the public domain.)
GitHub: https://github.com/yig/halfedge
trimesh.h trimesh_t:
A C++ half-edge data structure for a triangle mesh with no external dependencies whatsoever that
- handles boundaries (the first outgoing halfedge at a vertex is always a boundary halfedge)
(and the last outgoing halfedge is always the opposite of a boundary halfedge))
- stores topology only; it does not "own" or store your vertices;
rather it looks only at faces and only while building the half-edges
(make sure to re-create the half-edges anytime the faces change!)
example.cpp:
A very simple file to show usage of trimesh_t.
Compile it with the one-liner at the top.
Usage:
std::vector< trimesh::triangle_t > triangles;
// ... fill triangles ...
std::vector< trimesh::edge_t > edges;
trimesh::unordered_edges_from_triangles( triangles.size(), &triangles[0], edges );
trimesh::trimesh_t mesh;
mesh.build( num_vertices, triangles.size(), &triangles[0], edges.size(), &edges[0] );
// Use 'mesh' to walk the connectivity.
Version History:
- 2012-01-12:
initial release