Graphics Reference
In-Depth Information
Figure 5.45.
Neighborhood classification
of an on/on point.
Figure 5.46.
The need for separating planes.
N(
p
,
X
) = (F,F,T,T) and N(
p
,
Y
) = (T,T,F,F). In Figure 5.44(b), N(
p
,
X
) = (F,F,T,T)
and N(
p
,
Y
) = (F,F,T,T). Simple Boolean operations on these representations would
then determine the neighborhood of points in the
on
/
on
case. In a corresponding
three-dimensional example of orthogonal blocks one would use an encoding based on
octants. The reader is referred to [Tilo80] and [ReqV85] for a discussion of how one
would handle more general cases.
Next, we consider the problem of converting from a b-rep to CSG, which is much
more difficult than going in the opposite direction. The basic idea is to use the half-
spaces associated to the faces of the b-rep to describe a CSG representation. Unfor-
tunately, this may not work as the example in Figure 5.46(a) shows. The shaded region
consisting of the three regions
A
,
B
, and
C
is our solid
X
and
H
1
and
H
2
, the interi-
ors of the horizontal and vertical ellipse, respectively, are the halfspaces associated to
the faces of
X
. No CSG representation which only uses these two halfspaces will rep-
resent
X
because any space defined by such a representation that contains region
C
will also contain region
D
. We have to introduce some additional halfspaces, called
separating planes
. The separating plane and the halfplane
H
3
below it shown in Figure
5.46(b) will do the job for the space
X
. For example,
(
)
»«
(
)
»«
(
)
XH
=«
*
H
*
H
*
H
*
H
*
H
.
(5.5)
3
1
3
2
1
2