Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

cgul.h File Reference

Go to the source code of this file.

Compounds

struct  GULpoint
struct  GULpoint2

Defines

#define GULDECL
#define GULCALL
#define CCALL

Functions

GULDECL void GULCALL GUL_set_malloc_func (void *(CCALL *func)(size_t))
GULDECL void GULCALL GUL_set_free_func (void(CCALL *func)(void *))
GULDECL void GULCALL GUL_SurfaceOverXYPlane (int nDatPoints, GULpoint *datPoints, int useStdDevs, double *StdDevs, int minimize, int nIter, int pu, int pv, int *ret_nu, double **retU, int *ret_nv, double **retV, GULpoint ***retPw)
 executes the MBA algorithm and constructs a 3-dimensional surface from the results (x,y are linear mappings of u and v ). More...

GULDECL void GULCALL GUL_MBASurface (int nDatPoints, GULpoint *datPoints, GULpoint2 *domPoints, int nIter, int pu, int pv, int *ret_nu, double **retU, int *ret_nv, double **retV, GULpoint ***retPw)
 creates a surface with the MBA algorithm. More...

GULDECL void GULCALL GUL_CommonCoordinateSystem (GULpoint B, GULpoint P, GULpoint Ab, GULpoint Pb, double **T)


Define Documentation

#define CCALL
 

Definition at line 30 of file cgul.h.

#define GULCALL
 

Definition at line 29 of file cgul.h.

#define GULDECL
 

Definition at line 28 of file cgul.h.


Function Documentation

GULDECL void GULCALL GUL_CommonCoordinateSystem GULpoint    B,
GULpoint    P,
GULpoint    Ab,
GULpoint    Pb,
double **    T
 

Definition at line 274 of file cgul.cpp.

00277 {
00278   point<double> b,p,ab,pb;
00279   Ptr< Ptr<double> > t;
00280   int i,j;
00281 
00282   b.x = B.x;    b.y = B.y;    b.z = B.z;
00283   p.x = P.x;    p.y = P.y;    p.z = P.z;
00284   ab.x = Pb.x;    ab.y = Pb.y;    ab.z = Pb.z;
00285   pb.x = Pb.x;    pb.y = Pb.y;    pb.z = Pb.z;
00286 
00287   t.reserve_pool(4);
00288   for( i = 0; i < 4; i++ )
00289     t[i].reserve_pool(4);
00290 
00291   guma::CommonCoordinateSystem( b, p, ab, pb, t );
00292 
00293   for( i = 0; i < 4; i++ )
00294     for( j = 0; j < 4; j++ )
00295       T[i][j] = t[i][j];
00296 }

GULDECL void GULCALL GUL_MBASurface int    nDatPoints,
GULpoint   datPoints,
GULpoint2   domPoints,
int    nIter,
int    pu,
int    pv,
int *    ret_nu,
double **    retU,
int *    ret_nv,
double **    retV,
GULpoint ***    retPw
 

creates a surface with the MBA algorithm.

'Dat' contains the 3d values and 'Dom' the locations in the parametric domain (output arrays are reserved automatically)

Definition at line 240 of file cgul.cpp.

00246 {
00247   Ptr< point<double> > dat;
00248   Ptr< point2<double> > dom;
00249   Ptr<double> U,V;
00250   Ptr< Ptr< point<double> > > Pw;
00251 
00252   copy( nDatPoints, datPoints, dat );
00253   copy( nDatPoints, domPoints, dom );
00254 
00255   gunu::MBASurface( nDatPoints, dat, dom, nIter, pu, pv, 
00256                     ret_nu, &U, ret_nv, &V, &Pw );
00257 
00258   copy( U.nElems(), U, retU ); 
00259   copy( V.nElems(), V, retV ); 
00260   copy( Pw.nElems(), Pw[0].nElems(), Pw, retPw );
00261 }

GULDECL void GULCALL GUL_set_free_func void(CCALL *func   )(void *)
 

Definition at line 165 of file cgul.cpp.

00166 {
00167   GUL_free_func = func;
00168 }

GULDECL void GULCALL GUL_set_malloc_func void *(CCALL *func   )(size_t)
 

Definition at line 160 of file cgul.cpp.

00161 {
00162   GUL_malloc_func = func;
00163 }

GULDECL void GULCALL GUL_SurfaceOverXYPlane int    nDatPoints,
GULpoint   datPoints,
int    useStdDevs,
double *    StdDevs,
int    minimize,
int    nIter,
int    pu,
int    pv,
int *    ret_nu,
double **    retU,
int *    ret_nv,
double **    retV,
GULpoint ***    retPw
 

executes the MBA algorithm and constructs a 3-dimensional surface from the results (x,y are linear mappings of u and v ).

when 'minimize' is set, the base rectangle in the xy-plane is chosen so that its area is minimal

input arrays:

datPoints : array of data-points StdDevs : standard deviations of the data points (if useStdDevs = 0, all assumed as beeing one)

output arrays are reserved by the function and have the dimensions:

retU : nu + pu + 2 retV : nv + pv + 2 retPw : nv + 1 retPw[i] : nu + 1

Definition at line 209 of file cgul.cpp.

00217 {
00218   Ptr< point<double> > datP;
00219   Ptr<double> stdD, U, V;
00220   Ptr< Ptr< point<double> > > Pw;
00221 
00222   copy( nDatPoints, datPoints, datP );
00223   if( useStdDevs ) copy( nDatPoints, StdDevs, stdD );
00224 
00225   gunu::SurfaceOverXYPlane< double,point<double> >( 
00226                nDatPoints, datP, (useStdDevs!=0), stdD, (minimize!=0), nIter, pu, pv, 
00227                ret_nu, &U, ret_nv, &V, &Pw );
00228 
00229   copy( U.nElems(), U, retU ); 
00230   copy( V.nElems(), V, retV ); 
00231   copy( Pw.nElems(), Pw[0].nElems(), Pw, retPw );
00232 }


Generated on Mon Jan 21 04:17:45 2002 for GUL 0.6 - Geometry Utility Library by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001