PLIB 2 - Simple Geometry
The PLIB 2 Simple Geometry library handles linear algebra, low level geometric functions (intersection tests, etc) and the lowest level container objects for vectors, matrices, etc.
The lowest level type that SG is concerned with is the sgFlexNumberArray (FNA). This class can represent a number, a 2,3 or 4 element vector, a "handle" or a flexible length array of such things. Each number can be any of the standard OpenGL types - half, float, double, byte, short, unsigned short, int or unsigned int. Handles can stand in for textures, shaders, etc. An sgFlexNumberArray also has an optional ASCII name and knows it's type and length.
FNA's are used all over the place throughout PLIB. An FNA can contain the texels of a texture, a block of vertex data, a matrix or a single uniform variable to send to a shader.