Outline. CGAL par l exemplel. Current Partners. The CGAL Project.

Similar documents
The Computational Geometry Algorithms Library. Andreas Fabri GeometryFactory

Tools, Generic Programming, CGAL, and 2D Arrangement of CGAL

Computational Geometry Algorithms Library. Pierre Alliez INRIA

Geometric Algorithms in Three Dimensions Tutorial. FSP Seminar, Strobl,

Voronoi diagram and Delaunay triangulation

Problèmes de robustesse en géométrie algorithmique

Möbius Transformations in Scientific Computing. David Eppstein

Computational Geometry

GEOMETRIC TOOLS FOR COMPUTER GRAPHICS

APPLIED aspects of COMPUTATIONAL GEOMETRY. Dan Halperin School of Computer Science Tel Aviv University

Outline of the presentation

Voronoi diagrams Delaunay Triangulations. Pierre Alliez Inria

Introduction to the Computational Geometry Algorithms Library CGAL

Course 16 Geometric Data Structures for Computer Graphics. Voronoi Diagrams

Voronoi Diagrams in the Plane. Chapter 5 of O Rourke text Chapter 7 and 9 of course text

High-Dimensional Computational Geometry. Jingbo Shang University of Illinois at Urbana-Champaign Mar 5, 2018

ACS. Python, Scilab and Ipe interfaces to CGAL. Sébastien Loriot Naceur Meskini Sylvain Pion. ACS Technical Report No.

Week 7 Convex Hulls in 3D

Other Voronoi/Delaunay Structures

Combinatorial Geometry & Topology arising in Game Theory and Optimization

COMPUTATIONAL GEOMETRY

Lecture 17: Solid Modeling.... a cubit on the one side, and a cubit on the other side Exodus 26:13

Tutorial 3 Comparing Biological Shapes Patrice Koehl and Joel Hass

CSG obj. oper3. obj1 obj2 obj3. obj5. obj4

Chapter 8. Voronoi Diagrams. 8.1 Post Oce Problem

Surface Mesh Generation

Geometric Modeling Mortenson Chapter 11. Complex Model Construction

COMP331/557. Chapter 2: The Geometry of Linear Programming. (Bertsimas & Tsitsiklis, Chapter 2)

Computational Geometry Lecture Duality of Points and Lines

Flavor of Computational Geometry. Convex Hull in 2D. Shireen Y. Elhabian Aly A. Farag University of Louisville

Voronoi Diagram. Xiao-Ming Fu

Geometric and Solid Modeling. Problems

CS 532: 3D Computer Vision 14 th Set of Notes

Hang Si. Weierstrass Institute for Applied Analysis and Stochastics Berlin, Germany. Tetrahedron II

Technical Section. Tribox bounds for three-dimensional objects

Solving problems with Cgal: an example using the 2D Apollonius package

CS-235 Computational Geometry

Collision Detection. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering

Computational Geometry Algorithms Library. Geographic information Systems

Solid Modelling. Graphics Systems / Computer Graphics and Interfaces COLLEGE OF ENGINEERING UNIVERSITY OF PORTO

The Arithmetic Toolbox in

Lecture 3 (CGAL) Panos Giannopoulos, Dror Atariah AG TI WS 2012/13

Computational Geometry for Imprecise Data

be a polytope. has such a representation iff it contains the origin in its interior. For a generic, sort the inequalities so that

Advanced Algorithms Computational Geometry Prof. Karen Daniels. Fall, 2012

Question. Why is the third shape not convex?

2D Geometry. Pierre Alliez Inria Sophia Antipolis

Topology and Boundary Representation. The ACIS boundary representation (B-rep) of a model is a hierarchical decomposition of the model s topology:

Voronoi Diagrams. A Voronoi diagram records everything one would ever want to know about proximity to a set of points

3D convex hulls. Computational Geometry [csci 3250] Laura Toma Bowdoin College

Linear Programming in Small Dimensions

Triangle meshes I. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2017

Convex Geometry arising in Optimization

Planar Graphs. 1 Graphs and maps. 1.1 Planarity and duality

Constructive Solid Geometry and Procedural Modeling. Stelian Coros

Collision and Proximity Queries

Basics of Combinatorial Topology

Triangle meshes I. CS 4620 Lecture 2

Optimal detection of intersections between convex polyhedra

CGAL - The Computational Geometry Algorithms Library

CS133 Computational Geometry

Linear Complexity Hexahedral Mesh Generation

Convex Hulls (3D) O Rourke, Chapter 4

Lecture 2 Unstructured Mesh Generation

