Go to most recent revision | Blame | Last modification | View Log | RSS feed
/** \mainpage GEL: Geometric and linear algebra tools.
GEL is a framwork for working with graphics and certain vision related
tasks. There is a good deal of tools for processing Geometry and
some tools for computer Graphics. There is a halfedge based mesh class in the
HMesh namespace, and an indexed face set based mesh class IMesh.
Also found are two packages for linear algebra: CGLA is strictly for small
vectors and matrices. LinAlg is a lapack wrapper for slightly larger
problems. Finally there are some utilities in Util.
*/
/** \namespace CGLA
\brief Computer Graphics Linear Algebra
CGLA is a collection of classes for linear algebra. All vectors and matrices
are allocated on the static not using dynamic memory. Only dimensions 2,3,4
are supported. There is also a quaternion class and other components.
There is an introductory document discussing how to use CGLA.
*/
/** \namespace Graphics
\brief The namespace for things related to (real time) rendering
Right now this namespace contains mostly trackball and viewing related
things.
*/
/** \namespace Geometry
\brief A namespace for utilities related to geometry.
This namespace contains a wide range of stuff: Spatial datastructures
voxel grids and related classes as well as a simple triangle mesh class.
*/
/** \namespace HMesh
\brief The HMesh namespace contains the Manifold class which is a halfedge
based mesh.
Apart from manifold there are also face and vertex circulators in this
namespace. More advanced things are relegated to the HMeshUtil namespace.
*/
/** \namespace HMeshUtil
\brief The utility classes and functions for the halfedge based mesh.
There is a variety of stuff in this namespace. Many tools for manipulating
halfedge based meshes.
*/
/** \namespace IMesh
\brief An indexed face set triangle mesh.
The classes in this namespace are part of an endeavour to create a
mesh class for a mesh which is completely generic wrt attributes.
Any kind of face and vertex attribute can be added at run time. */
/** \namespace IMeshUtil
\brief Utilities for IMesh
This namespace contains loaders and other utilities needed in conjunction
with IMesh. */
/*!
\namespace LinAlg
\brief The Linear Algebra Implementation/Module/Package.
This is the linear algebra package deal with vector and matrix types plus
the basic operation on them. The Vector and Matrix Types are templated such
that the precision of a given 'system' can be changen. Though the precision
or type in mind is the double. Special types for 2 and 3 vectors
(CVec2 and CVec3) are included for improved performance. The more advanced
linear algebra functions are supplied by lincage to the LaPack package.
\test The functionality in this pacage has if nothing else is mentioned
been tested by making small functions utilizing the functions. The
reason being that the functions here are rather esay to validate due to
their functional simplicity.
A list of improvements in mind is:
- Lapack interface
- Vector and Matrix product and so on, with interface to _BLAS_
- iterator thing
- Memory leak check ? inline ?
- Element functor
- Identity matrixs
- Compile and utilize the newer versions of the Lapack routines.
- Have a nameing convention section in the documentaion
- Integrate the design into the documentation
- Have a get data in the matrix and vector instead of &A[0].
- Have 3x3, 3x4 4x1 and 4x4 specialities.
- Look at casting e.g. vec2i=vec2l.
- Error handling in From/To matrix
- Has error handling in Lapack been made ?
\author Henrik Aanæs
\version Aug 2001
*/
/** \namespace Util
\brief This namespace is for general utilities that do not fit elsewhere.
*/