The 2D Arrangements package of CGAL supports the construction, maintenance, modification, traversal, querying, and presentation of arrangements embedded on two-dimensional orientable parametric surfaces such as planes, cylinders, spheres, and tori, and surfaces homeomorphic to them. The basic building blocks are the inducing curves, and in order to construct an arrangement, one must first select the type of curves. A geometric traits class encapsulates the definitions of this type and the implementation of the geometric predicates and constructions that handle curves of this type. The arrangement demonstration program is a way to visualize some of the various geometric traits supported by the 2D Arrangements package, as well as the various functions for querying and manipulating the induced arrangements. Currently, arrangements of bounded line segments, polylines, and conics, as well as arrangements of unbounded linear objects (e.g., segments, rays, and lines), all embedded in the plane are supported, and work is underway to include additional geometric traits and additional surfaces.
The new demonstration program is based on Qt 4 and it makes use of the CGAL Graphics View framework, in which the 2D primitives are individually represented as objects in a scene. The implementations of several demos in CGAL already make use of this framework. It is useful in particular for arrangements because of the wide range of curves that need to be supported. In this framework, support can be extended to different geometry types but at the same time, they can be handled uniformly when drawn in the scene.