6.2.
BASIC
DSI
CONSTRAINTS
In
practice,
such
a
constraint
is
implemented
as a
hard
DSI
constraint
(see
section
(4.5))
where,
at
each
step
of the
iterative
process,
the
location
x(cc)
of
the
node
a is
replaced
by its
projection
on the
straight
line
passing
through
the old
position
x
0
id(a)
and
colinear
to
d(a):
There
are two
main
applications
of
this
constraint:
• If, in a
stratified media,
a
triangulated
surface
T(S]
constrained
to be
more
or
less
parallel
to a
given surface
SQ
,
while honoring
a set of
constraints
different
from
those
applied
to
T(«So),
must
be
built, then proceed
as
follows:
—
First,
T(«S)
has to be
built
as a
copy
of
T(«So).
—
Next,
a
displacement direction
d(a)
equal
to the
unit normal vector
to
T(So)
has to be
installed
at
each node
of
T(S}.
—
Finally,
for
each node
a of
T(«S),
a
Control-Straightline constraint asso-
ciated with
the
directions
d(a)
denned
above
has to be
installed.
• If a
boundary
of a
triangulated
surface
T(S)
is
required
to
slide along vertical
or
non-vertical walls, then such behavior
can be
specified
as a
series
of
Control-
Straightline constraints applied
to the
nodes
of
this
boundary
and
associated
with
a
constant direction
d(a)
parallel
to the
walls.
Figure
(6.9)
shows
an
example
of
Control-Straightline
constraints
where
the
boundary
of a
triangulated
surface
is
constrained
to
move
only
in the
vertical
direction.
Fuzzy
Control-Normal-Vector
constraint
Let
T(tS)
be a
triangulated
surface
and let
N(p)
be a field of
unit
vectors
given
at any
point
p of the 3D
space.
By
definition,
the DSI
constraint
specifying
that
T(S]
should
be
approximately
orthogonal
to
N(x(a))
in the
neighborhood
of a
given
node
a of
T(S]
is
called
a
"fuzzy
Control-Normal-
Vector"
constraint
10
on
T(S}.
In
practice,
this
is
equivalent
to
saying
that
one
would like
to
have
11
or,
equivalently,
10
Note
that
this constraint specifies
the
slope
of the
surface,
that
is to
say,
its
derivatives,
without specifying
its
location
in the 3D
space.
If the
surface location also needs
to be
specified,
then
it is
necessary
to use a
fuzzy
Control-Point constraint
in
addition.
1:L
Remember
that
AT
0
(a) =
N(a)
—
{a}
represents
the
orbit
of a
(see
figure
(1.3)).
265