Presentation is loading. Please wait.

Presentation is loading. Please wait.

Pierre Alliez The Computational Geometry Algorithm Library.

Similar presentations


Presentation on theme: "Pierre Alliez The Computational Geometry Algorithm Library."— Presentation transcript:

1 http://www.cgal.org Pierre Alliez The Computational Geometry Algorithm Library

2 http://www.cgal.org Goals Promote Research in Computational Geometry (CG)Promote Research in Computational Geometry (CG) “make the large body of geometric algorithms developed in the field of CG available for industrial applications”“make the large body of geometric algorithms developed in the field of CG available for industrial applications” -> robust programs

3 http://www.cgal.org CG Impact Task Force Report, 1996 Among the key recommendations: Production and distribution of usable (and useful) geometric codesProduction and distribution of usable (and useful) geometric codes Reward structure for implementations in academiaReward structure for implementations in academia

4 http://www.cgal.org The CGAL Project Started in 1996 as joined project of: ETH Zurich ETH Zurich INRIA INRIA MPI für Informatik MPI für Informatik Tel-Aviv U Tel-Aviv U Utrecht U Utrecht U Trier U Trier U FU Berlin FU Berlin

5 http://www.cgal.org Structure of CGAL Basic Library Support Library: Configuration, Assertions Visualization File I/O Number Types Generators STL extensions Point, Segment,... Predicates Kernel TriangulationsArrangements Halfedge Datastructure Convex HullOptimisation...

6 The Basic Library

7 http://www.cgal.org Convex Hull 2D Convex Hull2D Convex Hull –5 algorithms for points –CH of a simple polyline Convexity TestConvexity Test Extremal PointsExtremal Points 3D Convex Hull3D Convex Hull –static, incremental, dynamic

8 http://www.cgal.org Planar Subdivisions Framework for arrangements of 2D curvesFramework for arrangements of 2D curves –based on planar maps –based on topological maps –Models exist for polylines, circles, conic arcs OperationsOperations –point location, overlay, ray shooting,..

9 http://www.cgal.org Search Structures Multi dimensional data structuresMulti dimensional data structures –range tree, segment tree –kD tree OperationsOperations –window queries –nearest neighbor

10 http://www.cgal.org Triangulations in 2D and 3D Delaunay, regular, constrained, conformal DelaunayDelaunay, regular, constrained, conformal Delaunay Rich APIsRich APIs –fast point location, –insertion, removal of points and constraints –traversal along a line –traversal of the triangulation

11 http://www.cgal.org Triangulations 2D, 3D Alpha shapes2D, 3D Alpha shapes 2D, 3D Voronoi diagram, power diagram2D, 3D Voronoi diagram, power diagram 2D Delaunay mesh, 3D Delaunay mesh2D Delaunay mesh, 3D Delaunay mesh Natural neighbors*Natural neighbors* k-order Voronoi diagram 2*k-order Voronoi diagram 2* Voronoi of segments *Voronoi of segments * Voronoi of circlesVoronoi of circles (*) on-going

12 http://www.cgal.org Optimization Based on LP/QP solversBased on LP/QP solvers –Smallest enclosing circle/ellipse in 2D –Smallest enclosing sphere in dD –Rectangular p center, for p = 2, 3, 4 –Polytope distances in dD –Smallest enclosing annulus in dD –Smallest enclosing sphere of spheres *

13 http://www.cgal.org Nef Polyhedra 2,3*

14 http://www.cgal.org and... dD Delaunay/VoronoidD Delaunay/Voronoi Polygon decompositionPolygon decomposition Polyhedral surfacesPolyhedral surfaces Halfedge data structureHalfedge data structure

15 Library Design Let’s play Lego

16 http://www.cgal.org int min(int a, int b) float min(float a, float b) template CompType min(CompType a, CompType b) { return (a<b) ? a : b; } BigInt n(9), m(8), r; r = min( n, m ); BigInt is a model for the concept CompType Generic Programming [Musser 89]

17 http://www.cgal.org Parameterization of Kernel Classes Point_3 CartesianHomogeneous double Gmpq leda::Real int Gmpz Concepts: NumberType and Kernel core::Expr

18 http://www.cgal.org template template class Delaunay_triangulation_2 { void insert(Geometry::Point t) void insert(Geometry::Point t) { if(Geometry::orientation(p,q,t)==..) if(Geometry::orientation(p,q,t)==..) if(Geometry::incircle(p,q,r,t)) if(Geometry::incircle(p,q,r,t)) }}; Parameterization of Datastructures works with CGAL kernelsworks with CGAL kernels works with projections kernelsworks with projections kernels write thin glue layer for your kernelwrite thin glue layer for your kernel

19 http://www.cgal.org Value for Users High quality of most componentsHigh quality of most components Interoperability of componentsInteroperability of components Rich functionalityRich functionality –allows rapid prototyping –allows focus on application domain –Reduces time to market (publication)


Download ppt "Pierre Alliez The Computational Geometry Algorithm Library."

Similar presentations


Ads by Google