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 |
|