CGAL 6.1 - Homological Discrete Vector Fields
Loading...
Searching...
No Matches
CGAL::HDVF::Duality_simplicial_complex_tools< CoefficientType > Class Template Reference

#include <CGAL/HDVF/Geometric_chain_complex_tools.h>

Definition

template<typename CoefficientType>
class CGAL::HDVF::Duality_simplicial_complex_tools< CoefficientType >

The class Duality_simplicial_complex_tools is dedicated to Alexander duality for 3D surface meshes.

Starting from a simplicial chain complex (encoding a 3D surface mesh), it provides methods to embed the complex into a larger icosphere and generate a 3D constrained Delaunay triangulation.

Technically, starting from a Simplicial_chain_complex _K, the method simp_complex_bb builds a Simplicial_chain_complex L and a Sub_chain_complex_mask K.

Template Parameters
CoefficientTypea model of the Ring concept providing the ring used to compute homology.
Examples
HDVF/main_dual_hdvf.cpp.

Classes

struct  TripleRes
 Type returned by simp_complex_bb. More...
 

Public Types

typedef Simplicial_chain_complex< CoefficientType > ComplexType
 Type of simplicial chain complex encoding L.
 
typedef Sub_chain_complex_mask< CoefficientType, ComplexTypeSubCCType
 Type of sub chain complex mask encoding the sub complex K.
 

Public Member Functions

 Duality_simplicial_complex_tools ()
 Default constructor.
 

Static Public Member Functions

static TripleRes simplicial_chain_complex_bb (const ComplexType &_K, double BB_ratio=1.5, const string &out_file_prefix="file_K_closed.off")
 Generates a subcomplex \(K\)K and a complex \(L\) with \(K\subseteq L\) from a simplicial complex _K.
 
static Mesh_object_ioexport_meshObject (const ComplexType &_CC)
 Exports a SimpComplex to a MeshObject

 

Member Function Documentation

◆ simplicial_chain_complex_bb()

template<typename CoefficientType >
static TripleRes CGAL::HDVF::Duality_simplicial_complex_tools< CoefficientType >::simplicial_chain_complex_bb ( const ComplexType _K,
double  BB_ratio = 1.5,
const string &  out_file_prefix = "file_K_closed.off" 
)
static

Generates a subcomplex \(K\)K and a complex \(L\) with \(K\subseteq L\) from a simplicial complex _K.

_K is embedded into a larger icosphere and a 3D constrained Delaunay triangulation is generated. Then \(K\), \(L\) and vertices coordinates are extracted and stored in a TripleRes structure.

The following figures shows the resulting complex with an initial Twirl mesh (right - sectional view):

Parameters
[in]_KSimplicial chain complex (working mesh).
[in]BB_ratioRatio of the "closing" icosphere diameter with respect to the diameter of the object's bounding box.
[in]out_file_prefixPrefix of tetgen intermediate files (default: "file_K_closed.off").