Computational Geometry Algorithms Library

Total Page:16

File Type:pdf, Size:1020Kb

Computational Geometry Algorithms Library Introduction to the Computational Geometry Algorithms Library Monique Teillaud www.cgal.org January 2011 Overview The CGAL Open Source Project Contents of the Library Robustness Triangulations Flexibility Recent and Ongoing Work Part I The CGAL Open Source Project Goals • Promote the research in Computational Geometry (CG) • “make the large body of geometric algorithms developed in the field of CG available for industrial applications” ) robust programs History Development started in 1995 Consortium of 8 European sites Two ESPRIT LTR European Projects (1996-1999) History Development started in 1995 Consortium of 8 European sites Two ESPRIT LTR European Projects (1996-1999) Utrecht University (Plageo) INRIA Sophia Antipolis (C++GAL) ETH Zürich (XYZ Geobench) MPI Saarbrücken (LEDA) Tel Aviv University Freie Universität Berlin RISC Linz Martin-Luther-Universität Halle History • Work continued after the end of Galia (1999) in several sites (partial support of EU Projects ECG, ACS, Aim@Shape) • January, 2003: creation of GEOMETRY FACTORY INRIA startup sells commercial licenses, support, customized developments • November, 2003: Release 3.0 - Open Source Project • October, 2010: Release 3.7 License a few basic packages under LGPL most packages under QPL ◦ free use for Open Source code ◦ commercial license needed otherwise • A guarantee for CGAL users • Allows CGAL to become a “standard” • Opens CGAL for new contributions Contributions Contributors keep their identity • “People” web page. • Copyright kept by the institution of the authors. • now: release cycle of 6 months • included in Debian, etc • > 1,000 downloads per month • 4,000 subscribers to announcement list (7,000 for gcc) • 1,000 subscribers to discussion list (600 in gcc-help) • 50 developers registered on developer list (∼ 20 active) CGAL in numbers • 500,000 lines of C++ code several platforms g++ (Linux MacOS Windows), VC++ • 3,500 pages manual split into 80 chapters • > 1,000 downloads per month • 4,000 subscribers to announcement list (7,000 for gcc) • 1,000 subscribers to discussion list (600 in gcc-help) • 50 developers registered on developer list (∼ 20 active) CGAL in numbers • 500,000 lines of C++ code several platforms g++ (Linux MacOS Windows), VC++ • 3,500 pages manual split into 80 chapters • now: release cycle of 6 months • included in Debian, etc CGAL in numbers • 500,000 lines of C++ code several platforms g++ (Linux MacOS Windows), VC++ • 3,500 pages manual split into 80 chapters • now: release cycle of 6 months • included in Debian, etc • > 1,000 downloads per month • 4,000 subscribers to announcement list (7,000 for gcc) • 1,000 subscribers to discussion list (600 in gcc-help) • 50 developers registered on developer list (∼ 20 active) Development process Editorial Board created in 2001. • Responsible for the quality of CGAL Packages are reviewed. ! helps authors to get credit for their work. • Decides about technical matters • Coordinates communication and promotion • ... Development process Editorial Board created in 2001. Currently: Pierre Alliez (INRIA Sophia Antipolis - Méditerranée) Eric Berberich (Max-Planck-Institut für Informatik) Andreas Fabri (GEOMETRY FACTORY) Efi Fogel (Tel Aviv University) Bernd Gärtner (ETH Zürich) Michael Hemmer (Tel Aviv University) Michael Hoffmann (ETH Zürich) Sébastien Loriot (GEOMETRY FACTORY) Menelaos Karavelas (Univ. Crete) Marc Pouget (INRIA Nancy - Grand Est) Laurent Rineau (GEOMETRY FACTORY) Monique Teillaud (INRIA Sophia Antipolis - Méditerranée) Mariette Yvinec (INRIA Sophia Antipolis - Méditerranée) • Developer manual • Mailing list for developers • 1-2 developers meetings per year, 1 week long • 1 internal release per day • Automatic test suites running on all supported compilers/platforms Development tools • Own manual tools: LATEX −! pdf and html • svn server (INRIA gforge) for version management • 1 internal release per day • Automatic test suites running on all supported compilers/platforms Development tools • Own manual tools: LATEX −! pdf and html • svn server (INRIA gforge) for version management • Developer manual • Mailing list for developers • 1-2 developers meetings per year, 1 week long Development tools • Own manual tools: LATEX −! pdf and html • svn server (INRIA gforge) for version management • Developer manual • Mailing list for developers • 1-2 developers meetings per year, 1 week long • 1 internal release per day • Automatic test suites running on all supported compilers/platforms Users List of identified users in various fields • Molecular Modeling • Particle Physics, Fluid Dynamics, Microstructures • Medical Modeling and Biophysics • Geographic Information Systems • Games • Motion Planning • Sensor Networks • Architecture, Buildings Modeling, Urban Modeling • Astronomy • 2D and 3D Modelers • Mesh Generation and Surface Reconstruction • Geometry Processing • Computer Vision, Image Processing, Photogrammetry • Computational Topology and Shape Matching • Computational Geometry and Geometric Computing More non-identified users. Customers of GEOMETRY FACTORY (end 2008) Part II Contents of CGAL Structure Kernels Various packages Support Library STL extensions, I/O, generators, timers. Some packages Part III Robustness The CGAL Kernels 2D, 3D, dD “Rational” kernels 2D circular kernel 3D spherical kernel In the kernels Elementary geometric objects Elementary computations on them Primitives Predicates Constructions 2D, 3D, dD • comparison • intersection • Point • Orientation • squared distance • Vector • InSphere . • Triangle . • Circle ... Affine geometry Point - Origin ! Vector Point - Point ! Vector Point + Vector ! Point Point Vector Origin Point + Point illegal midpoint(a,b) = a + 1/2 x (b-a) - ex: Intersection of two lines - a1x + b1y + c1 = 0 a1hx + b1hy + c1hw = 0 a2x + b2y + c2 = 0 a2hx + b2hy + c2hw = 0 (x; y) = (hx; hy; hw) = 0 1 b1 c1 a1 c1 b1 c1 a1 c1 a1 b1 ; − ; B b2 c2 a2 c2 C b2 c2 a2 c2 a2 b2 ; − B C @ a1 b1 a1 b1 A a2 b2 a2 b2 Field operations Ring operations Kernels and number types Cartesian representation Homogeneous representation hx x = hx Point hw y = hy Point hy hw hw Field operations Ring operations Kernels and number types Cartesian representation Homogeneous representation hx x = hx Point hw y = hy Point hy hw hw - ex: Intersection of two lines - a1x + b1y + c1 = 0 a1hx + b1hy + c1hw = 0 a2x + b2y + c2 = 0 a2hx + b2hy + c2hw = 0 (x; y) = (hx; hy; hw) = 0 1 b1 c1 a1 c1 b1 c1 a1 c1 a1 b1 ; − ; B b2 c2 a2 c2 C b2 c2 a2 c2 a2 b2 ; − B C @ a1 b1 a1 b1 A a2 b2 a2 b2 Kernels and number types Cartesian representation Homogeneous representation hx x = hx Point hw y = hy Point hy hw hw - ex: Intersection of two lines - a1x + b1y + c1 = 0 a1hx + b1hy + c1hw = 0 a2x + b2y + c2 = 0 a2hx + b2hy + c2hw = 0 (x; y) = (hx; hy; hw) = 0 1 b1 c1 a1 c1 b1 c1 a1 c1 a1 b1 ; − ; B b2 c2 a2 c2 C b2 c2 a2 c2 a2 b2 ; − B C @ a1 b1 a1 b1 A a2 b2 a2 b2 Field operations Ring operations The “rational” Kernels CGAL::Cartesian< FieldType > CGAL::Homogeneous< RingType > −! Flexibility typedef double NumberType; typedef Cartesian< NumberType > Kernel; typedef Kernel::Point_2 Point; Numerical robustness issues Predicates = signs of polynomial expressions Ex: Orientation of 2D points r q p 0 2 31 px py 1 orientation(p; q; r) = sign @det 4 qx qy 1 5A rx ry 1 = sign((qx − px )(ry − py ) − (qy − py )(rx − px )) Numerical robustness issues Predicates = signs of polynomial expressions Ex: Orientation of 2D points p = (0:5 + x:u; 0:5 + y:u) 0 ≤ x; y < 256; u = 2−53 q = (12; 12) r = (24; 24) orientation(p; q; r) evaluated with double (x; y) 7! > 0, = 0, < 0 double −! inconsistencies in predicate evaluations 6= exact arithmetics Filtering Techniques (interval arithmetics, etc) exact arithmetics only when needed Degenerate cases explicitly handled Numerical robustness issues Speed and exactness through Exact Geometric Computation Degenerate cases explicitly handled Numerical robustness issues Speed and exactness through Exact Geometric Computation 6= exact arithmetics Filtering Techniques (interval arithmetics, etc) exact arithmetics only when needed Numerical robustness issues Speed and exactness through Exact Geometric Computation 6= exact arithmetics Filtering Techniques (interval arithmetics, etc) exact arithmetics only when needed Degenerate cases explicitly handled The circular/spherical kernels Circular/spherical kernels • solve needs for e.g. intersection of circles. • extend the CGAL (linear) kernels Exact computations on algebraic numbers of degree 2 = roots of polynomials of degree 2 Algebraic methods reduce comparisons to computations of signs of polynomial expressions Application of the 2D circular kernel Computation of arrangements of 2D circular arcs and line segments Pedro M.M. de Castro, Master internship Application of the 3D spherical kernel Computation of arrangements of 3D spheres Sébastien Loriot, PhD thesis Part IV 2D and 3D Triangulations 2D and 3D Delaunay triangulations empty sphere property 2D and 3D Delaunay triangulations 1 M points in ∼ 10 sec Flexibility Generic algorithms Delaunay_Triangulation_2<Traits, TDS> Traits parameter provides: • Point • orientation test, in_circle test Flexibility 2D Kernel used as traits class typedef CGAL::Exact_predicates_inexact_constructions_kernelK; typedef CGAL::Delaunay_triangulation_2< K > Delaunay; • 2D points: coordinates (x; y) • orientation, in_circle Flexibility Changing the traits class typedef CGAL::Exact_predicates_inexact_constructions_kernelK; typedef CGAL::Triangulation_euclidean_traits_xy_3< K > Traits; typedef CGAL::Delaunay_triangulation_2< Traits > Terrain; • 3D points: coordinates (x; y; z) • orientation, in_circle: on x and y coordinates only Recent and Ongoing Work 3D periodic triangulations released in CGAL 3.5 Manuel Caroli, PhD thesis 2D: in progress Nico Kruithof Recent and Ongoing Work Meshing of periodic surfaces Vissarion Fisikopoulos, Master internship Recent and Ongoing Work Meshing of periodic volumes Mikhail Bogdanov, internship, now PhD student Recent and Ongoing Work Triangulation on the sphere participation of Olivier Rouiller, internship École Centrale Lille To know more www.cgal.org http://www.inria.fr/sophia/members/Monique.Teillaud/.
Recommended publications
  • Openscad User Manual (PDF)
    OpenSCAD User Manual Contents 1 Introduction 1.1 Additional Resources 1.2 History 2 The OpenSCAD User Manual 3 The OpenSCAD Language Reference 4 Work in progress 5 Contents 6 Chapter 1 -- First Steps 6.1 Compiling and rendering our first model 6.2 See also 6.3 See also 6.3.1 There is no semicolon following the translate command 6.3.2 See Also 6.3.3 See Also 6.4 CGAL surfaces 6.5 CGAL grid only 6.6 The OpenCSG view 6.7 The Thrown Together View 6.8 See also 6.9 References 7 Chapter 2 -- The OpenSCAD User Interface 7.1 User Interface 7.1.1 Viewing area 7.1.2 Console window 7.1.3 Text editor 7.2 Interactive modification of the numerical value 7.3 View navigation 7.4 View setup 7.4.1 Render modes 7.4.1.1 OpenCSG (F9) 7.4.1.1.1 Implementation Details 7.4.1.2 CGAL (Surfaces and Grid, F10 and F11) 7.4.1.2.1 Implementation Details 7.4.2 View options 7.4.2.1 Show Edges (Ctrl+1) 7.4.2.2 Show Axes (Ctrl+2) 7.4.2.3 Show Crosshairs (Ctrl+3) 7.4.3 Animation 7.4.4 View alignment 7.5 Dodecahedron 7.6 Icosahedron 7.7 Half-pyramid 7.8 Bounding Box 7.9 Linear Extrude extended use examples 7.9.1 Linear Extrude with Scale as an interpolated function 7.9.2 Linear Extrude with Twist as an interpolated function 7.9.3 Linear Extrude with Twist and Scale as interpolated functions 7.10 Rocket 7.11 Horns 7.12 Strandbeest 7.13 Previous 7.14 Next 7.14.1 Command line usage 7.14.2 Export options 7.14.2.1 Camera and image output 7.14.3 Constants 7.14.4 Command to build required files 7.14.5 Processing all .scad files in a folder 7.14.6 Makefile example 7.14.6.1 Automatic
    [Show full text]
  • Geometry & Computation for Interactive Simulation
    Geometry & Computation for Interactive Simulation Jorg Peters (CISE University of Florida, USA), Dinesh Pai (University of British Columbia), Ulrich Reif (Technische Universitaet Darmstadt) Sep 24 – Sep 29, 2017 1 Overview The workshop advanced the state of the art in geometry and computation for interactive simulation by in- troducing to each other researchers from different branches of academia, research labs and industry. These researchers share the common goal of improving the interface between geometry and computation for physi- cal simulation – but approach it with differing emphasis, techniques and toolkits. A key issue for all partici- pants is to shorten process times and to improve the outcomes of the design-analysis cycle. That is, to more quickly optimize shape, structure and properties to achieve one or multiple design goals. Correspondingly, the challenges laid out covered a wide spectrum from hierarchical design and prediction of novel 3D printed materials, to multi-objective optimization minimizing fuel consumption of commercial airplanes, to creating training scenarios for minimally invasive surgery, to multi-point interactive force feedback for virtually plac- ing an engine into a restricted cavity. These challenges map to challenges in the underlying areas of geometry processing, computational geometry, geometric design, formulation of simulation models, isogeometric and higher-order isoparametric design with splines and meshingless approaches, to real-time computation for interactive surgical force-feedback simulation. The workshop was highly succesful in presenting and con- trasting this rich set of techniques. And it generated recommendations for educating future generation of researchers in geometry and computation for interactive simulation (see outcomes). The lower than usual number of participants (due to a second series of earth quakes just before the meeting) allowed for increased length of individual presentations, so as to discuss topics and ideas at length, and to address basics theory.
    [Show full text]
  • An Adaptable and Extensible Geometry Kernel
    An Adaptable and Extensible Geometry Kernel ¾ ¿ Susan Hert ½ , Michael Hoffmann , Lutz Kettner , ½ Sylvain Pion , and Michael Seel ½ Max-Planck-Institut fur ¨ Informatik, Stuhlsatzenhausweg 85 66123 Saarbrucken, ¨ Germany. Email: [hert|seel]@mpi-sb.mpg.de. ¾ Institute for Theoretical Computer Science, ETH Zurich, CH-8092 Zurich, Switzerland. Email: [email protected]. ¿ University of North Carolina at Chapel Hill, USA. Email: [email protected]. INRIA, Sophia Antipolis - France. Email: [email protected]. Abstract. Geometric algorithms are based on geometric objects such as points, lines and circles. The term kernel refers to a collection of representations for constant- size geometric objects and operations on these representations. This paper describes how such a geometry kernel can be designed and implemented in C++, having spe- cial emphasis on adaptability, extensibility and efficiency. We achieve these goals fol- lowing the generic programming paradigm and using templates as our tools. These ideas are realized and tested in CGAL [10], the Computational Geometry Algorithms Library. Keywords: Computational geometry, library design, generic programming. 1 Introduction Geometric algorithms that manipulate constant-size objects such as circles, lines, and points are usually described independent of any particular representation of the ob- jects. It is assumed that these objects have certain operations defined on them and that simple predicates exist that can be used, for example, to compare two objects or to determine their relative position. Algorithms are described in this way because all representations are equally valid as far as the correctness of an algorithm is concerned. Also, algorithms can be more concisely described and are more easily seen as being applicable in many settings when they are described in this more generic way.
    [Show full text]
  • Openscad User Manual/Print Version Table of Contents Introduction First
    OpenSCAD User Manual/Print version Table of Contents 1. Introduction 2. First Steps 3. The OpenSCAD User Interface 4. The OpenSCAD Language 1. General 2. Mathematical Operators 3. Mathematical Functions 4. String Functions 5. Primitive Solids 6. Transformations 7. Conditional and Iterator Functions 8. CSG Modelling 9. Modifier Characters 10. Modules 11. Include Statement 12. Other Language Feature 5. Using the 2D Subsystem 1. 2D Primitives 2. 3D to 2D Projection 3. 2D to 2D Extrusion 4. DXF Extrusion 5. Other 2D formats 6. STL Import and Export 1. STL Import 2. STL Export 7. Commented Example Projects 8. Using OpenSCAD in a command line environment 9. Building OpenSCAD from Sources 1. Building on Linux/UNIX 2. Cross-compiling for Windows on Linux or Mac OS X 3. Building on Windows 4. Building on Mac OS X 10. Libraries 11. Glossary 12. Index Introduction OpenSCAD is a software for creating solid 3D CAD objects. It is free software (http://www.gnu.org/philosophy/free-sw.html) and available for GNU/Linux (http://www.gnu.org/) , MS Windows and Apple OS X. Unlike most free software for creating 3D models (such as the well-known application Blender (http://www.blender.org/) ), OpenSCAD does not focus on the artistic aspects of 3D modelling, but instead focuses on the CAD aspects. So it might be the application you are looking for when you are planning to create 3D models of machine parts, but probably is not what you are looking for when you are more interested in creating computer- animated movies. OpenSCAD is not an interactive modeller.
    [Show full text]
  • New Approaches to Protein Docking
    New approaches to protein docking Dissertation zur Erlangung des Grades Doktor der Ingenieurwissenschaften (Dr.-Ing.) der Naturwissenschaftlich-Technischen Fakult¨at I der Universit¨at des Saarlandes von Oliver Kohlbacher Saarbr¨ucken 12. Januar 2001 Datum des Kolloquiums: 12. Januar 2000 Dekan der technischen Fakult¨at: Professor Dr. Rainer Schulze-Pillot-Ziemen Gutachter: Professor Dr. Hans-Peter Lenhof, Universit¨at des Saarlandes, Saarbr¨ucken Professor Dr. Kurt Mehlhorn, MPI f¨ur Informatik, Saarbr¨ucken 2 Á ØÒ Ø ÑÓ×Ø Ü ÔÙØÖ Ö× ÒÓÛ × ÔÖØÐÝ Ò ÖÓ ¸ Ò ÔÖØÐÝ Ò ØÓ Ó Ñ×ØÖݺ º º º ÓÐÓÝ × ×Ó Øи Ò ÙØ Ù×Ùк Ì ØÖÓÙÐ ÛØ ÓÐÓÝ × Øظ ÝÓÙ Ú ØÓ ÛÓÖ × ÓÐÓ×ظ Ø³× ÓÖÒº ÓÙÖ ÜÔ ÖÑÒØ× Ø ÝÓÙ ØÖ ÝÖ× Ò ØÒ¸ ÓÒ Òظ Ø Ý Ó × Ó« Ò ÐÐ Ø ØÒ× ÓÙ ×ØÖØ ÓÚÖº ÁÒ Û ÓÙÖ ÓÛÒ ÛÓÖÐ׺ ÓÐÓ×Ø× ×ÖÚ ÐÓØ Ó ÓÖ Ò Ð ØÓ ×ÐÙ Ø ØÖÓÙº – Donald Knuth Acknowledgements The work on this thesis was carried out during the years 1996–2000 at the Max-Planck- Institut f¨ur Informatik in the group of Prof. Dr. Kurt Mehlhorn under the supervision of Prof. Dr. Hans-Peter Lenhof. Prof. Dr. Hans-Peter Lenhof kindled my interest in Bioinformatics and gave me the freedom to do research in those areas that fascinated me most. Our discussions, although sometimes heated, were always fruitful and forced me to get to the very bottom of many problems. The implementation of BALL is unthinkable without the help of all the people who con- tributed code and ideas.
    [Show full text]
  • Efficient Computation of Clipped Voronoi Diagram for Mesh Generation
    Efficient Computation of Clipped Voronoi Diagram for Mesh Generation Dong-Ming Yana,b,c, Wenping Wanga, Bruno L´evyb, Yang Liub,d aDepartment of Computer Science, The University of Hong Kong, Pokfulam Road, Hong Kong bProject ALICE, INRIA/LORIA, Campus scientifique 615, rue du Jardin Botanique, 54600, Villers les Nancy, France cGeometric Modeling and Scientific Visualization Center, KAUST, Thuwal 23955-6900, Kingdom of Saudi Arabia dMicrosoft Research Asia, Building 2, No. 5 Danling Street, Haidian District, Beijing, 100800, P.R. China Abstract The Voronoi diagram is a fundamental geometric structure widely used in various fields, especially in computer graphics and geometry computing. For a set of points in a compact domain (i.e. a bounded and closed 2D region or a 3D volume), some Voronoi cells of their Voronoi diagram are infinite or partially outside of the domain, but in practice only the parts of the cells inside the domain are needed, as when computing the centroidal Voronoi tessellation. Such a Voronoi diagram confined to a compact domain is called a clipped Voronoi diagram. We present an efficient algorithm to compute the clipped Voronoi diagram for a set of sites with respect to a compact 2D region or a 3D volume. We also apply the proposed method to optimal mesh generation based on the centroidal Voronoi tessellation. Keywords: clipped Voronoi diagram, Delaunay triangulation, centroidal Voronoi tessellation, mesh generation. 1. Introduction computing the clipped Voronoi diagram with re- spect to a complicated input domain is a difficult The Voronoi diagram is a fundamental geometric problem and there is no efficient solution in the ex- structure which has numerous applications in var- isting literature.
    [Show full text]
  • Cgalmesh: a Generic Framework for Delaunay Mesh Generation Clément Jamin, Pierre Alliez, Mariette Yvinec, Jean-Daniel Boissonnat
    CGALmesh: a Generic Framework for Delaunay Mesh Generation Clément Jamin, Pierre Alliez, Mariette Yvinec, Jean-Daniel Boissonnat To cite this version: Clément Jamin, Pierre Alliez, Mariette Yvinec, Jean-Daniel Boissonnat. CGALmesh: a Generic Framework for Delaunay Mesh Generation. [Research Report] RR-8256, INRIA. 2014. hal- 00796052v2 HAL Id: hal-00796052 https://hal.inria.fr/hal-00796052v2 Submitted on 27 Jan 2014 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. CGALmesh: a Generic Framework for Delaunay Mesh Generation Clément Jamin, Pierre Alliez, Mariette Yvinec, Jean-Daniel Boissonnat RESEARCH REPORT N° 8256 January 2014 Project-Teams Geometrica ISSN 0249-6399 ISRN INRIA/RR--8256--FR+ENG CGALmesh: a Generic Framework for Delaunay Mesh Generation Clément Jamin∗y, Pierre Alliez∗, Mariette Yvinec∗, Jean-Daniel Boissonnat∗ Project-Teams Geometrica Research Report n° 8256 — January 2014 — 31 pages Abstract: CGALmesh is the mesh generation software package of the Computational Geometry Algorithm Library (CGAL). It generates isotropic simplicial meshes – surface triangular meshes or volume tetrahedral meshes – from input surfaces, 3D domains as well as 3D multi-domains, with or without sharp features. The underlying meshing algorithm relies on restricted Delaunay triangulations to approximate domains and surfaces, and on Delaunay refinement to ensure both approximation accuracy and mesh quality.
    [Show full text]
  • CGAL Arrangements and Their Applications
    Geometry and Computing 7 CGAL Arrangements and Their Applications A Step-by-Step Guide Bearbeitet von Efi Fogel, Dan Halperin, Ron Wein 1. Auflage 2012. Buch. xix, 293 S. Hardcover ISBN 978 3 642 17282 3 Format (B x L): 21 x 27,9 cm Gewicht: 1023 g Weitere Fachgebiete > EDV, Informatik > Programmiersprachen: Methoden > Algorithmen & Datenstrukturen schnell und portofrei erhältlich bei Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft. Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, eBooks, etc.) aller Verlage. Ergänzt wird das Programm durch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr als 8 Millionen Produkte. Preface What This Book Contains This book is about how to use the Cgal 2D Arrangements package to solve problems. It will teach you the functionality of this package and a few related Cgal packages. Every feature of the package is demonstrated by a small example program. Even the basic tools are sufficient to solve problems, as shown in Chapter 2, which includes the first application. We use the word application here to refer to a complete standalone program (written on top of Cgal arrangements) to solve a meaningful problem. The applications presented in the book include finding the minimum-area triangle defined by a set of points, planning the motion of a polygon translating amidst poly- gons in the plane, computing the offset polygon, constructing the farthest-point Voronoi diagram, coordinating the motion of two discs moving amidst obstacles in the plane, performing Boolean set operations on curved polygons, and more.
    [Show full text]
  • Postgis 2.4.2 Manual SVN Revision
    PostGIS 2.4.2 Manual i PostGIS 2.4.2 Manual SVN Revision () PostGIS 2.4.2 Manual ii Contents 1 Introduction 1 1.1 Project Steering Committee . .1 1.2 Core Contributors Present . .1 1.3 Core Contributors Past . .2 1.4 Other Contributors . .2 1.5 More Information . .3 2 PostGIS Installation 4 2.1 Short Version . .4 2.2 Install Requirements . .5 2.3 Getting the Source . .7 2.4 Compiling and Install from Source: Detailed . .7 2.4.1 Configuration . .7 2.4.2 Building . .9 2.4.3 Building PostGIS Extensions and Deploying them . .9 2.4.4 Testing . 11 2.4.5 Installation . 20 2.5 Creating a spatial database using EXTENSIONS . 21 2.6 Create a spatially-enabled database without using extensions . 21 2.7 Installing and Using the address standardizer . 22 2.7.1 Installing Regex::Assemble . 23 2.8 Installing, Upgrading Tiger Geocoder and loading data . 23 2.8.1 Tiger Geocoder Enabling your PostGIS database: Using Extension . 23 2.8.1.1 Converting a Tiger Geocoder Regular Install to Extension Model . 25 2.8.2 Tiger Geocoder Enabling your PostGIS database: Not Using Extensions . 26 2.8.3 Using Address Standardizer Extension with Tiger geocoder . 26 2.8.4 Loading Tiger Data . 26 2.8.5 Upgrading your Tiger Geocoder Install . 27 2.9 Create a spatially-enabled database from a template . 28 2.10 Upgrading . 28 PostGIS 2.4.2 Manual iii 2.10.1 Soft upgrade . 28 2.10.1.1 Soft Upgrade Pre 9.1+ or without extensions .
    [Show full text]
  • A Generic Framework for Delaunay Mesh Generation Clément Jamin, Pierre Alliez, Mariette Yvinec, Jean-Daniel Boissonnat
    CGALmesh: a Generic Framework for Delaunay Mesh Generation Clément Jamin, Pierre Alliez, Mariette Yvinec, Jean-Daniel Boissonnat To cite this version: Clément Jamin, Pierre Alliez, Mariette Yvinec, Jean-Daniel Boissonnat. CGALmesh: a Generic Framework for Delaunay Mesh Generation. ACM Transactions on Mathematical Software, Association for Computing Machinery, 2015, 41 (4), pp.24. 10.1145/2699463. hal-01071759 HAL Id: hal-01071759 https://hal.inria.fr/hal-01071759 Submitted on 6 Oct 2014 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. 1 CGALmesh: a Generic Framework for Delaunay Mesh Generation CLEMENT JAMIN, Inria and Universite´ Lyon 1, LIRIS, UMR5205 PIERRE ALLIEZ, Inria MARIETTE YVINEC, Inria JEAN-DANIEL BOISSONNAT, Inria CGALmesh is the mesh generation software package of the Computational Geometry Algorithm Library (CGAL). It generates isotropic simplicial meshes – surface triangular meshes or volume tetrahedral meshes – from input surfaces, 3D domains as well as 3D multi-domains, with or without sharp features. The under- lying meshing algorithm relies on restricted Delaunay triangulations to approximate domains and surfaces, and on Delaunay refinement to ensure both approximation accuracy and mesh quality. CGALmesh provides guarantees on approximation quality as well as on the size and shape of the mesh elements.
    [Show full text]
  • LEDA and CGAL Michael Hoffmann, Lutz Kettner and Stefan N¨Aher
    70 TWO COMPUTATIONAL GEOMETRY LIBRARIES: LEDA AND CGAL Michael Hoffmann, Lutz Kettner and Stefan N¨aher INTRODUCTION Over the past decades, two major software libraries that support a wide range of ge- ometric computing have been developed: Leda, the Library of Efficient Data Types and Algorithms, and Cgal, the Computational Geometry Algorithms Library. We start with an introduction of common aspects of both libraries and major differ- ences. We continue with sections that describe each library in detail. Both libraries are written in C++. Leda is based on the object-oriented par- adigm and Cgal is based on the generic programming paradigm. They provide a collection of flexible, efficient, and correct software components for computational geometry. Users should be able to easily include existing functionality into their programs. Additionally, both libraries have been designed to serve as platforms for the implementation of new algorithms. Correctness is of crucial importance for a library, even more so in the case of geometric algorithms where correctness is harder to achieve than in other areas of software construction. Two well-known reasons are the exact arithmetic assumption and the nondegeneracy assumption that are often used in geometric algorithms. However, both assumptions usually do not hold: floating point arithmetic is not exact and inputs are frequently degenerate. See Chapter 46 for details. EXACT ARITHMETIC There are basically two scientific approaches to the exact arithmetic problem. One can either design new algorithms that can cope with inexact arithmetic or one can use exact arithmetic. Instead of requiring the arithmetic itself to be exact, one can guarantee correct computations if the so-called geometric primitives are exact.
    [Show full text]
  • Cgal @ Rfiap 2018
    CGAL @ RFIAP 2018 Simon Giraudot GeometryFactory Mission Statement “Make the large body of geometric algorithms developed in the field of computational geometry available for industrial applications” CGAL EU Project Proposal, 1996 CGAL 2D Algorithms and Data Structures Triangulation Mesh Generation Polyline Simplification Voronoi Diagram Arrangement Boolean Operations Neighborhood Queries Minkowski Sum Straight Skeleton CGAL 3D Algorithms and Data Structures Tetrahedralization Mesh Generation Polyhedral Surface Deformation Boolean Operations Simplification Skeleton Segmentation Classification Hole Filling CGAL in Numbers 700,000 lines of C++ code 10,000 downloads/year (+ Linux distributions) 3,500 manual pages (user and reference manual) 1,000 subscribers to user mailing list 200 commercial users 120 software components 20 active developers 6 months release cycle 2 licenses: Open Source and commercial The CGAL Library ● C++ template class library ● Header only ● Cross platform: Windows, Linux, MacOs Android ● Supported compilers: VC++, g++, clang ● For several packages Java/Python bindings (using Swig) ● Dependencies ○ Boost: selected libraries ○ GMP, Mpfr: exact number types ○ Eigen: algebraic solvers ○ LAStools: I/O for LAS file format ○ OpenCV: random forests The CGAL Project ● Started 1996 as EU Research Project ● Academic project partners make long term commitment ● Editorial Board ○ Steers and animates the project ○ Reviews submissions ● Development infrastructure ○ CGAL on github, doxygen, travis, nightly testsuite (~40 platforms)
    [Show full text]