3D Triangulations in Pierre Alliez.

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

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.