operator<<overloads for classes Point, Quaternion, and Matrix use the current settings of format parameters.
setw()determines the width of each number rather than the entire field width.
Most of the classes do not have copy constructors or
operator= overloads because the default versions generated by the compiler do the right thing (for once). (Class PixelMap is an exception, because it has pointer members.)
GLfloat is used as the representation type for most floating-point values. This is for compatibility with OpenGL. Although OpenGL provides a choice of precision for vertex and normal data, matrices are provided in
GLfloat form only. Single-precision floating-point provides only about six decimal places, but this is sufficient for most graphics calculations. If the number of points, vectors, or matrices used is large, substantial amounts of memory may be saved.
Acknowledgements: Mark Kilgard, Ken Shoemake, F.S. Hill, and others, for various publications on mthematical techniques for graphics and OpenGL, and to Liping Ye for improving various features, especially bitmaps.