Project Partners: Matt Anderson Allison McCarthy Project 1: 1. Program Usage: Files are opened and saved via the file menu. The view lets you toggle on such features as framing the whole motion (this is done automatically when you load a bvh or you can do it anytime by selecting it from the view menu) or track the motion. The camera can also be rotated by using the right mouse button and translated in the x-z plane by using the standard game control keys (w, a, s, d). The Edit menu lets you view the spline calculated to fit the motion, view the tangent vectors to the spline, recalculate the spline and toggle on and off arc length parameterization of the motion. The Spline can be edited by clicking on control points and dragging them in the x-z plane or by entering values into the boxes on the right hand side bar of the window. This right hand side bar will also display information about other items in the world that you can click on. Other objects you can click on are parts of the spline and joints of the character. You can play the motion by clicking on the play button and can drag to slider to any frame of the motion. 2. Limitations: BVH reading: * If data fields that are normally floating point numbers contain integer values (meaning no decimal point) the parser aborts. * If any hierarchy contains only a root node the parser aborts. * If tokens are misspelled the parser will abort. * If multiple well formed hierarchies exist only the first will be drawn. Flaky behavior: * After the spline has been edited the last few frames of reparameterized motion are oriented in the wrong direction, which must mean the tangents are inaccurate. * Edited motion which has been saved and reloaded is similar to but not precisely the original motion. Non-edited motion which is loaded and saved does not appear to change. * The camera's framing function most of the time but not always frames the entire motion. * For 3D picking, we wrote identifying colors to the back buffer, corresponding to each item of interest, and then read one back to see which item was picked. If the video is not running in 32 bit color, this can cause multiple objects to end up with the same color, and when we remap from color to objects we only get one of the objects (the last one drawn). 3. Features: * Loads most of the BVH files. * Displays ellipsoid bones * Ground plane shadows * Can select control points, joints and spline parts with 3D picking * Basic path editing (moving control points) * Arc length parameterization * Camera UI and automatic camera placement * Camera tracking * Display tangents to the spline * Save edited BVH files. 4. Code we borrowed and where we got it from: * MyArcBall.cpp and MyArcBall.h which we altered a little and used in our camera classes were given as example code on the CS559 fall homepage and where written October, 2001 by Michael L. Gleicher. * Quaternion.h and Vector3.h which are used in numerous places through out our code were written Spring 2001 by Eric McDaniel. * RunButton.h and RunButton.cpp which are used to implement the play button and slider were written October, 1999 by Michael L. Gleicher. * EulerAngles.h and EulerAngles.cpp which are used by the BVH to convert quaternions back to euler angles was written by Ken Shoemake in 1993 and was taken out of the Graphics Gems 4.