The libdms library consists of four general sections:
These are:
These are the classes Vector2, Vector3, and Vector4, representing 2, 3, and 4 dimensional points or vectors. The classes include several standard functions such as dot products, lengths, and math functions (addition, etc.).
The classes can be used for computations of object motions and geometry. They are also used by most of the other classes.
The Color class is a subclass of Vector4 that includes a function for calling glColor, and several predefined constant names for standard colors - Color::Red, Color::Green, etc.
These classes - Light, Material, Texture2D, Transparency, and SimpleTransform - wrap various bits of fairly common OpenGL calls. Each class includes member variables to store the data required for the feature they implement (e.g. ambient/diffuse/specular color), and functions to set and get the values of these member variables.
There are also Image and TIFFImage classes for storing the data used by textures.
These are the Camera and Object abstract classes, and their derived classes.
Camera represents a view of a scene. It consists of a projection (perspective or orthographic), and a camera position and orientation. There are two subclasses, for the different kinds of projection - PerspCamera and OrthoCamera. The base Camera class itself takes care of the position & orientation, stored as an X/Y/Z location and rotations about the Y and X axes.