Computational Geometry Algorithms Library

Slides:



Advertisements
Similar presentations
Order-k Voronoi Diagram in the Plane
Advertisements

TEL-AVIV UNIVERSITY FACULTY OF EXACT SCIENCES SCHOOL OF MATHEMATICAL SCIENCES An Algorithm for the Computation of the Metric Average of Two Simple Polygons.
Spatial Embedding of Pseudo-Triangulations Peter Braß Institut für Informatik Freie Universität Berlin Berlin, Germany Franz Aurenhammer Hannes Krasser.
Comments We consider in this topic a large class of related problems that deal with proximity of points in the plane. We will: 1.Define some proximity.
Efficient access to TIN Regular square grid TIN Efficient access to TIN Let q := (x, y) be a point. We want to estimate an elevation at a point q: 1. should.
Approximations of points and polygonal chains
 Distance Problems: › Post Office Problem › Nearest Neighbors and Closest Pair › Largest Empty and Smallest Enclosing Circle  Sub graphs of Delaunay.
2/3/15CMPS 3130/6130 Computational Geometry1 CMPS 3130/6130 Computational Geometry Spring 2015 Triangulations and Guarding Art Galleries II Carola Wenk.
Convex Hull obstacle start end Convex Hull Convex Hull
CS16: Introduction to Data Structures & Algorithms
Motion Planning CS 6160, Spring 2010 By Gene Peterson 5/4/2010.
C o m p u t i n g C O N V E X H U L L S by Kok Lim Low 10 Nov 1998 COMP Presentation.
Ruslana Mys Delaunay Triangulation Delaunay Triangulation (DT)  Introduction  Delaunay-Voronoi based method  Algorithms to compute the convex hull 
By Groysman Maxim. Let S be a set of sites in the plane. Each point in the plane is influenced by each point of S. We would like to decompose the plane.
Convex Hulls in 3-space Jason C. Yang.
Informationsteknologi Wednesday, November 7, 2007Computer Graphics - Class 51 Today’s class Geometric objects and transformations.
DEpthLAUNAY1 DEpthLAUNAY Manuel Abellanas Alfredo de las Vegas Facultad de Informática - UPM.
3/5/15CMPS 3130/6130 Computational Geometry1 CMPS 3130/6130 Computational Geometry Spring 2015 Delaunay Triangulations II Carola Wenk Based on: Computational.
1st Meeting Industrial Geometry Computational Geometry ---- Some Basic Structures 1st IG-Meeting.
Fractional Cascading CSE What is Fractional Cascading anyway? An efficient strategy for dealing with iterative searches that achieves optimal.
Query Processing in Databases Dr. M. Gavrilova.  Introduction  I/O algorithms for large databases  Complex geometric operations in graphical querying.
Computational Geometry -- Voronoi Diagram
Computational Geometry and Spatial Data Mining
1cs542g-term Notes. 2 Meshing goals  Robust: doesn’t fail on reasonable geometry  Efficient: as few triangles as possible Easy to refine later.
Delaunay Triangulation Computational Geometry, WS 2006/07 Lecture 11 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
CPSC 335 Geometric Data Structures in Computer Modeling and GIS Dr. Marina L. Gavrilova Assistant Professor Dept of Comp. Science, University of Calgary,
Lecture 3: Polygon Triangulation Computational Geometry Prof. Dr. Th. Ottmann 1 l-Monotone Convex polygons are easy to triangulate. Unfortunately the partition.
The Design and Implementation of Planar Arrangements of Curves in CGAL Iddo Hanniel The research has been carried out at Tel Aviv University under the.
Delaunay Triangulation on the GPU Dan Maljovec. CPU Delaunay Triangulation Randomized Incremental Algorithm 1.Construct Bounding triangle 2.Choose point.
TU/e computational geometry introduction Mark de Berg.
Area 1: Algorithms Dan Halperin, School of Computer Science, Tel Aviv University.
Lection 1: Introduction Computational Geometry Prof.Dr.Th.Ottmann 1 History: Proof-based, algorithmic, axiomatic geometry, computational geometry today.
Lecture 10 : Delaunay Triangulation Computational Geometry Prof. Dr. Th. Ottmann 1 Overview Motivation. Triangulation of Planar Point Sets. Definition.
Computational Geometry Algorithms Library Source: CGAL web page
UNC Chapel Hill M. C. Lin Overview of Last Lecture About Final Course Project –presentation, demo, write-up More geometric data structures –Binary Space.
1 Street Generation for City Modeling Xavier Décoret, François Sillion iMAGIS GRAVIR/IMAG - INRIA.
Applications of CGAL in the Gel Analysis Software CAROL Klaus Kriegel Freie Universität Berlin Deutsches Herzzentrum Berlin DFG Projekt FL 165/4-2.
Quadtrees and Mesh Generation Student Lecture in course MATH/CSC 870 Philipp Richter Thursday, April 19 th, 2007.
How to install CGAL Yuanzhen Wang. What is CGAL Computational Geometry Algorithms Library “Provide easy access to efficient and reliable geometric algorithms.
Modeling and representation 1 – comparative review and polygon mesh models 2.1 Introduction 2.2 Polygonal representation of three-dimensional objects 2.3.
Delaunay Triangulations Presented by Glenn Eguchi Computational Geometry October 11, 2001.
CSE53111 Computational Geometry TOPICS q Preliminaries q Point in a Polygon q Polygon Construction q Convex Hulls Further Reading.
ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm.
Computational Geometry Course Summary (First Half) Spring 2008 Pay special attention to: algorithm details (able to explain correctness and carry out a.
C o m p u t i n g C O N V E X H U L L S. Presentation Outline 2D Convex Hulls –Definitions and Properties –Approaches: Brute Force Gift Wrapping QuickHull.
UNC Chapel Hill M. C. Lin COMP290-72: Computational Geometry and Applications Tues/Thurs 2:00pm - 3:15pm (SN 325) Ming C. Lin
Computational Geometry Algorithms Library
Pierre Alliez The Computational Geometry Algorithm Library.
Voronoi Diagram (Supplemental)
Computational Geometry Piyush Kumar (Lecture 1: Introduction) Welcome to CIS5930.
Arrangements Efi Fogel Tel Aviv University. Outline Arrangements Algorithms based on Arrangements Boolean Set Operations Minkowski Sums and Polygon Offset.
2D Convex Hull in Pierre Alliez
Delaunay Triangulation on the GPU
UNC Chapel Hill M. C. Lin Delaunay Triangulations Reading: Chapter 9 of the Textbook Driving Applications –Height Interpolation –Constrained Triangulation.
The Computational Geometry Algorithm Library Andreas Fabri INRIA Sophia-Antipolis CGAL.
9/8/10CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2010 Triangulations and Guarding Art Galleries Carola Wenk.
CDS 301 Fall, 2008 Domain-Modeling Techniques Chap. 8 November 04, 2008 Jie Zhang Copyright ©
Convex hulls in 3D Maciej Kot. Finding convex hull Given a set of points, find a convex hull that contains all of them and is minimal.
Bigyan Ankur Mukherjee University of Utah. Given a set of Points P sampled from a surface Σ,  Find a Surface Σ * that “approximates” Σ  Σ * is generally.
COMPUTATIONAL GEOMETRY INTRODUCTION AND CONVEX HULLS ZAHRA NILFOROUSHAN ELECTRICAL & COMPUTER ENGINEERING DEPARTMENT, FACULTY OF ENGINEERING, KHARAZMI.
Polygon Triangulation
Computational Geometry Piyush Kumar (Lecture 1: Introduction) Welcome to CIS5930.
Data Structure & Algorithm 13 – Computational Geometry JJCAO.
CMPS 3130/6130 Computational Geometry Spring 2017
Query Processing in Databases Dr. M. Gavrilova
Localizing the Delaunay Triangulation and its Parallel Implementation
Domain-Modeling Techniques
Algorithm design (computational geometry)
Triangulation of a polygon
The Visibility– Voronoi Complex and Its Applications
Presentation transcript:

Computational Geometry Algorithms Library The Name Of God Introduction of the Computational Geometry Algorithms Library Alireza Jalayegh www.cgal.org 1393-1

Overview Introduce Structure of CGAL CGAL LiveCD Installing CGAL

Part 1 Introduce

CGAL = Computational Geometry Algorithms Library A library of Geometric algorithms and data structures Written in C++ provide easy access to efficient and reliable geometric algorithms

Development Development started in 1995 ETH Zurich (Switzerland) Freie Universität Berlin (Germany) INRIA Sophia-Antipolis (France) Martin-Luther-Universität Halle-Wittenberg (Germany) Max-Planck-Institut für Informatik (Germany) RISC Linz (Austria) Tel Aviv University (Israel) Utrecht University (The Netherlands)

Users CGAL is used in various areas needing geometric computation Computer Graphics Computer Aided Design And Modeling Geographic Information Systems Molecular Biology Medical Imaging Robotics Motion Planning Games 2D and 3D Modelers

CGAL in numbers > 500,000 lines of C++ code Several platforms g++ (Linux, MacOS), VC++ (Windows) > 1,000 downloads in month > 60 developers registered on developer list 10 people have provided reviews of CGAL Packages latest version: CGAL-4.5 in Dec 22, 2014

Data Structures and Algorithms Convex hull in 2D, 3D and dD Triangulations triangulations in 2D and 3D and Delaunay triangulations Voronoi diagrams for 2D and 3D points and segment Voronoi diagrams Polygons boolean operations , offsets, straight skeleton Polyhedral boolean operations Search structures kd tree, and range and segment trees

Data Structures and Algorithms Others: mesh generation geometry processing alpha shapes shape analysis kinetic data structures interpolation

Part 2 Structure of CGAL

Structure Kernel and Number Type Basic Library Various packages (81) Support Library STL extensions, Visualization, I/O, Random, timers, …

Predicates Comparison Orientation … Kernel and Number Type Primitives 2D, 3D, dD Point, Triangle, Rectangle, Circle Line, Segment, Ray … Predicates Comparison Orientation … Constructions Intersection square distance ...

Basic Library Convex Hull (3) 2D Convex Hulls and Extreme Points Introduced in: CGAL 1.0 3D Convex Hulls Introduced in: CGAL 1.1 dD Convex Hulls and Delaunay Triangulations Introduced in: CGAL 2.3

2D Convex Hull Algorithms Function Algorithm Speed Discovered By convex_hull_2() Bykat or Akl and Toussaint Min( O(nh), O(n log n) ) ch_bykat() Bykat O(nh) [A. Bykat, 1978] ch_akl_toussaint() Akl and Toussaint O(n log n) [S. G. Akl and G. T. Toussaint, 1978] ch_graham_andrew() Andrew [A. M. Andrew, 1979] ch_jarvis() Jarvis [R. A. Jarvis, 1973] ch_eddy() Eddy's [W. F. Eddy, 1977] ch_melkman() Melkman (for simple polygonal chains) O(n) n: number of points h: number of points on the boundary of convex hull

2D Convex Hulls Function OutputIterator CGAL::convex_hull_2 ( InputIterator first, InputIterator last, OutputIterator result ) It generates the counterclockwise sequence of extreme points of the points in the range [first, last] The resulting sequence is placed starting at position result and the past-the-end iterator for the resulting sequence is returned

Hello World

Other Function Speed lower_hull_points_2() O(n log n) upper_hull_points_2() is_cw_strongly_convex_2() O(n) is_ccw_strongly_convex_2() ch_nswe_point() ch_ns_point() , ch_we_point() ch_n_point(), ch_s_point(), ch_w_point(), ch_e_point()

3D Convex Hulls This package provides: functions for computing convex hulls in 3D using a static algorithm using an incremental construction algorithm using a triangulation to get a fully dynamic computation functions for checking if sets of points are strongly convex or not (1.63s) (9.50s) (11.54s) To compute the convex hull of a million of random points in a unit ball

Basic Library Polygons (7) 2D Polygons 2D Polygon Partitioning Introduced in: CGAL 0.9 2D Polygon Partitioning Introduced in: CGAL 2.3 2D Minkowski Sums Introduced in: CGAL 3.3 2D Regularized Boolean Set-Operations Introduced in: CGAL 3.2

2D Polygons This package provides the following algorithms: find the leftmost, rightmost, topmost and bottommost vertex compute the (signed) area check if a polygon is simple check if a polygon is convex check if a point lies inside a polygon …

2D Polygon Partitioning This package provides: functions for partitioning polygons in monotone functions for partitioning polygons in convex polygons The algorithms can produce results with the minimal number of polygons

2D Minkowski Sums This package provides: functions for computing the Minkowski sum of two polygons functions for computing the Minkowski sum of a polygon and a disc (an operation also known as offsetting or dilating a polygon)

2D Regularized Boolean Set-Operations This package consists of the implementation of Boolean set-operations intersection join difference symmetric Difference complement …

Basic Library Arrangements (5) 2D Arrangements Introduced in: CGAL 2.1 2D Intersection of Curves Introduced in: CGAL 2.4

2D Arrangements this package can be used to maintain, alter, and display arrangements in the plane the package can be used to obtain results of various queries on the arrangement, such as point location Computing the overlay of two arrangements …

Basic Library Triangulations and Delaunay Triangulations(7) 2D Triangulation Introduced in: CGAL 0.9 2D Triangulation Data Structure Introduced in: CGAL 2.2 3D Triangulations Introduced in: CGAL 2.1 3D Triangulation Data Structure Introduced in: CGAL 2.1

2D Triangulation This package allows to build various triangulations for point sets two dimensions Any CGAL triangulation covers the convex hull of its vertices Triangulations are built incrementally and can be modified by insertion or removal of vertices …

2D Triangulation Data Structure This package provides a data structure to store a two-dimensional triangulation Data Structure Based on Faces and Vertices visit all the vertices, edges and faces incident to a given vertex addition of a new vertex splitting a given face or a given edge removal of a vertex incident to three faces flip edges …

Basic Library Voronoi Diagrams(3) 2D Segment Delaunay Graphs Introduced in: CGAL 0.9 An algorithm for computing the dual graph of a Voronoi diagram of a set of segments

Basic Library Spatial Searching and Sorting (7) circular range search 2D Range and Neighbor Search Introduced in: CGAL 2.1 circular range search triangular range search isorectangular range search (k) nearest neighbor(s)

Basic Library Spatial Searching and Sorting dD Range and Segment Trees Introduced in: CGAL 0.9 Interval Skip List Introduced in: CGAL 3.0

Support Library (10) CGAL and the Boost Graph Library CGAL Ipelets Introduced in: CGAL 3.3 CGAL Ipelets Introduced in: CGAL 3.5 Profiling tools, Hash Map, Union-find, Modifiers Introduced in: CGAL 3.2

Part 3 CGAL LiveCD

CGAL LiveCD Optimal as a Demo CD -contains all the demos of CGAL compiled. Test CGAL or Solve applied computational geometry exercises easily. Enables you to Run and Compile CGAL programs without installing any software and without changing anything on you hard drive. Easy operation- Just put the CD in the computer and reboot (of course you can always use a virtual machine to do that) Based on CGAL 3.5

Compiling a CGAL example By default the source code for the CGAL example programs is installed as a compressed archive in a documentation directory. Unpack tar --gzip -xf /usr/share/doc/libcgal-demo/examples.tar.gz Go to subdirectory cd examples/Convex_hull_2 compile an example program g++ -lCGAL array_convex_hull_2.cpp Run program ./a.out

Installing CGAL on Linux Part 4 Installing CGAL on Linux

Prerequisites Install CMake sudo apt-get install cmake cmake-gui Install Boost Libraries sudo apt-get install libboost-all-dev Qt4 is only needed if you want to run CGAL demos libQGLViewer is only needed for 3D CGAL demos

Installing libQGLViewer Downloading libQGLViewer downloaded the file libQGLViewer-2-6-0.tar.gz from www.libqglviewer.com/src/libQGLViewer-2.6.0.tar.gz Unpack tar libQGLViewer-2-6-0.tar.gz Configure cd libQGLViewer-2-6-0/QGLViewer qmake –spec mack-g++ make

Installing CGAL on Linux Downloading CGAL downloaded the file CGAL-4.5.tar.gz from http://www.cgal.org/download.html Unpack tar xzf CGAL-4.5.tar.gz the directory CGAL-4.5 will be created

Installing CGAL on Linux This directory contains the following subdirectories Directory Contents auxiliary Precompiled GMP and Mpfr for windows demo demo programs cmake/modules modules for finding and using libraries config configuration files for install script doc_html documentation (HTML) examples example programs include header files scripts some useful scripts src source files

Building CGAL on Linux Configuring CGAL with the cmake Command-Line Tool cd CGAL-4.5 # go to CGAL directory cmake . # configure CGAL make # build the CGAL libraries

Configuring an Example/Demo/Program Configuring and Building cd CGAL-4.5/examples/Convex_hull_2 # go to Convex_hull_2 directory cmake –DCGAL_DIR=$HOME/CGAL-4.5 . # configure make # build Run ./array_convex_hull_2 # sample program Examples need neither Qt4, nor libQGLViewer

Reference www.CGAL.org www.acg.cs.tau.ac.il

The end.