Solid Representations: An Introduction
Most geometric objects we see every day are solids. That is, they are
geometric objects with interior.
Solids can be very simple like a cube or very complex like a piston
engine. To be processed by computers, solids must have some representations
that can describe the geometry and characteristics completely.
In fact, a good representation should address the following issues:
These issues may be contradictory with each other. For efficiency purpose,
a curvilinear solid may be approximated by a polyhedron. There are many
efficient and robust algorithms for handling polyhedra; however, accuracy may
not be maintained in the process of approximation. For example, given two
curvilinear solids that are tangent to each other, this tangency may disappear
after converting to a polyhedron.
- Domain :
While no representation can describe all possible solids,
a representation should be able to represent a useful
set of geometric objects.
- Unambiguity :
When you see a representation of a solid, you will know what is
being represented without any doubt. An unambiguous
representation is usually referred to as a complete
- Uniqueness :
That is, there is only one way to represent a particular solid.
If a representation is unique, then it is easy to determine if
two solids are identical since one can just compare their
- Accuracy :
A representation is said accurate if no approximation
- Validness :
This means a representation should not create any invalid or
impossible solids. More precisely, a representation will not
represent an object that does not correspond to a solid.
- Closure :
Solids will be transformed and used with other operations such
as union and intersection. "Closure" means that
transforming a valid solid always yields a valid solid.
- Compactness and Efficiency :
A good representation should be compact enough for saving space
and allow for efficient algorithms to determine desired
Problems occur even for the polyhedra world. Many graphics APIs such as
PHIGS PLUS and OpenGL have built-in data structures for representing
polyhedra; but, these representations could generate invalid solids.
There are representations that can always represent valid solids; but, these
representations are in general more complex than those available in graphics
In summary, designing representations for solids is a difficult job and
compromises are often necessary. This course will only discuss the following
wireframes, boundary representations and constructive