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) |
|
|
|
|
|
|
|
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 } |
|
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 } |
|
Definition at line 165 of file cgul.cpp.
00166 { 00167 GUL_free_func = func; 00168 } |
|
Definition at line 160 of file cgul.cpp.
00161 { 00162 GUL_malloc_func = func; 00163 } |
|
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 } |