CLU library
1.0
The CLU library is a utilities library to complement CL. CLU is written in ANSI C for OpenGL 1.2. It is under development by members of the 60Hz Real-time Rendering Group at the Department of Computer Science and Software Engineering at the University of Western Australia. It is open source under the GNU public license.
For details on how this documentation is organised, see the Documentation Guide.
CLU is designed to complement the CL library by adding structures and functions for operations that are commonly used in real-time graphics applications. Whereas CL is very close to OpenGL, CLU provides functionality that is common, but not necessary for many applications.
It has been designed with a number of key features:
- CLU syntax (naming conventions etc.) resembles CL syntax (which in turn resembles OpenGL).
- CLU provides functions for modifying CL structures (for example, quickly setting internal variables).
- CLU provides functions for 3D maths (not provided by CL or OpenGL).
- CLU provides structs common ro real-time 3D applications, but not natively supported by OpenGL or CL (eg. quaternions, spheres, cones)
- CLU is open source and freely distributable.
These features may make CLU particularly suitable as a complement for CL when more than just basic rendering is required; it introduces more complex 3D concepts and, provides basic implementations, and is open source to allow for code inspection.
Unlike CL structures, CLU structures are not based on encapsulation of data required for rendering with the OpenGL. Rather, CLU structures encapsulate data most commonly used in 3D applications, but not passed directly to OpenGL. Clearly, this is more subjective than CL but it is only meant as an example to students of what other data structures they may choose to use.
CLU provides functions for four major areas:
- standard: malloc, free, set, serialise, and print CLU structs
- maths: basic 3D mathematics including point, vector, matrix, and quaternion operations
- distance: basic 3D distance including operations like point to plane distance and sphere collision detection
- convenience: other useful functions
The programmers who contributed to CLU are:
- Nick Lowe
- James Strauss
- Gian Paolo Lorenzetto
Thanks also goes to Amitava Datta and the rest of the 60Hz Real-time Rendering Group for discussion and feedback during the development of CLU.
- Author:
- Nick Lowe
Jamess Strauss
Gian Paolo Lorenzetto
- Date:
- 2004
Generated on Thu Dec 27 13:53:42 2007 for CLU by
1.4.6