CAVEActors: A Human Actor Library For The CAVETM
Darren R. Thompson
V. Movement Control
The body rotations
are implemented using time-linear curves. These curves are constructed
using two x-, y-, z-angles and two times. The two angles are the
start angle and the end angle. The two times are the time at the
start angle and the time at the end angle. This layout is shown in
Figure
14. When update is called for the body, the current CAVETime
is passed. If it's not time for a part to start rotating, the function
returns without changing any of the variables' values. If it's past
the end time for the part to rotate, the part rotates to the end angle
and the function returns. If the programmer wants to override the
current rotation, a function called rcSetCurrent can be used to set the
current rotation.
The actor can
be translated in one three ways. One is by calling the function tcSetCurrent
to set the current position. The second is by using a translation
time-linear curve. This is the same as the rotation time-linear curve,
with the exception that points in space are passed instead of angles.
The third way is to construct a time-cubic curve, which is shown in Figure
15. This is done by providing four control points, which the
actor will walk through, and four times for the actor to arrive at each
control point.
Figure 14 A time-linear curve to compute the current rotation.
Figure 15 A time-cubic curve to compute the actor's current
position at a given time.