A C++ half-edge data structure for a triangle mesh with no external dependencies whatsoever. Public domain.
yig/halfedge
master
Name already in use
Code
-
Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.
- Open with GitHub Desktop
- Download ZIP
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
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
About
A C++ half-edge data structure for a triangle mesh with no external dependencies whatsoever. Public domain.