Multi-View Matching & Mesh Generation. Qixing Huang Feb. 13 th 2017

CS 372: Computational Geometry Lecture 10 Linear Programming in Fixed Dimension

CS S Lecture February 13, 2017

Tiling Three-Dimensional Space with Simplices. Shankar Krishnan AT&T Labs - Research

Optimal Compression of a Polyline with Segments and Arcs

Approximating Polygonal Objects by Deformable Smooth Surfaces

Triangle meshes I. CS 4620 Lecture Kavita Bala (with previous instructor Marschner) Cornell CS4620 Fall 2015 Lecture 2

66 III Complexes. R p (r) }.

Preferred directions for resolving the non-uniqueness of Delaunay triangulations

Introduction to 2D and 3D Computer Graphics. Realistic Rendering. -- Solids Modeling --

We have set up our axioms to deal with the geometry of space but have not yet developed these ideas much. Let s redress that imbalance.

G 6i try. On the Number of Minimal 1-Steiner Trees* Discrete Comput Geom 12:29-34 (1994)

Voronoi Diagrams and Delaunay Triangulation slides by Andy Mirzaian (a subset of the original slides are used here)

Luiz Fernando Martha André Pereira

Computational Geometry. Definition, Application Areas, and Course Overview

Correctness. The Powercrust Algorithm for Surface Reconstruction. Correctness. Correctness. Delaunay Triangulation. Tools - Voronoi Diagram

DISCRETE DIFFERENTIAL GEOMETRY: AN APPLIED INTRODUCTION Keenan Crane CMU /858B Fall 2017

FAST POINT LOCATION, RAY SHOOTING AND INTERSECTION TEST FOR 3D NEF POLYHEDRA

Physically-Based Modeling and Animation. University of Missouri at Columbia

The Medial Axis of the Union of Inner Voronoi Balls in the Plane

Mission Statement. Make the large body of geometric algorithms developed in the field of computational geometry available for industrial applications

Rigidity of ball-polyhedra via truncated Voronoi and Delaunay complexes

Surface Modeling. Polygon Tables. Types: Generating models: Polygon Surfaces. Polygon surfaces Curved surfaces Volumes. Interactive Procedural

Algorithms for GIS. Spatial data: Models and representation (part I) Laura Toma. Bowdoin College

Convex Hulls in Three Dimensions. Polyhedra

Delaunay Triangulation

Topological Issues in Hexahedral Meshing

Computational Geometry. Algorithm Design (10) Computational Geometry. Convex Hull. Areas in Computational Geometry

Linear programming and duality theory

Approximate Nearest Neighbor Problem: Improving Query Time CS468, 10/9/2006

Lecture 16: Voronoi Diagrams and Fortune s Algorithm

Efi Fogel, Dan Halperin, Lutz Kettner, Monique Teillaud, Ron Wein, and Nicola Wolpert

3D Modeling: Solid Models

A Flavor of Topology. Shireen Elhabian and Aly A. Farag University of Louisville January 2010

CAD & Computational Geometry Course plan

Introduction to Voronoi Diagrams and Delaunay Triangulations

Transcription:

CGAL par l exemplel Computational Geometry Algorithms Library Raphaëlle Chaine Journées Informatique et GéomG ométrie 1 er Juin 2006 - LIRIS Lyon Outline Overview Strengths Design Structure Kernel Convex Hull Algorithms Polygons and Polyhedra Polygon and Polyhedron Operations Arrangements Triangulations and Delaunay Triangulations Voronoi Diagrams Meshing Search Structures Geometric Optimization Interpolation Kinetic Data Structures Overview CGAL: C++ library basic geometric primitives and operations collection: standard data structures geometric algorithms http://www.cgal.org GeometryFactory: http://www.geometryfactory.com/ Licenses: Industrial Development Industrial Research Academic Development Open source The CGAL Project Current Partners Started in 1996 as joined project of: ETH Zurich INRIA MPI für Informatik Tel-Aviv U Utrecht U Trier U FU Berlin FU Berlin Geometry Factory

Development Process Editorial board receives/reviews/approves submissions Developer manual Developer meetings Version management system Daily internal release Daily testsuite runs all supported platforms Bug tracking system 1,200 C++ classes 400K lines of code 2,200 pages manual 40 developer years CGAL in Figures Supported platforms: Linux, Irix,, Solaris, Windows g++, SGI CC, SunPro CC, VC++, Intel Release cycle: 12 months 10,000 downloads per year 800 registered users 50 active developers Robustness Efficiency Flexibility Ease of use Strengths Robustness Strengths Naïve implementations can: loop crash produce incorrect output Design Paradigms: Generic programming Templated C++, STL Design Paradigms: Generic programming Templated C++, STL Exact computing Make sure that the control flow in the implementation corresponds to the control flow with exact real arithmetic. Branching (predicate) f <0 >0 =0

