Graphics Reference
In-Depth Information
answer function Solve ( -tree
T)
begin
answer ans1, ans2;
operation op;
if IsPrimitive (T)
then return (PrimitiveAnswerOf (T));
else
begin
ans1: = Solve (LeftSubtree (T));
ans2: = Solve (RightSubtree (T));
op : = ValueAtRoot (T);
return (CombineAnswers (ans1,op,ans2));
end
end;
Algorithm 5.3.3.1.
A divide-and-conquer approach in CSG.
Figure 5.12.
What are the faces of this solid?
objects and then uses recursion. See Algorithm 5.3.3.1. The point membership clas-
sification function, which is discussed in Section 5.9, is an example of this.
One disadvantage with a CSG representation is that it is not easy to generate a
display using it because one needs the boundary of an object for that. Getting a bound-
ary representation for an object defined by CSG (a process referred to as boundary
evaluation ) is relatively hard. We look at this in more detail in Section 5.9. One
problem in this context (especially for mechanical design) is how to define a “face” of
an object. This certainly is no problem in the linear case, but it is for curved objects.
See Figure 5.12. What should the faces be in that figure? Some minimal characteris-
tics of a face are:
(1) A face should be contained in the boundary of the solid.
(2) Topologically, a face should be a surface with boundary.
(3) If the solid was defined via regularized Boolean set operations from a collec-
tion of halfspaces { H i }, then each face should be contained in b H i for some i.
(4) Faces should be quasi-disjoint, that is, pairwise intersections of faces should
either be empty or lie in their boundary.
Search WWH ::




Custom Search