Euclid
Geometry Processing and Shape Analysis in C++
|
Topology. More...
Chain complex. | |
template<typename Mesh > | |
using | Euclid::VertexChain = std::vector< vertex_t< Mesh >> |
template<typename Mesh > | |
using | Euclid::VertexChains = std::vector< VertexChain< Mesh >> |
template<typename Mesh > | |
bool | Euclid::is_chain (const Mesh &mesh, const VertexChain< Mesh > &chain) |
Test if the target is a valid chain. More... | |
template<typename Mesh > | |
bool | Euclid::is_loop (const Mesh &mesh, const VertexChain< Mesh > &chain) |
Test if the target is a valid loop. More... | |
Generator. | |
template<typename Mesh > | |
VertexChains< Mesh > | Euclid::greedy_homology_generators (const Mesh &mesh, double accept=0.05) |
Greedy homology generators. More... | |
template<typename Mesh > | |
VertexChains< Mesh > | Euclid::greedy_homotopy_generators (const Mesh &mesh, vertex_t< Mesh > v) |
Greedy homotopy generators. More... | |
Mesh topology. | |
template<typename Mesh > | |
int | Euclid::num_boundaries (const Mesh &mesh) |
The number of boundaries/holes. | |
template<typename Mesh > | |
std::vector< halfedge_t< Mesh > > | Euclid::boundary_components (const Mesh &mesh) |
Find the boundary components. More... | |
template<typename Mesh > | |
int | Euclid::euler_characteristic (const Mesh &mesh) |
Euler characteristic. More... | |
template<typename Mesh > | |
int | Euclid::genus (const Mesh &mesh) |
Genus. More... | |
This package provides topology related operations.
using Euclid::VertexChain = typedef std::vector<vertex_t<Mesh>> |
std::vector< halfedge_t< Mesh > > Euclid::boundary_components | ( | const Mesh & | mesh | ) |
Each component can be retrived by a halfedge.
int Euclid::euler_characteristic | ( | const Mesh & | mesh | ) |
\(X = V - E + F\)
int Euclid::genus | ( | const Mesh & | mesh | ) |
\(2G = 2 - X - B\)
VertexChains< Mesh > Euclid::greedy_homology_generators | ( | const Mesh & | mesh, |
double | accept = 0.05 |
||
) |
Reference
[1] Erickson, J., Whittlesey, K. Greedy Optimal Homotopy and Homology Generators.
[2] Crane, K. https://www.cs.cmu.edu/~kmcrane/Projects/LoopsOnSurfaces/
VertexChains< Mesh > Euclid::greedy_homotopy_generators | ( | const Mesh & | mesh, |
vertex_t< Mesh > | v | ||
) |
Reference
[1] Erickson, J., Whittlesey, K. Greedy Optimal Homotopy and Homology Generators.
bool Euclid::is_chain | ( | const Mesh & | mesh, |
const VertexChain< Mesh > & | chain | ||
) |
Consecutive vertices should be connected by a valid edge.
bool Euclid::is_loop | ( | const Mesh & | mesh, |
const VertexChain< Mesh > & | chain | ||
) |
A loop is a chain whose head and tail are connected.