3D Triangulations in Pierre Alliez.
-
Author
junior-bradley -
Category
Documents
-
view
213 -
download
0
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
CellAccess to:4 incident vertices4 adjacent cells
http://www.cgal.org
VertexAccess to:1 incident cell
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.