Subversion Repositories gelsvn

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
89 jab 1
/** \mainpage GEL: Geometric and linear algebra tools.
2
 
3
GEL is a framwork for working with graphics and certain vision related
4
tasks. There is a good deal of tools for processing Geometry and
5
some tools for computer Graphics. There is a halfedge based mesh class in the
6
HMesh namespace, and an indexed face set based mesh class IMesh.
7
 
8
Also found are two packages for linear algebra: CGLA is strictly for small
9
vectors and matrices. LinAlg is a lapack wrapper for slightly larger 
10
problems. Finally there are some utilities in Util.
11
*/
12
 
13
/** \namespace CGLA
14
\brief Computer Graphics Linear Algebra
15
 
16
CGLA is a collection of classes for linear algebra. All vectors and matrices 
17
are allocated on the static not using dynamic memory. Only dimensions 2,3,4 
18
are supported. There is also a quaternion class and other components. 
19
 
20
There is an introductory document discussing how to use CGLA.
21
*/
22
 
23
/** \namespace Graphics
24
		\brief The namespace for things related to (real time) rendering
25
 
26
		Right now this namespace contains mostly trackball and viewing related
27
		things.
28
*/
29
 
30
/** \namespace Geometry
31
		\brief A namespace for utilities related to geometry.
32
 
33
		This namespace contains a wide range of stuff: Spatial datastructures
34
		voxel grids and related classes as well as a simple triangle mesh class.
35
*/
36
 
37
/** \namespace HMesh
38
		\brief The HMesh namespace contains the Manifold class which is a halfedge
39
		based mesh.
40
 
41
		Apart from manifold there are also face and vertex circulators in this 
42
		namespace. More advanced things are relegated to the HMeshUtil namespace.
43
*/
44
 
45
/** \namespace HMeshUtil
46
		\brief The utility classes and functions for the halfedge based mesh.
47
 
48
		There is a variety of stuff in this namespace. Many tools for manipulating
49
		halfedge based meshes.
50
*/
51
 
52
 
53
/** \namespace IMesh
54
		\brief An indexed face set triangle mesh.
55
 
56
		The classes in this namespace are part of an endeavour to create a 
57
		mesh class for a mesh which is completely generic wrt attributes.
58
 
59
		Any kind of face and vertex attribute can be added at run time. */
60
 
61
/** \namespace IMeshUtil
62
		\brief Utilities for IMesh
63
 
64
		This namespace contains loaders and other utilities needed in conjunction
65
		with IMesh. */
66
 
67
/*!
68
	\namespace LinAlg
69
	\brief The Linear Algebra Implementation/Module/Package. 
70
 
71
  This is the linear algebra package deal with vector and matrix types plus 
72
  the basic operation on them. The Vector and Matrix Types are templated such 
73
  that the precision of a given 'system' can be changen. Though the precision 
74
  or type in mind is the double. Special types for 2 and 3 vectors 
75
  (CVec2 and CVec3) are included for improved performance. The more advanced 
76
  linear algebra functions are supplied by lincage to the LaPack package.
77
 
78
  \test The functionality in this pacage has if nothing else is mentioned 
79
  been tested by making small functions utilizing the functions. The 
80
  reason being that the functions here are rather esay to validate due to 
81
  their functional simplicity.
82
 
83
	A list of improvements in mind is:
84
	- Lapack interface
85
	- Vector and Matrix product and so on, with interface to _BLAS_
86
	- iterator thing
87
	- Memory leak check ? inline ?
88
	- Element functor
89
	- Identity matrixs
90
	- Compile and utilize the newer versions of the Lapack routines.
91
	- Have a nameing convention section in the documentaion
92
	- Integrate the design into the documentation
93
	- Have a get data in the matrix and vector instead of &A[0].
94
	- Have 3x3, 3x4 4x1 and 4x4 specialities.
95
	- Look at casting e.g. vec2i=vec2l.
96
	- Error handling in From/To matrix
97
	- Has error handling in Lapack been made ?
98
 
99
	\author Henrik Aanęs
100
	\version Aug 2001
101
*/
102
 
103
/** \namespace Util
104
		\brief This namespace is for general utilities that do not fit elsewhere.
105
 
106
*/
107