Conformal Geometric Algebra Package

Conformal Geometric Algebra Package

Conformal Geometric Algebra Package Cha¨ım Zonnenberg THESIS INF SCR 06 66 Utrecht University Department of Information & Computing Sciences July 23, 2007 Conformal Geometric Algebra Package Abstract This masters thesis describes the research that has been done in the CGA-package-project (Conformal Geometric Algebra Package). In this project a Conformal Geometric Algebra (CGA)-kernel framework has been built for the Computational Geometric Algorithms Library (CGAL). The most important modeling and implementation details will be discussed in detail. Specific research has been done for the use of CGA-flags in high-dimensional polytope algorithms (Convex Hull, Delaunay Triangulation and Voronoi Diagrams). The complete code and documentation of the CGA-package can be found on the internet: http://www.cs.uu.nl/groups/MG/software. Figure 1: Illustration Edelsbrunner, section 4.3.2 3 Preface The default geometric model in Computational Geometry has been Linear Algebra for a long time. The advantage of the linear algebra model is that it is time and space efficient. Nowadays, time and memory space are becoming less important in Computational Geometry, because memory space and processor speed are still increasing rapidly. So, in future geometric models with other advantages for the programmer will become attractive in Computational Geometry as well. This thesis deals with a relatively new geometric model: Conformal Geometric Algebra (CGA). In CGA the geometrical and mathematical properties are separated, so the programmer does not have to bother about the mathematics that are behind his geometric calculations. CGA would be a very useful model in the implementation of 3D-graphical engines. However, at this moment, few programming toolkits/libraries for this geometric model are available. Therefore this project was initiated: to develop a CGA-library that implements the Computational Geometry-algorithms. The library CGAL was chosen as the foundation of this package, since it is the most-used library for Computational Geometry-research and since it has nice extendability properties. The result of this project is the Conformal Geometric Algebra Package (CGAP). This thesis describes the different ingredients of CGAP and discusses the most important de- sign and implementation issues of the development. The reader is assumed to be a Compu- tational Geometry-scientist or Computational Geometry-programmer. Knowledge of advanced C++-programming and basic CGAL is required. Besides that some knowledge of the Linear Al- gebra and Geometric Algebra is also useful. To keep things understandable for reader that are only familiar with Linear Algebra, parallels with Euclidic geometry will be given in several sections. Where further knowledge is needed, literature references will be given. Extra research for this project has been done on CGA-flags. CGA-flags provide a useful tech- nique to work with high-dimensional polytopes in several algorithms. In this thesis we will show how flags can be used in an algorithm that generates dD-voronoi diagrams. Several abbreviations will be used in this thesis, like GA, CGA, CGAL and CGAP. The reader should be aware of the fact that those terms look much alike, but do not mean the same things. Therefore a list of most used abbreviations will be given in this thesis. I want to thank dr. Leo Dorst and drs. Daniel¨ Fontijne of the University of Amsterdam for their advice at the beginning of this project. Besides that, I want to mention Marius D. Zaharia, who has been a pioneer in the research field of CGA-flags. Last but certainly not least, I want to thank 4 dr. Remco Veltkamp, my thesis supervisor, for his useful input, support, patience and coaching in this master thesis project. June 2007, Cha¨ım Zonnenberg 5 Contents 1 Introduction and Problem Definition 11 1.1 Problem Definition, scope of the project . .......... 12 1.2 Thesisoverview .................................. 12 1.3 Projectreferences ............................... ..... 13 2 Geometric Algebras 14 2.1 Disadvantages of Linear Algebra . ........ 14 2.2 CGA............................................ 15 2.3 Mathematical backgrounds of CGA . ....... 16 2.3.1 BasicAlgebra.................................. 16 2.3.2 Cliffordalgebra ............................... 17 2.3.3 GeometricAlgebra.. .. .. .. .. .. .. .. .. .. .. .. 18 2.3.4 Conformal Geometric Algebra . ..... 18 2.4 GeometricalconceptsofCGA. ...... 21 2.4.1 ObjectsinCGA.................................. 22 2.4.2 Operations .................................... 24 2.4.3 Rotation and Translation . ..... 25 2.4.4 Orientation ................................... 26 2.5 Applications and Software . ....... 27 2.5.1 Visualizers ................................... 27 2.5.2 Applications.................................. 27 2.6 Discussion:theuseofCGA’s . ...... 30 6 3 CGAL 32 3.1 Introduction .................................... 32 3.2 DesignprinciplesofCGAL. ...... 33 3.3 Generic programming approach . ...... 35 3.4 CGALlibrarystructure . ...... 36 3.5 Kernelarchitecture . .. .. .. .. .. .. .. .. .. .. .. .. ...... 36 3.5.1 Geometricalobjects . 37 3.5.2 Functionobjects ............................... 38 3.6 Summaryandconclusion . 39 4 Voronoi diagrams, Delaunay triangulations and convex hulls 40 4.1 Definitions...................................... 41 4.1.1 Convexity and polytopes . 41 4.1.2 Convexhull.................................... 41 4.1.3 Voronoidiagram ................................ 42 4.1.4 Delaunay triangulation . ..... 43 4.2 Datastructures .................................. 44 4.2.1 The complexity of d-dimensional polytopes . 46 4.3 Algorithms...................................... 46 4.3.1 Lifting algorithms . 47 4.3.2 Edelsbrunner algorithm . 47 4.3.3 Convex hull in (d + 1)-D to Delaunay triangulation in d-D........... 50 4.3.4 Delaunay triangulation-comparison: Linear Algebra vs. Conformal Geo- metricAlgebra .................................. 51 4.4 Summary ......................................... 52 5 Flags 53 5.1 CGA-flags........................................ 54 5.2 Flags and convex polyhedral sets . ........ 54 5.2.1 Datastructure................................. 55 5.2.2 Geometric operations with CGA-flags . ...... 56 5.3 Summary ......................................... 59 6 CGA package in CGAL 61 6.1 Assumptions and starting points for the OO-model . ............ 61 6.2 Kerneldesign.................................... 62 6.2.1 ObjectOrientedModel. 62 6.3 Objects and operations . ..... 65 6.3.1 Kernel primitives in CGAP . 66 6.3.2 Operatorsymbols ............................... 69 6.3.3 Functionobjects ............................... 69 7 6.3.4 Details of other design issues . ...... 72 6.4 Debugging/validation . ....... 72 6.5 Otherlibraries.................................. ..... 74 6.5.1 FLTK........................................ 74 6.5.2 OpenGL...................................... 75 6.6 Summaryandconclusion . 75 6.6.1 CGAstrengths .................................. 75 6.6.2 CGALdesignprinciples . 75 6.7 Futurework...................................... 77 7 Application: constructing dD Voronoi Diagrams using CGA-flags 80 7.1 Introduction .................................... 80 7.2 Definition and analysis of the problem . ......... 80 7.3 The algorithm design and implementation . .......... 81 7.3.1 Usinganiterator ............................... 81 7.3.2 TheuseoftheflagGA .............................. 83 7.3.3 Checkingtheedge............................... 84 7.3.4 The algorithm in a class Voronoi Flags d ................... 85 7.4 Whyaniterator? .................................. 87 7.5 Conclusion ...................................... 89 7.6 Futurework...................................... 89 8 Summary and Conclusion 92 8 Notations used in this thesis: Vectors: a, b, c Unit vectors, CGA-base elements: e1, e2. Multivectors: A,B,C,D Set of points: P1, P2,...Pn. Points in CGA P,Q,R,S..., d-dimensional space: Rd Dual: M ∗ Reverse: M † d-blade of A: A d Geometric product,h i Clifford product: AB Inner product: A B Outer product (join):· A B Left contraction: A B ∧ Right contraction: Ac B b Pseudoscalar: Id Meet: ∨ 9 Most used abbreviations in this thesis CGA Conformal Geometric Algebra • CGAL Computational Geometric Algorithms Library • CGAP Conformal Geometric Algebra Package • GA Geometric Algebra • HGA Homogeneous Geometric Algebra • LA Linear Algebra • 10 CHAPTER 1 Introduction and Problem Definition Computer graphics has a lot of applications in 21st century everyday life. In hospitals medical imaging software is used to generate 3D-images from CT-scans and MRI-scans. In the -almost real- world of computer games the gamer has access to real time virtual 3D-environments. Ar- chitects use AutoCAD-software to design houses, cars, bridges and microchips. Car navigation systems use geographical information systems to perform their calculations. All computer applications mentioned above belong to the field of Computer Graphics. Those Computer Graphics applications use software that performs geometric calculations. Geomet- ric models, datastructures and algorithms are used to get the desired results. The subfield of Computer Graphics that researches this is called ’Computational Geometry’. Within a computational geometry application we can distinguish several levels: applications The program that interacts with the user and external digital equipment. • algorithms and datastructures The underlying routines and models in the application that • make the program work. geometric operations The geometric

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    97 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us