This directory contains the source and test files for the quaternion library, libquat.a. It is based on Warren Robinett's adapted version of Ken Shoemake's code, as seen in Shoemake's 1985 SIGGRAPH paper. For those not familiar with quaternions, they are a concise and efficient way of describing rotations and orientations of three-dimensional objects. (Two good references for this subject are Ken Shoemake's 1985 SIGGRAPH papers "Quaternion Calculus for Animation" and "Animating Rotation with Quaternion Curves" in the '85 proceedings.) The library is built on Ken Shoemake's code (as presented in the appendix of the first paper listed above) and implements the most common quaternion functions, as well as some more obscure ones. In particular, there are conversion routines between vectors, matrices and quaternions, as well as various vector and matrix operations. This code is has been placed into the public domain by the University of North Carolina at Chapel Hill on January 9th, 2005; after consultation with its authors, Warren Robinett and Richard Holloway. It is provided "as is", with no guarantee or warranty of any kind, even fitness for a specific purpose. Documentation on individual routines is in quat.h. See header of quat.c and quat.h for more info. Compilation : ============= Unix : Edit makefile and uncomment the line corresponding to your architecture, then do 'make' Windows : See ../vrpn/README.Compiling Example Programs ================ These files are here for running random tests on the source code, and for doing conversions between quats and matrices, etc. They are handy for debugging source programs using quaternions. Files: ------ eul.c - convert from euler angles to quaternion qmat.c - converts matrix to quaternion qmult.c - multiplies two quaternions and shows result as a matrix and a quat qxform.c - does xform of a vector qmake.c - make a quaternion from an axis & angle; show result as quat and matrix