Harvey Mudd College
Computer Science

CS157: Computer Animation


Project 2





In this programming assignment you'll extend your user interface/ curve editor to allow a user to specify keyframe orientations of the box. A keyframe orientation is a point on the current curve and an orientation, represented by a quaternion. Initially you should define the starting keyframe as the first point of the curve and the rotation between world coordinates and the local coordinates of the box. (If these axes are aligned the initial quaternion is [1,0,0,0].) Your program should
  1. Allow the user to move the box to any point, p, on the curve. At p, the box should be oriented according to the last keyframe preceeding p.
  2. Allow the user to reorient the box at p by rotating it about its local coordinate axes. You should provide rotation handles to allow the user to select the axis of rotation. The user should be able to compose a sequence of rotations to achieve the desired orientation.
  3. Allow the user to save the keyframe point/orientation.
  4. Allow the user to delete any existing keyframe.
  5. Animate the box moving along the curve changing orientation at the keyframes. At this point you do not have to interpolate between orientations; just make the change at the keyframe position.