Technical geometry

The functionality is based on the Constructive Solid Geometry solid modelling paradigm.  This supports a Regularised Boolean Set of geometric constructs that can be defined and used to perform Boolean shape combinations using the difference, intersection or union operators.

A regularised Boolean set (in 3D) is a set containing surfaces that bound closed spaces and which do not contain extraneous surface or lines not associated with the volume boundary.  Input dialogs are provided to define the volumetric primitives from which more complex shapes may be formed from Boolean combinations.

The CSG representation is a popular one in professional CAD systems, along with the other major representational system, boundary representations (B-reps).  The difference is that in CSG components are formed from operations on geometric primitives such as cylinders, spheres and rectangular parallelepipeds, while in B-rep systems components are formed by specifying their bounding surfaces. 

In the majority of powerful CAD systems, the CSG representation is augmented by hybridisation with a boundary representation.  Rendering of CSG objects for viewing is the primary problem.  Historically CSG systems have utilised a ray tracing methodology to view the object.  Unfortunately this is too slow to provide real time rendering and interactive manipulation of the object on the screen.  Hybrid systems work by evaluating the CSG operations and deriving a boundary representation of the finished object.  This can be displayed with fast graphics hardware at interactive frame rates.

Such hybrid systems are difficult to code and require a good deal of effort to produce robust software able to turn the CSG object into a boundary representation.  For this reason CELIA utilises a third approach to visualising CSG objects (Goldfeather).  This methodology is an image space approach as opposed to an object space approach meaning that the CSG tree is evaluated on the fly during rendering on a pixel by pixel basis. 

Each primitive of the CSG tree is converted to a polygon mesh ready for scan conversion by a standard polygon rendering engine (Celia uses OpenGL, an industry standard). During scan conversion the algorithm uses a multi-pass rendering approach to decide visible surfaces and a final pass to display the finished object. 

What this means in actuality is that the code is robust but graphically intensive.  For best results graphics hardware should be used that has a hardware Z buffer at the very least, and preferably a hardware stencil buffer in addition.

The speed at which the display can update will depend significantly on the graphics hardware in the computer.  Very capable hardware can be obtained for PC systems for less than £200.  For more extensive explanation of these issues refer to a standard graphics text.