BuiltWithNOF
CSG - Constructive Solid Geometry

Constructive Solid Geometry is the process of building solid objects from other solids. The three CSG operators are Union, Intersection, and Difference. Each operator acts upon two objects and produces a single object result. By combining multiple levels of CSG operators, complex objects can be produced from simple primitives.

The resulting model is a PROCEDURAL MODEL stored in the mathematical form of a BINARY TREE, where the LEAF NODES are the primitives, correctly sized and positioned, and each BRANCH NODE is a Boolean operation.

The union of two objects results in an object that encloses the space occupied by the two given objects. Intersection results in an object that encloses the space where the two given objects overlap. Difference is an order dependent operator; it results in the first given object minus the space where the second intersected the first.

However there are many object that are extremely complicated to represent in this format, like object with soft edge or threaded hole.
For the algoritms of collision detection the CSG representation make easy the localization of one point in the space, related to the 3D object.

The real problem of the CSG is the computation of the real surface of the solid object, computation that are very difficoltous and heavy.

The major part of the algorithms of collision detection works only in  triangularized worlds. To can apply these algorithms to the CSG world, the CSG object needs to be triangularized.

To make this is possible to use the triangularization function of Java 3D.

[Home] [Introduction] [The Goals] [CSG] [Our Work] [XML Schema] [Results] [Links]