of 39 /39
3D Triangulations in 3D Triangulations in http://www.cgal.org http://www.cgal.org Pierre Alliez Pierre Alliez
• Author

• Category

## Documents

• view

213

0

TAGS:

Embed Size (px)

### Transcript of 3D Triangulations in Pierre Alliez.

• 3D Triangulations inhttp://www.cgal.orgPierre Alliez

http://www.cgal.org

3D TriangulationTetrahedron

http://www.cgal.org

OutlineDefinitionsRepresentationTypes of TriangulationsSoftware DesignGeometric TraitsCustomizationExamplesApplications

http://www.cgal.org

OutlineDefinitionsRepresentationTypes of TriangulationsSoftware DesignGeometric TraitsCustomizationExamplesApplications

http://www.cgal.org

Definitions3D Triangulation of a point set A: partition of the convex hull of A into tetrahedra.

http://www.cgal.org

DefinitionsThe cells (3-faces) are such that two cells either do not intersect or share a common facet (2-face), edge (1-face) or vertex (0-face).

http://www.cgal.org

OutlineDefinitionsRepresentationTypes of TriangulationsSoftware DesignGeometric TraitsCustomizationExamplesApplications

http://www.cgal.org

RepresentationCGAL Triangulation: partition of IR3 (add unbounded cell).To deal only with Tetrahedra:subdivide unbounded cell into tetrahedra."infinite" vertex

http://www.cgal.org

RepresentationDealing only with Tetrahedra:each facet incident to exactly two cells.

http://www.cgal.org

3D Triangulation in CGALInput point set

TriangulationFinite tetrahedraOne infinite vertexInfinite tetrahedra

http://www.cgal.org

Infinite Vertex?No valid coordinatesno predicates applicable

http://www.cgal.org

Internal RepresentationCollection of vertices and cells linked together through incidence and adjacency relations (faces and edges are not explicitly represented).verticescell

http://www.cgal.org

http://www.cgal.org

http://www.cgal.org

Orientation of a Cell4 vertices indexed in positive orientation (induced by underlying Euclidean space IR3).0123xyz

http://www.cgal.org

Adjacent Cell IndexingNeighboring cell indexed by i opposite to vertex i.iith neighboringcellcell

http://www.cgal.org

FaceRepresented as a pair {cell, index i}

http://www.cgal.org

EdgeRepresented as a triplet {cell,index i,index j}

ij

http://www.cgal.org

OutlineDefinitionsRepresentationTypes of TriangulationsSoftware DesignGeometric TraitsCustomizationExamplesApplications

http://www.cgal.org

3 Types of TriangulationsDelaunayRegularHierarchy

http://www.cgal.org

Delaunay TriangulationEmpty circle property:the circumscribing sphere of each cell does not contain any other vertex in its interior.

Uniquely defined except in degenerate cases where five points are cospherical (CGAL computes a unique triangulation even in these cases).

http://www.cgal.org

Delaunay TriangulationFully dynamic:point insertionvertex removal

http://www.cgal.org

Delaunay Triangulation

http://www.cgal.org

Regular Triangulation (weighted Delaunay triangulation)Weighted point:p(w) = (p,wp), p IR3, wp IR.pwp

http://www.cgal.org

Regular Triangulation (weighted Delaunay triangulation)Power product:(p(w), z(w)) = ||p-z||2 - wp - wzp(w) & z(w) said to be orthogonal iff = 0

http://www.cgal.org

Regular Triangulation (weighted Delaunay triangulation)4 weighted points have a unique common orthogonal weighted point called power sphere.

http://www.cgal.org

Regular Triangulation (weighted Delaunay triangulation)Let S(w) be a set of weighted points.A sphere z(w) is said to be regular if for all p(w) S(w), (p(w), z(w)) >= 0

A triangulation is regular if the power spheres of all simplices are regular.

http://www.cgal.org

Triangulation HierarchyTriangulation augmented with a hierarchical data structure to allow for efficient point location queries.

http://www.cgal.org

OutlineDefinitionsRepresentationTypes of TriangulationsSoftware DesignGeometric TraitsCustomizationExamplesApplications

http://www.cgal.org

Derivation Diagram(operate on vertex indices in cells)

http://www.cgal.org

Software DesignSeparation between geometry & combinatorics.

Triangulation_3

http://www.cgal.org

Geometric TraitsDefines geometric objects & predicates.

Objects:pointsegmenttriangletetrahedron[weighted point]Predicates:orientation in spaceorientation of coplanar pointsorder of collinear pointsempty sphere property[power test]

http://www.cgal.org

Triangulation Data Structure

http://www.cgal.org

Customization (cells & vertices)

http://www.cgal.org

OutlineDefinitionsRepresentationTypes of TriangulationsSoftware DesignGeometric TraitsCustomizationExamplesApplications

http://www.cgal.org

Construction#include #include

typedef CGAL::Simple_cartesian kernel;typedef CGAL::Triangulation_vertex_base_3 Vb;typedef CGAL::Triangulation_cell_base_3 Cb;typedef CGAL::Triangulation_data_structure_3 Tds;typedef CGAL::Triangulation_3 Triangulation;typedef kernel::Point_3 Point;

Triangulation triangulation;

// insertiontriangulation.insert(Point(0,0,0));triangulation.insert(Point(0,1,0));triangulation.insert(Point(0,0,1));

// insertion from a list of pointsstd::list points;points.push_front(Point(2,0,0));points.push_front(Point(3,2,0));points.push_front(Point(0,1,4));triangulation.insert(points.begin(),points.end());

http://www.cgal.org

Point Location#include #include

typedef CGAL::Simple_cartesian kernel;typedef CGAL::Triangulation_vertex_base_3 Vb;typedef CGAL::Triangulation_cell_base_3 Cb;typedef CGAL::Triangulation_data_structure_3 Tds;typedef CGAL::Triangulation_3 Triangulation;typedef kernel::Point_3 Point;

Triangulation triangulation;

// insertiontriangulation.insert(Point(0,0,0));triangulation.insert(Point(0,1,0));

// locateLocate_type lt;int li, lj;Point p(0,0,0);Cell_handle cell = triangulation.locate(p, lt, li, lj);assert(lt == Triangulation::VERTEX);assert(cell->vertex(li)->point() == p);

http://www.cgal.org

OutlineDefinitionsRepresentationTypes of TriangulationsSoftware DesignGeometric TraitsCustomizationExamplesApplications

http://www.cgal.org

ApplicationsMeshingsimulationnumerical engineeringReverse Engineeringsurface reconstructionEfficient point locationEtc.