Summary
In this chapter, you implemented a robust quaternion library. Quaternions are important to the rest of this book as all animated rotation data is recorded as quaternions. You learned how to create quaternions and common quaternion operations, combine quaternions with multiplication, transform vectors by quaternions, interpolate quaternions and utility functions to create quaternions given a forward and up direction, and convert between matrices and quaternions.
In the next chapter, you will use your combined knowledge of vectors, matrices, and quaternions to define a transformation object.