![]() |
Inviwo 0.9.12-pre
Inviwo documentation
|
A half edge datastructure of the mesh topology. Note: only the topology is stored, no vertex data. More...
#include <halfedges.h>
Classes | |
| class | EdgeIter |
Public Member Functions | |
| HalfEdges (Mesh::MeshInfo info, const IndexBuffer &indexBuffer) | |
| Construct from MeshInfo and index buffer. | |
| HalfEdges (const Mesh &mesh) | |
| Construct from Mesh, only triangles are considered. | |
| IndexBuffer | createIndexBuffer () const |
| Creates a index buffer for triangles with connectivity 'None'. | |
| IndexBuffer | createIndexBufferWithAdjacency () const |
| Creates a index buffer for triangles with connectivity 'Adjacency'. | |
| EdgeIter | faceToEdge (std::uint32_t faceIndex) const |
| EdgeIter | vertexToEdge (std::uint32_t vertexIndex) const |
| auto | faces () const |
| auto | vertices () const |
A half edge datastructure of the mesh topology. Note: only the topology is stored, no vertex data.
Code ideas taken from https://github.com/yig/halfedge and http://prideout.net/blog/?p=54, both are public domain (11/12/2017).
v2────────────────v3 edge │ vertex face next twin
╱ ╲ ◀────e5─────▲ ╱ ─────┼────────────────────────
╱ ▲ ╲ ╲ ╱ ╱ e0 │ v0 f1 e1 -
╱ ╱ ╲ ╲ ╲ f1 ╱ ╱ e1 │ v1 f1 e2 e3
╱ ╱ ╲ ╲e3 e4 ╱ e2 │ v2 f1 e0 -
╱e2 e1 ╲ ╲ ╱ ╱ e3 │ v2 f2 e4 e1
╱ ╱ f0 ╲ ╲ ╲ ╱ ╱ e4 │ v1 f2 e5 -
╱ ╱ ╲ ╲ ▼ ╱ e5 │ v3 f2 e3 -
╱ ▼────e0─────▶ ╲ ╱
v0────────────────v1