# CSG-Based Modeling

object instancing is also used in CSG graphs (Constructive Solid Geometry), a common type of representation for objects within the CAD domain. A CSG expression is a set operation with volume objects or with point sets in IR3. The basic objects (ball, cylinder, cone, etc.,…) are canonically represented, trans­formed individually, and combined using Boolean operations (П, U, , etc.,…). Since the Boolean operations are univalent or bivalent (unary or binary), the expression can also be illustrated in the form of a binary tree (CSG tree). Ger­vautz and Traxler  extend this tree description by allowing cyclic CSG graphs, and by permitting arbitrarily refined descriptions of objects. A CSG graph can be regarded as an extension of object instancing, since aside from the union operation other Boolean operations are allowed.

In the approach of Gervautz and Traxler, the CSG graphs are produced by Section 5.13 parametric L-systems. Due to the special structure of the graphs, the languages CSG-Based Modeling

have the following notation (axiom w: E):  //op є {П, u, }

// trans є {rotx(a), roty(a),rotz(a),

// move(dx, dy, dz), scale(dx, dy, dz) // uscale(s)}

// obj є set of primitive objects

The parameterized description of the Sierpinski triangle or its discrete approx­imation with a CSG tree of depth six is represented in this notation as (with

w = S (6)):

S(c) : c = 0 ::= triangle

S(c) : c> 0 ::= move(0.5,0.5)uscale(0.5)S(c – 1)

Umove(0.5, -0.5)uscale(0.5)S(c – 1) Umove(-0.5,0.5)uscale(0.5)S(c-1)

For the transformation of the L-system into a cyclic CSG graph, additionally three node types are introduced: A t-node is a parameterized transformation node; an s-node represents an option; a c-node is able to implement a numeric Figure 51s computation. The graph for the above system is represented in Fig. 5.18a. Cyclic CSG graphs: (a) description of a 