Structure of Geometric Algorithms Examples input numerical tests decide branching predicates constructions combinatorial structure geometric embedding Delaunay triangulation only predicates required Voronoi diagram constructions necessary Robustness Efficiency Flexibility Ease of use Strengths? Robust Geometric Computing Computing with: Floating point numbers: fast Exact numbers: robust Key remark: exact geometric computing exact arithmetic filtered predicates & constructions Generic Programming Generic Programming int min(int a, int b) { return (a<b)? a : b; } float min(float a, float b) { return (a<b)? a : b; }

Generic Programming Structure template < CompType > CompType min(comptype a, CompType b) { return (a<b)? a : b; } Triangulations Arrangements Halfedge Datastructure Convex Hull Optimisation... BigInt n(9), m(8), r; r = min( n, m ); BigInt is a model for the concept CompType Point, Segment,... Predicates Kernel Visualization File I/O Number Types Generators STL extensions Support Library: Configuration, Assertions Kernel Kernel Basic geometric primitives 2D, 3D, dd point, line, ray, segment, vector, circle, Predicates comparison,, orientation, in_circle,, intersection test, Constructions intersection, distance, affine transform, Parameterization of Kernel Classes Point_3 Cartesian double Gmpq leda::real core:: ::Expr Homogeneous int Gmpz Concepts: NumberType and Kernel Parameterization of Data Structures template < Geometry > class Delaunay_triangulation_2 { void insert(geometry::point t) { if(geometry::orientation( Geometry::orientation(p,q,t)==..) if(geometry::incircle( Geometry::incircle(p,q,r,t)) } }; works with CGAL kernels thin glue layer for other kernels

Convex Hull Packages in CGAL 3.2 (22 may 2006) 2D, 3D static (quickhull( quickhull) ) and dynamic convex hulls (triangulation) Extremal points Strongly convexity checking dd incremental convex hull Polygons Area, orientation, convexity test, simplicity test, point location Decomposition convex partitioning monotone partitioning 2D Nef Polyhedra Nef polyhedron: set obtained from a finite set of open halfspaces intersections and complements Features Boolean operations interior, boundary, closure set regularization Nef Polyhedra embedded on the Sphere 3D Nef Polyhedra Closed under Boolean operations Non-manifold sets Open and closed sets Unbounded cells Mixed-dimensional dimensional cells

Rotated Cylinder Experiment Operation union (n-gon( gon, rotate(n-gon gon,, alpha)) Polyhedral Surfaces Based on halfedge data structure Combinatorial structure: Constructions Euler operations Planar Subdivisions Framework for arrangements of 2D curves based on planar maps based on topological maps Models exist for polylines, circles, conic arcs Operations point location, overlay, ray shooting,.. Search Structures Multi dimensional data structures range tree, segment tree kd tree Operations window queries nearest neighbor Optimization 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 2D Triangulations Basic Delaunay Regular Constrained Constrained Delaunay

2D Triangulations Basic Triangulation Lazy incremental construction No control over shape of triangles 2D Triangulations Delaunay triangulation Empty circle property 2D Triangulations Regular triangulation defined for weighted points dual of power diagram 2D Triangulations constrained triangulation enforced edges 2D Triangulations 2D Voronoi Diagrams constrained Delaunay triangulation enforced edges + constrained empty circle property

2D Apollonius Graphs 2D Segment Voronoi Diagrams Apollonius diagram (additively weighted Voronoi diagram) Apollonius graph weakly intersecting sites strongly intersecting sites 3D Triangulations 3D Delaunay Triangulation Basic Delaunay Regular Tetrahedron 3D Delaunay Triangulation Dynamic: point insertion vertex removal Triangulation Hierarchy Triangulation augmented with a hierarchical data structure to allow for efficient point location queries.

Efficiency ~30K vertices/s (Pentium IV, 3.5 GHz) filtered kernel 300 MBytes / 1M vertices Triangulation Related 2D, 3D Alpha shape 2D Triangle Meshing by Delaunay Refinement Interpolation Natural neighbor interpolation (based on Voronoi diagrams,, for scattered data sets) 3D Surface Mesher by Delaunay refinement : Input : implicit surface voxel description Also in CGAL 3.2 Kinetic Data Structure Planar Parameterization Subdivision surfaces Principal Component Analysis

Thank you! For your attention To Pierre Alliez and the many others who made a first version of these slides Thank you