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.