|
|
/*
** Copyright 1992, Silicon Graphics, Inc. ** All Rights Reserved. ** ** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.; ** the contents of this file may not be disclosed to third parties, copied or ** duplicated in any form, in whole or in part, without the prior written ** permission of Silicon Graphics, Inc. ** ** RESTRICTED RIGHTS LEGEND: ** Use, duplication or disclosure by the Government is subject to restrictions ** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data ** and Computer Software clause at DFARS 252.227-7013, and/or in similar or ** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished - ** rights reserved under the Copyright Laws of the United States. ** */
#include <stdlib.h>
#include <setjmp.h>
struct JumpBuffer { jmp_buf buf; };
#define mysetjmp(x) setjmp((x)->buf)
#define mylongjmp(x,y) longjmp((x)->buf, y)
/* <<AT&T USL C++ Language System <3.0.1> 02/03/92>> */ /* < ../core/mapdesc.c++ > */
void *__vec_new (void *, int , int , void *);
void __vec_ct (void *, int , int , void *);
void __vec_dt (void *, int , int , void *);
void __vec_delete (void *, int , int , void *, int , int ); typedef int (*__vptp)(void); struct __mptr {short d; short i; __vptp f; };
typedef unsigned int size_t ;
// extern void *malloc (size_t );
// extern void free (void *);
typedef float REAL ; typedef void (*Pfvv )(void ); typedef void (*Pfvf )(float *); typedef int (*cmpfunc )(void *, void *); typedef REAL Knot ;
typedef REAL *Knot_ptr ;
struct TrimVertex;
struct TrimVertex { REAL param__10TrimVertex [2]; long nuid__10TrimVertex ; };
typedef struct TrimVertex *TrimVertex_p ;
struct GridVertex;
struct GridVertex { long gparam__10GridVertex [2]; };
struct Buffer;
struct Buffer {
struct Buffer *next__6Buffer ; }; struct Pool;
enum __Q2_4Pool5Magic { is_allocated__Q2_4Pool5Magic = 62369, is_free__Q2_4Pool5Magic = 61858} ;
struct Pool {
struct Buffer *freelist__4Pool ; char *blocklist__4Pool [32]; int nextblock__4Pool ; char *curblock__4Pool ; int buffersize__4Pool ; int nextsize__4Pool ; int nextfree__4Pool ; int initsize__4Pool ;
char *name__4Pool ; int magic__4Pool ; };
void __glgrow__4PoolFv (struct Pool *);
struct PooledObj;
struct PooledObj {
char __W3__9PooledObj ; };
struct GridTrimVertex;
struct GridTrimVertex {
char __W3__9PooledObj ;
struct TrimVertex dummyt__14GridTrimVertex ; struct GridVertex dummyg__14GridTrimVertex ;
struct TrimVertex *t__14GridTrimVertex ; struct GridVertex *g__14GridTrimVertex ; };
typedef struct GridTrimVertex *GridTrimVertex_p ;
struct BasicCurveEvaluator;
struct BasicSurfaceEvaluator;
struct Backend;
struct Backend {
struct BasicCurveEvaluator *curveEvaluator__7Backend ; struct BasicSurfaceEvaluator *surfaceEvaluator__7Backend ;
int wireframetris__7Backend ; int wireframequads__7Backend ; int npts__7Backend ; REAL mesh__7Backend [3][4]; int meshindex__7Backend ; };
typedef REAL Maxmatrix [5][5];
struct Mapdesc;
struct Mapdesc {
char __W3__9PooledObj ;
REAL pixel_tolerance__7Mapdesc ; REAL clampfactor__7Mapdesc ; REAL minsavings__7Mapdesc ; REAL maxrate__7Mapdesc ; REAL maxsrate__7Mapdesc ; REAL maxtrate__7Mapdesc ; REAL bboxsize__7Mapdesc [5];
long type__7Mapdesc ; int isrational__7Mapdesc ; int ncoords__7Mapdesc ; int hcoords__7Mapdesc ; int inhcoords__7Mapdesc ; int mask__7Mapdesc ; Maxmatrix bmat__7Mapdesc ; Maxmatrix cmat__7Mapdesc ; Maxmatrix smat__7Mapdesc ; REAL s_steps__7Mapdesc ; REAL t_steps__7Mapdesc ; REAL sampling_method__7Mapdesc ; REAL culling_method__7Mapdesc ; REAL bbox_subdividing__7Mapdesc ; struct Mapdesc *next__7Mapdesc ; struct Backend *backend__7Mapdesc ; };
void __glcopy__7MapdescSFPA5_flPfN20 (REAL (*)[5], long , float *, long , long );
void __glxformRational__7MapdescFPA0 (struct Mapdesc *, REAL (*)[5], REAL *, REAL *); void __glxformNonrational__7Mapdesc0 (struct Mapdesc *, REAL (*)[5], REAL *, REAL *);
void __glidentify__7MapdescFPA5_f (struct Mapdesc *, REAL (*)[5]); extern struct __mptr* __ptbl_vec_____core_mapdesc_c_____ct_[];
struct Mapdesc *__gl__ct__7MapdescFliT2R7Backe0 (struct Mapdesc *__0this , long __1_type , int __1_israt , int __1_ncoords , struct Backend *__1b ) { __0this -> backend__7Mapdesc = __1b ;
__0this -> type__7Mapdesc = __1_type ; __0this -> isrational__7Mapdesc = __1_israt ; __0this -> ncoords__7Mapdesc = __1_ncoords ; __0this -> hcoords__7Mapdesc = (__1_ncoords + (__1_israt ?0 :1 )); __0this -> inhcoords__7Mapdesc = (__1_ncoords - (__1_israt ?1 :0 )); __0this -> mask__7Mapdesc = ((1 << (__0this -> inhcoords__7Mapdesc * 2 ))- 1 ); __0this -> next__7Mapdesc = 0 ;
((void )0 ); ((void )0 );
__0this -> pixel_tolerance__7Mapdesc = 1.0 ; __0this -> bbox_subdividing__7Mapdesc = 0.0 ; __0this -> culling_method__7Mapdesc = 0.0 ; __0this -> sampling_method__7Mapdesc = 0.0 ; __0this -> clampfactor__7Mapdesc = 0.0 ; __0this -> minsavings__7Mapdesc = 0.0 ; __0this -> s_steps__7Mapdesc = 0.0 ; __0this -> t_steps__7Mapdesc = 0.0 ; __0this -> maxrate__7Mapdesc = ((__0this -> s_steps__7Mapdesc < 0.0 )?0.0 :(((double )__0this -> s_steps__7Mapdesc ))); __0this -> maxsrate__7Mapdesc = ((__0this -> s_steps__7Mapdesc < 0.0 )?0.0 :(((double )__0this -> s_steps__7Mapdesc ))); __0this -> maxtrate__7Mapdesc = ((__0this -> t_steps__7Mapdesc < 0.0 )?0.0 :(((double )__0this -> t_steps__7Mapdesc ))); __glidentify__7MapdescFPA5_f ( __0this , (float (*)[5])__0this -> bmat__7Mapdesc ) ; __glidentify__7MapdescFPA5_f ( __0this , (float (*)[5])__0this -> cmat__7Mapdesc ) ; __glidentify__7MapdescFPA5_f ( __0this , (float (*)[5])__0this -> smat__7Mapdesc ) ; { { int __1i ;
__1i = 0 ;
for(;__1i != __0this -> inhcoords__7Mapdesc ;__1i ++ ) (__0this -> bboxsize__7Mapdesc [__1i ])= 1.0 ;
}
} return __0this ;
}
void __glsetBboxsize__7MapdescFPf (struct Mapdesc *__0this , float *__1mat ) { { { int __1i ;
__1i = 0 ;
for(;__1i != __0this -> inhcoords__7Mapdesc ;__1i ++ ) (__0this -> bboxsize__7Mapdesc [__1i ])= (((float )(__1mat [__1i ])));
}
} }
// extern void *memset (void *, int , size_t );
void __glidentify__7MapdescFPA5_f (struct Mapdesc *__0this , REAL (*__1dest )[5]) { memset ( (void *)__1dest , 0 , sizeof __1dest ) ; { { int __1i ;
__1i = 0 ;
for(;__1i != __0this -> hcoords__7Mapdesc ;__1i ++ ) ((__1dest [__1i ])[__1i ])= 1.0 ;
}
} }
void __glsurfbbox__7BackendFlPfT2 (struct Backend *, long , REAL *, REAL *);
void __glsurfbbox__7MapdescFPA5_f (struct Mapdesc *__0this , REAL (*__1bb )[5]) { __glsurfbbox__7BackendFlPfT2 ( (struct Backend *)__0this -> backend__7Mapdesc , __0this -> type__7Mapdesc , (float *)(__1bb [0 ]), (float *)(__1bb [1 ])) ; }
void __glcopy__7MapdescSFPA5_flPfN20 (REAL (*__1dest )[5], long __1n , float *__1src , long __1rstride , long __1cstride ) { ((void )0 ); { { int __1i ;
__1i = 0 ;
for(;__1i != __1n ;__1i ++ ) { { int __1j ;
__1j = 0 ;
for(;__1j != __1n ;__1j ++ ) ((__1dest [__1i ])[__1j ])= (__1src [((__1i * __1rstride )+ (__1j * __1cstride ))]);
}
}
}
} }
// extern void *memcpy (void *, void *, size_t );
void __glcopyPt__7MapdescFPfT1 (struct Mapdesc *__0this , REAL *__1d , REAL *__1s ) { ((void )0 ); switch (__0this -> hcoords__7Mapdesc ){ case 4 : (__1d [3 ])= (__1s [3 ]); (__1d [2 ])= (__1s [2 ]); (__1d [1 ])= (__1s [1 ]); (__1d [0 ])= (__1s [0 ]); break ; case 3 : (__1d [2 ])= (__1s [2 ]); (__1d [1 ])= (__1s [1 ]); (__1d [0 ])= (__1s [0 ]); break ; case 2 : (__1d [1 ])= (__1s [1 ]); (__1d [0 ])= (__1s [0 ]); break ; case 1 : (__1d [0 ])= (__1s [0 ]); break ; case 5 : (__1d [4 ])= (__1s [4 ]); (__1d [3 ])= (__1s [3 ]); (__1d [2 ])= (__1s [2 ]); (__1d [1 ])= (__1s [1 ]); (__1d [0 ])= (__1s [0 ]); break ; default : memcpy ( (void *)__1d , (void *)__1s , __0this -> hcoords__7Mapdesc * (sizeof (REAL ))) ; break ; } }
void __glsumPt__7MapdescFPfN21fT4 (struct Mapdesc *__0this , REAL *__1dst , REAL *__1src1 , REAL *__1src2 , register REAL __1alpha , register REAL __1beta ) { ((void )0 ); switch (__0this -> hcoords__7Mapdesc ){ case 4 : (__1dst [3 ])= (((__1src1 [3 ])* __1alpha )+ ((__1src2 [3 ])* __1beta )); (__1dst [2 ])= (((__1src1 [2 ])* __1alpha )+ ((__1src2 [2 ])* __1beta )); (__1dst [1 ])= (((__1src1 [1 ])* __1alpha )+ ((__1src2 [1 ])* __1beta )); (__1dst [0 ])= (((__1src1 [0 ])* __1alpha )+ ((__1src2 [0 ])* __1beta )); break ; case 3 : (__1dst [2 ])= (((__1src1 [2 ])* __1alpha )+ ((__1src2 [2 ])* __1beta )); (__1dst [1 ])= (((__1src1 [1 ])* __1alpha )+ ((__1src2 [1 ])* __1beta )); (__1dst [0 ])= (((__1src1 [0 ])* __1alpha )+ ((__1src2 [0 ])* __1beta )); break ; case 2 : (__1dst [1 ])= (((__1src1 [1 ])* __1alpha )+ ((__1src2 [1 ])* __1beta )); (__1dst [0 ])= (((__1src1 [0 ])* __1alpha )+ ((__1src2 [0 ])* __1beta )); break ; case 1 : (__1dst [0 ])= (((__1src1 [0 ])* __1alpha )+ ((__1src2 [0 ])* __1beta )); break ; case 5 : (__1dst [4 ])= (((__1src1 [4 ])* __1alpha )+ ((__1src2 [4 ])* __1beta )); (__1dst [3 ])= (((__1src1 [3 ])* __1alpha )+ ((__1src2 [3 ])* __1beta )); (__1dst [2 ])= (((__1src1 [2 ])* __1alpha )+ ((__1src2 [2 ])* __1beta )); (__1dst [1 ])= (((__1src1 [1 ])* __1alpha )+ ((__1src2 [1 ])* __1beta )); (__1dst [0 ])= (((__1src1 [0 ])* __1alpha )+ ((__1src2 [0 ])* __1beta )); break ; default :{ { { int __3i ;
__3i = 0 ;
for(;__3i != __0this -> hcoords__7Mapdesc ;__3i ++ ) (__1dst [__3i ])= (((__1src1 [__3i ])* __1alpha )+ ((__1src2 [__3i ])* __1beta ));
}
} } break ; } }
// extern void abort (void );
unsigned int __glclipbits__7MapdescFPf (struct Mapdesc *__0this , REAL *__1p ) { ((void )0 ); ((void )0 );
{ register int __1nc ; register REAL __1pw ; register REAL __1nw ; register unsigned int __1bits ;
__1nc = __0this -> inhcoords__7Mapdesc ; __1pw = (__1p [__1nc ]); __1nw = (- __1pw ); __1bits = 0 ;
if (__1pw == 0.0 )return (unsigned int )__0this -> mask__7Mapdesc ;
if (__1pw > 0.0 ){ switch (__1nc ){ case 3 : if ((__1p [2 ])<= __1pw )__1bits |= 32; if ((__1p [2 ])>= __1nw )__1bits |= 16; if ((__1p [1 ])<= __1pw )__1bits |= 8; if ((__1p [1 ])>= __1nw )__1bits |= 4; if ((__1p [0 ])<= __1pw )__1bits |= 2; if ((__1p [0 ])>= __1nw )__1bits |= 1; return __1bits ; case 2 : if ((__1p [1 ])<= __1pw )__1bits |= 8; if ((__1p [1 ])>= __1nw )__1bits |= 4; if ((__1p [0 ])<= __1pw )__1bits |= 2; if ((__1p [0 ])>= __1nw )__1bits |= 1; return __1bits ; case 1 : if ((__1p [0 ])<= __1pw )__1bits |= 2; if ((__1p [0 ])>= __1nw )__1bits |= 1; return __1bits ; default :{ int __4bit ;
__4bit = 1 ; { { int __4i ;
__4i = 0 ;
for(;__4i < __1nc ;__4i ++ ) { if ((__1p [__4i ])>= __1nw )__1bits |= __4bit ; __4bit <<= 1 ; if ((__1p [__4i ])<= __1pw )__1bits |= __4bit ; __4bit <<= 1 ; } abort ( ) ; break ;
}
} } } } else { switch (__1nc ){ case 3 : if ((__1p [2 ])<= __1nw )__1bits |= 32; if ((__1p [2 ])>= __1pw )__1bits |= 16; if ((__1p [1 ])<= __1nw )__1bits |= 8; if ((__1p [1 ])>= __1pw )__1bits |= 4; if ((__1p [0 ])<= __1nw )__1bits |= 2; if ((__1p [0 ])>= __1pw )__1bits |= 1; return __1bits ; case 2 : if ((__1p [1 ])<= __1nw )__1bits |= 8; if ((__1p [1 ])>= __1pw )__1bits |= 4; if ((__1p [0 ])<= __1nw )__1bits |= 2; if ((__1p [0 ])>= __1pw )__1bits |= 1; return __1bits ; case 1 : if ((__1p [0 ])<= __1nw )__1bits |= 2; if ((__1p [0 ])>= __1pw )__1bits |= 1; return __1bits ; default :{ int __4bit ;
__4bit = 1 ; { { int __4i ;
__4i = 0 ;
for(;__4i < __1nc ;__4i ++ ) { if ((__1p [__4i ])>= __1pw )__1bits |= __4bit ; __4bit <<= 1 ; if ((__1p [__4i ])<= __1nw )__1bits |= __4bit ; __4bit <<= 1 ; } abort ( ) ; break ;
}
} } } } return __1bits ;
} }
void __glxformRational__7MapdescFPA0 (struct Mapdesc *__0this , REAL (*__1mat )[5], REAL *__1d , REAL *__1s ) { ((void )0 );
if (__0this -> hcoords__7Mapdesc == 3 ){ REAL __2x ; REAL __2y ; REAL __2z ;
__2x = (__1s [0 ]); __2y = (__1s [1 ]); __2z = (__1s [2 ]); (__1d [0 ])= (((__2x * ((__1mat [0 ])[0 ]))+ (__2y * ((__1mat [1 ])[0 ])))+ (__2z * ((__1mat [2 ])[0 ]))); (__1d [1 ])= (((__2x * ((__1mat [0 ])[1 ]))+ (__2y * ((__1mat [1 ])[1 ])))+ (__2z * ((__1mat [2 ])[1 ]))); (__1d [2 ])= (((__2x * ((__1mat [0 ])[2 ]))+ (__2y * ((__1mat [1 ])[2 ])))+ (__2z * ((__1mat [2 ])[2 ]))); } else if (__0this -> hcoords__7Mapdesc == 4 ){ REAL __2x ; REAL __2y ; REAL __2z ; REAL __2w ;
__2x = (__1s [0 ]); __2y = (__1s [1 ]); __2z = (__1s [2 ]); __2w = (__1s [3 ]); (__1d [0 ])= ((((__2x * ((__1mat [0 ])[0 ]))+ (__2y * ((__1mat [1 ])[0 ])))+ (__2z * ((__1mat [2 ])[0 ])))+ (__2w * ((__1mat [3 ])[0 ]))); (__1d [1 ])= ((((__2x * ((__1mat [0 ])[1 ]))+ (__2y * ((__1mat [1 ])[1 ])))+ (__2z * ((__1mat [2 ])[1 ])))+ (__2w * ((__1mat [3 ])[1 ]))); (__1d [2 ])= ((((__2x * ((__1mat [0 ])[2 ]))+ (__2y * ((__1mat [1 ])[2 ])))+ (__2z * ((__1mat [2 ])[2 ])))+ (__2w * ((__1mat [3 ])[2 ]))); (__1d [3 ])= ((((__2x * ((__1mat [0 ])[3 ]))+ (__2y * ((__1mat [1 ])[3 ])))+ (__2z * ((__1mat [2 ])[3 ])))+ (__2w * ((__1mat [3 ])[3 ]))); } else { { { int __2i ;
__2i = 0 ;
for(;__2i != __0this -> hcoords__7Mapdesc ;__2i ++ ) { (__1d [__2i ])= 0 ; { { int __3j ;
__3j = 0 ;
for(;__3j != __0this -> hcoords__7Mapdesc ;__3j ++ ) (__1d [__2i ])+= ((__1s [__3j ])* ((__1mat [__3j ])[__2i ]));
}
} }
}
} } }
void __glxformNonrational__7Mapdesc0 (struct Mapdesc *__0this , REAL (*__1mat )[5], REAL *__1d , REAL *__1s ) { if (__0this -> inhcoords__7Mapdesc == 2 ){ REAL __2x ; REAL __2y ;
__2x = (__1s [0 ]); __2y = (__1s [1 ]); (__1d [0 ])= (((__2x * ((__1mat [0 ])[0 ]))+ (__2y * ((__1mat [1 ])[0 ])))+ ((__1mat [2 ])[0 ])); (__1d [1 ])= (((__2x * ((__1mat [0 ])[1 ]))+ (__2y * ((__1mat [1 ])[1 ])))+ ((__1mat [2 ])[1 ])); (__1d [2 ])= (((__2x * ((__1mat [0 ])[2 ]))+ (__2y * ((__1mat [1 ])[2 ])))+ ((__1mat [2 ])[2 ])); } else if (__0this -> inhcoords__7Mapdesc == 3 ){ REAL __2x ; REAL __2y ; REAL __2z ;
__2x = (__1s [0 ]); __2y = (__1s [1 ]); __2z = (__1s [2 ]); (__1d [0 ])= ((((__2x * ((__1mat [0 ])[0 ]))+ (__2y * ((__1mat [1 ])[0 ])))+ (__2z * ((__1mat [2 ])[0 ])))+ ((__1mat [3 ])[0 ])); (__1d [1 ])= ((((__2x * ((__1mat [0 ])[1 ]))+ (__2y * ((__1mat [1 ])[1 ])))+ (__2z * ((__1mat [2 ])[1 ])))+ ((__1mat [3 ])[1 ])); (__1d [2 ])= ((((__2x * ((__1mat [0 ])[2 ]))+ (__2y * ((__1mat [1 ])[2 ])))+ (__2z * ((__1mat [2 ])[2 ])))+ ((__1mat [3 ])[2 ])); (__1d [3 ])= ((((__2x * ((__1mat [0 ])[3 ]))+ (__2y * ((__1mat [1 ])[3 ])))+ (__2z * ((__1mat [2 ])[3 ])))+ ((__1mat [3 ])[3 ])); } else { ((void )0 ); { { int __2i ;
__2i = 0 ;
for(;__2i != __0this -> hcoords__7Mapdesc ;__2i ++ ) { (__1d [__2i ])= ((__1mat [__0this -> inhcoords__7Mapdesc ])[__2i ]); { { int __3j ;
__3j = 0 ;
for(;__3j < __0this -> inhcoords__7Mapdesc ;__3j ++ ) (__1d [__2i ])+= ((__1s [__3j ])* ((__1mat [__3j ])[__2i ]));
}
} }
}
} } }
int __glxformAndCullCheck__7Mapdes0 (struct Mapdesc *__0this , REAL *__1pts , int __1uorder , int __1ustride , int __1vorder , int __1vstride ) { ((void )0 );
((void )0 );
{ unsigned int __1inbits ; unsigned int __1outbits ;
REAL *__1p ;
__1inbits = __0this -> mask__7Mapdesc ; __1outbits = 0 ;
__1p = __1pts ; { { REAL *__1pend ;
__1pend = (__1p + (__1uorder * __1ustride ));
for(;__1p != __1pend ;__1p += __1ustride ) { REAL *__2q ;
__2q = __1p ; { { REAL *__2qend ;
__2qend = (__2q + (__1vorder * __1vstride ));
for(;__2q != __2qend ;__2q += __1vstride ) { REAL __3cpts [5];
REAL *__1__X5 ;
REAL *__1__X6 ;
( (__1__X5 = __3cpts ), ( (__1__X6 = __2q ), ( (__0this -> isrational__7Mapdesc ?__glxformRational__7MapdescFPA0 ( __0this , (float (*)[5])__0this -> cmat__7Mapdesc , __1__X5 , __1__X6 ) :__glxformNonrational__7Mapdesc0 ( __0this , (float (*)[5])__0this -> cmat__7Mapdesc , __1__X5 , __1__X6 ) )) ) ) ; { unsigned int __3bits ;
__3bits = __glclipbits__7MapdescFPf ( __0this , (float *)__3cpts ) ; __1outbits |= __3bits ; __1inbits &= __3bits ; if ((__1outbits == __0this -> mask__7Mapdesc )&& (__1inbits != __0this -> mask__7Mapdesc ))return 2 ;
} }
}
} }
if (__1outbits != __0this -> mask__7Mapdesc ){ return 0 ; } else if (__1inbits == __0this -> mask__7Mapdesc ){ return 1 ; } else { return 2 ; }
}
}
} }
int __glcullCheck__7MapdescFPfiN32 (struct Mapdesc *__0this , REAL *__1pts , int __1uorder , int __1ustride , int __1vorder , int __1vstride ) { unsigned int __1inbits ; unsigned int __1outbits ;
REAL *__1p ;
__1inbits = __0this -> mask__7Mapdesc ; __1outbits = 0 ;
__1p = __1pts ; { { REAL *__1pend ;
__1pend = (__1p + (__1uorder * __1ustride ));
for(;__1p != __1pend ;__1p += __1ustride ) { REAL *__2q ;
__2q = __1p ; { { REAL *__2qend ;
__2qend = (__2q + (__1vorder * __1vstride ));
for(;__2q != __2qend ;__2q += __1vstride ) { unsigned int __3bits ;
__3bits = __glclipbits__7MapdescFPf ( __0this , __2q ) ; __1outbits |= __3bits ; __1inbits &= __3bits ; if ((__1outbits == __0this -> mask__7Mapdesc )&& (__1inbits != __0this -> mask__7Mapdesc ))return 2 ; }
}
} }
if (__1outbits != __0this -> mask__7Mapdesc ){ return 0 ; } else if (__1inbits == __0this -> mask__7Mapdesc ){ return 1 ; } else { return 2 ; }
}
} }
int __glcullCheck__7MapdescFPfiT2 (struct Mapdesc *__0this , REAL *__1pts , int __1order , int __1stride ) { unsigned int __1inbits ; unsigned int __1outbits ;
REAL *__1p ;
__1inbits = __0this -> mask__7Mapdesc ; __1outbits = 0 ;
__1p = __1pts ; { { REAL *__1pend ;
__1pend = (__1p + (__1order * __1stride ));
for(;__1p != __1pend ;__1p += __1stride ) { unsigned int __2bits ;
__2bits = __glclipbits__7MapdescFPf ( __0this , __1p ) ; __1outbits |= __2bits ; __1inbits &= __2bits ; if ((__1outbits == __0this -> mask__7Mapdesc )&& (__1inbits != __0this -> mask__7Mapdesc ))return 2 ; }
if (__1outbits != __0this -> mask__7Mapdesc ){ return 0 ; } else if (__1inbits == __0this -> mask__7Mapdesc ){ return 1 ; } else { return 2 ; }
}
} }
void __glxformMat__7MapdescFPA5_fPf0 (struct Mapdesc *, REAL (*)[5], REAL *, int , int , REAL *, int );
void __glxformSampling__7MapdescFPf0 (struct Mapdesc *__0this , REAL *__1pts , int __1order , int __1stride , REAL *__1sp , int __1outstride ) { __glxformMat__7MapdescFPA5_fPf0 ( __0this , (float (*)[5])__0this -> smat__7Mapdesc , __1pts , __1order , __1stride , __1sp , __1outstride ) ; }
void __glxformBounding__7MapdescFPf0 (struct Mapdesc *__0this , REAL *__1pts , int __1order , int __1stride , REAL *__1sp , int __1outstride ) { __glxformMat__7MapdescFPA5_fPf0 ( __0this , (float (*)[5])__0this -> bmat__7Mapdesc , __1pts , __1order , __1stride , __1sp , __1outstride ) ; }
void __glxformCulling__7MapdescFPfi0 (struct Mapdesc *__0this , REAL *__1pts , int __1order , int __1stride , REAL *__1cp , int __1outstride ) { __glxformMat__7MapdescFPA5_fPf0 ( __0this , (float (*)[5])__0this -> cmat__7Mapdesc , __1pts , __1order , __1stride , __1cp , __1outstride ) ; }
void __glxformMat__7MapdescFPA5_fPf1 (struct Mapdesc *, REAL (*)[5], REAL *, int , int , int , int , REAL *, int , int );
void __glxformCulling__7MapdescFPfi1 (struct Mapdesc *__0this , REAL *__1pts , int __1uorder , int __1ustride , int __1vorder , int __1vstride , REAL *__1cp , int __1outustride , int __1outvstride ) { __glxformMat__7MapdescFPA5_fPf1 ( __0this , (float (*)[5])__0this -> cmat__7Mapdesc , __1pts , __1uorder , __1ustride , __1vorder , __1vstride , __1cp , __1outustride , __1outvstride ) ; }
void __glxformSampling__7MapdescFPf1 (struct Mapdesc *__0this , REAL *__1pts , int __1uorder , int __1ustride , int __1vorder , int __1vstride , REAL *__1sp , int __1outustride , int __1outvstride ) { __glxformMat__7MapdescFPA5_fPf1 ( __0this , (float (*)[5])__0this -> smat__7Mapdesc , __1pts , __1uorder , __1ustride , __1vorder , __1vstride , __1sp , __1outustride , __1outvstride ) ; }
void __glxformBounding__7MapdescFPf1 (struct Mapdesc *__0this , REAL *__1pts , int __1uorder , int __1ustride , int __1vorder , int __1vstride , REAL *__1sp , int __1outustride , int __1outvstride ) { __glxformMat__7MapdescFPA5_fPf1 ( __0this , (float (*)[5])__0this -> bmat__7Mapdesc , __1pts , __1uorder , __1ustride , __1vorder , __1vstride , __1sp , __1outustride , __1outvstride ) ; }
void __glxformMat__7MapdescFPA5_fPf0 (struct Mapdesc *__0this , REAL (*__1mat )[5], REAL *__1pts , int __1order , int __1stride , REAL *__1cp , int __1outstride ) { if (__0this -> isrational__7Mapdesc ){ REAL *__2pend ;
__2pend = (__1pts + (__1order * __1stride )); { { REAL *__2p ;
__2p = __1pts ;
for(;__2p != __2pend ;__2p += __1stride ) { __glxformRational__7MapdescFPA0 ( __0this , __1mat , __1cp , __2p ) ; __1cp += __1outstride ; }
}
} } else { REAL *__2pend ;
__2pend = (__1pts + (__1order * __1stride )); { { REAL *__2p ;
__2p = __1pts ;
for(;__2p != __2pend ;__2p += __1stride ) { __glxformNonrational__7Mapdesc0 ( __0this , __1mat , __1cp , __2p ) ; __1cp += __1outstride ; }
}
} } }
void __glxformMat__7MapdescFPA5_fPf1 (struct Mapdesc *__0this , REAL (*__1mat )[5], REAL *__1pts , int __1uorder , int __1ustride , int __1vorder , int __1vstride , REAL *__1cp , int __1outustride , int __1outvstride ) { if (__0this -> isrational__7Mapdesc ){ REAL *__2pend ;
__2pend = (__1pts + (__1uorder * __1ustride )); { { REAL *__2p ;
__2p = __1pts ;
for(;__2p != __2pend ;__2p += __1ustride ) { REAL *__3cpts2 ; REAL *__3qend ;
__3cpts2 = __1cp ; __3qend = (__2p + (__1vorder * __1vstride )); { { REAL *__3q ;
__3q = __2p ;
for(;__3q != __3qend ;__3q += __1vstride ) { __glxformRational__7MapdescFPA0 ( __0this , __1mat , __3cpts2 , __3q ) ; __3cpts2 += __1outvstride ; } __1cp += __1outustride ;
}
} }
}
} } else { REAL *__2pend ;
__2pend = (__1pts + (__1uorder * __1ustride )); { { REAL *__2p ;
__2p = __1pts ;
for(;__2p != __2pend ;__2p += __1ustride ) { REAL *__3cpts2 ; REAL *__3qend ;
__3cpts2 = __1cp ; __3qend = (__2p + (__1vorder * __1vstride )); { { REAL *__3q ;
__3q = __2p ;
for(;__3q != __3qend ;__3q += __1vstride ) { __glxformNonrational__7Mapdesc0 ( __0this , __1mat , __3cpts2 , __3q ) ; __3cpts2 += __1outvstride ; } __1cp += __1outustride ;
}
} }
}
} } }
void __glsubdivide__7MapdescFPfT1fi0 (struct Mapdesc *__0this , REAL *__1src , REAL *__1dst , REAL __1v , int __1stride , int __1order ) { REAL __1mv ;
__1mv = (1.0 - __1v );
{ { REAL *__1send ;
__1send = (__1src + (__1stride * __1order ));
for(;__1src != __1send ;( (__1send -= __1stride ), (__1dst += __1stride )) ) { __glcopyPt__7MapdescFPfT1 ( __0this , __1dst , __1src ) ; { REAL *__2qpnt ;
__2qpnt = (__1src + __1stride ); { { REAL *__2qp ;
__2qp = __1src ;
for(;__2qpnt != __1send ;( (__2qp = __2qpnt ), (__2qpnt += __1stride )) ) __glsumPt__7MapdescFPfN21fT4 ( __0this , __2qp , __2qp , __2qpnt , __1mv , __1v ) ;
}
}
} }
}
} }
void __glsubdivide__7MapdescFPfT1fi1 (struct Mapdesc *__0this , REAL *__1src , REAL *__1dst , REAL __1v , int __1so , int __1ss , int __1to , int __1ts ) {
REAL __1mv ;
__1mv = (1.0 - __1v );
{ { REAL *__1slast ;
__1slast = (__1src + (__1ss * __1so ));
for(;__1src != __1slast ;( (__1src += __1ss ), (__1dst += __1ss )) ) { REAL *__2sp ; REAL *__2dp ;
__2sp = __1src ; __2dp = __1dst ; { { REAL *__2send ;
__2send = (__1src + (__1ts * __1to ));
for(;__2sp != __2send ;( (__2send -= __1ts ), (__2dp += __1ts )) ) { __glcopyPt__7MapdescFPfT1 ( __0this , __2dp , __2sp ) ; { REAL *__3qp ;
__3qp = __2sp ; { { REAL *__3qpnt ;
__3qpnt = (__2sp + __1ts );
for(;__3qpnt != __2send ;( (__3qp = __3qpnt ), (__3qpnt += __1ts )) ) __glsumPt__7MapdescFPfN21fT4 ( __0this , __3qp , __3qp , __3qpnt , __1mv , __1v ) ;
}
}
} }
}
} }
}
} }
int __glproject__7MapdescFPfiT2T1N0 (struct Mapdesc *__0this , REAL *__1src , int __1rstride , int __1cstride , REAL *__1dest , int __1trstride , int __1tcstride , int __1nrows , int __1ncols ) { int __1s ; REAL *__1rlast ; REAL *__1trptr ;
__1s = (((__1src [__0this -> inhcoords__7Mapdesc ])> 0 )?1 :(((__1src [__0this -> inhcoords__7Mapdesc ])< 0.0 )?-1:0 )); __1rlast = (__1src + (__1nrows * __1rstride )); __1trptr = __1dest ; { { REAL *__1rptr ;
__1rptr = __1src ;
for(;__1rptr != __1rlast ;( (__1rptr += __1rstride ), (__1trptr += __1trstride )) ) { REAL *__2clast ; REAL *__2tcptr ;
__2clast = (__1rptr + (__1ncols * __1cstride )); __2tcptr = __1trptr ; { { REAL *__2cptr ;
__2cptr = __1rptr ;
for(;__2cptr != __2clast ;( (__2cptr += __1cstride ), (__2tcptr += __1tcstride )) ) { REAL *__3coordlast ;
__3coordlast = (__2cptr + __0this -> inhcoords__7Mapdesc ); if (((((*__3coordlast ))> 0 )?1 :((((*__3coordlast ))< 0.0 )?-1:0 ))!= __1s )return 0 ; { REAL *__3tcoord ;
__3tcoord = __2tcptr ; { { REAL *__3coord ;
__3coord = __2cptr ;
for(;__3coord != __3coordlast ;( (__3coord ++ ), (__3tcoord ++ )) ) { ((*__3tcoord ))= (((*__3coord ))/ ((*__3coordlast ))); }
}
}
} }
}
} } return 1 ;
}
} }
int __glproject__7MapdescFPfiT1N22 (struct Mapdesc *__0this , REAL *__1src , int __1stride , REAL *__1dest , int __1tstride , int __1ncols ) { int __1s ;
REAL *__1clast ;
__1s = (((__1src [__0this -> inhcoords__7Mapdesc ])> 0 )?1 :(((__1src [__0this -> inhcoords__7Mapdesc ])< 0.0 )?-1:0 ));
__1clast = (__1src + (__1ncols * __1stride )); { { REAL *__1cptr ;
REAL *__1tcptr ;
__1cptr = __1src ;
__1tcptr = __1dest ;
for(;__1cptr != __1clast ;( (__1cptr += __1stride ), (__1tcptr += __1tstride )) ) { REAL *__2coordlast ;
__2coordlast = (__1cptr + __0this -> inhcoords__7Mapdesc ); if (((((*__2coordlast ))> 0 )?1 :((((*__2coordlast ))< 0.0 )?-1:0 ))!= __1s )return 0 ; { { REAL *__2coord ;
REAL *__2tcoord ;
__2coord = __1cptr ;
__2tcoord = __1tcptr ;
for(;__2coord != __2coordlast ;( (__2coord ++ ), (__2tcoord ++ )) ) ((*__2tcoord ))= (((*__2coord ))/ ((*__2coordlast )));
}
} }
return 1 ;
}
} }
void __glbbox__7MapdescFPA5_fPfiN33 (struct Mapdesc *, REAL (*)[5], REAL *, int , int , int , int );
extern float __glmyceilf (float ); extern float __glmyfloorf (float );
int __glbboxTooBig__7MapdescFPfiN30 (struct Mapdesc *__0this , REAL *__1p , int __1rstride , int __1cstride , int __1nrows , int __1ncols , REAL (*__1bb )[5]) { REAL __1bbpts [24][24][5];
int __1val ;
__1val = __glproject__7MapdescFPfiT2T1N0 ( __0this , __1p , __1rstride , __1cstride , & (((__1bbpts [0 ])[0 ])[0 ]), (int )120, (int )5, __1nrows , __1ncols ) ;
if (__1val == 0 )return -1;
__glbbox__7MapdescFPA5_fPfiN33 ( __0this , __1bb , & (((__1bbpts [0 ])[0 ])[0 ]), (int )120, (int )5, __1nrows , __1ncols ) ;
if (__0this -> bbox_subdividing__7Mapdesc == 2.0 ){ { { int __2k ;
__2k = 0 ;
for(;__2k != __0this -> inhcoords__7Mapdesc ;__2k ++ ) if ((__glmyceilf ( (__1bb [1 ])[__2k ]) - __glmyfloorf ( (__1bb [0 ])[__2k ]) )> (__0this -> bboxsize__7Mapdesc [__2k ]))return 1 ;
}
} } else { { { int __2k ;
__2k = 0 ;
for(;__2k != __0this -> inhcoords__7Mapdesc ;__2k ++ ) if ((((__1bb [1 ])[__2k ])- ((__1bb [0 ])[__2k ]))> (__0this -> bboxsize__7Mapdesc [__2k ]))return 1 ;
}
} } return 0 ; }
void __glbbox__7MapdescFPA5_fPfiN33 (struct Mapdesc *__0this , REAL (*__1bb )[5], REAL *__1p , int __1rstride , int __1cstride , int __1nrows , int __1ncols ) { { { int __1k ;
__1k = 0 ;
for(;__1k != __0this -> inhcoords__7Mapdesc ;__1k ++ ) ((__1bb [0 ])[__1k ])= (((__1bb [1 ])[__1k ])= (__1p [__1k ]));
{ { int __1i ;
__1i = 0 ;
for(;__1i != __1nrows ;__1i ++ ) { { int __1j ;
__1j = 0 ;
for(;__1j != __1ncols ;__1j ++ ) for(__1k = 0 ;__1k != __0this -> inhcoords__7Mapdesc ;__1k ++ ) { REAL __2x ;
__2x = (__1p [(((__1i * __1rstride )+ (__1j * __1cstride ))+ __1k )]); if (__2x < ((__1bb [0 ])[__1k ]))((__1bb [0 ])[__1k ])= __2x ; else if (__2x > ((__1bb [1 ])[__1k ]))((__1bb [1 ])[__1k ])= __2x ; }
}
}
}
}
}
} }
REAL __glcalcPartialVelocity__7Mapd0 (struct Mapdesc *, REAL *, int , int , int , REAL );
REAL __glcalcVelocityRational__7Map0 (struct Mapdesc *__0this , REAL *__1p , int __1stride , int __1ncols ) { REAL __1tmp [24][5];
((void )0 );
{ if (__glproject__7MapdescFPfiT1N22 ( __0this , __1p , __1stride , & ((__1tmp [0 ])[0 ]), (int )5, __1ncols ) ){ return __glcalcPartialVelocity__7Mapd0 ( __0this , & ((__1tmp [0 ])[0 ]), (int )5, __1ncols , 1 , (float )1.0 ) ; } else { return __glcalcPartialVelocity__7Mapd0 ( __0this , & ((__1tmp [0 ])[0 ]), (int )5, __1ncols , 1 , (float )1.0 ) ;
}
} }
REAL __glcalcVelocityNonrational__70 (struct Mapdesc *__0this , REAL *__1pts , int __1stride , int __1ncols ) { return __glcalcPartialVelocity__7Mapd0 ( __0this , __1pts , __1stride , __1ncols , 1 , (float )1.0 ) ; }
int __glisProperty__7MapdescFl (struct Mapdesc *__0this , long __1property ) { switch (__1property ){ case 1 : case 2 : case 17 : case 6 : case 7 : case 10 : case 13 : case 14 : return 1 ; default : return 0 ; } }
REAL __glgetProperty__7MapdescFl (struct Mapdesc *__0this , long __1property ) { switch (__1property ){ case 1 : return __0this -> pixel_tolerance__7Mapdesc ; case 2 : return __0this -> culling_method__7Mapdesc ; case 17 : return __0this -> bbox_subdividing__7Mapdesc ; case 6 : return __0this -> s_steps__7Mapdesc ; case 7 : return __0this -> t_steps__7Mapdesc ; case 10 : return __0this -> sampling_method__7Mapdesc ; case 13 : return __0this -> clampfactor__7Mapdesc ; case 14 : return __0this -> minsavings__7Mapdesc ; default : abort ( ) ; } }
void __glsetProperty__7MapdescFlf (struct Mapdesc *__0this , long __1property , REAL __1value ) { switch (__1property ){ case 1 : __0this -> pixel_tolerance__7Mapdesc = __1value ; break ; case 2 : __0this -> culling_method__7Mapdesc = __1value ; break ; case 17 : if (__1value <= 0.0 )__1value = 0.0 ; __0this -> bbox_subdividing__7Mapdesc = __1value ; break ; case 6 : if (__1value < 0.0 )__1value = 0.0 ; __0this -> s_steps__7Mapdesc = __1value ; __0this -> maxrate__7Mapdesc = ((__1value < 0.0 )?0.0 :(((double )__1value ))); __0this -> maxsrate__7Mapdesc = ((__1value < 0.0 )?0.0 :(((double )__1value ))); break ; case 7 : if (__1value < 0.0 )__1value = 0.0 ; __0this -> t_steps__7Mapdesc = __1value ; __0this -> maxtrate__7Mapdesc = ((__1value < 0.0 )?0.0 :(((double )__1value ))); break ; case 10 : __0this -> sampling_method__7Mapdesc = __1value ; break ; case 13 : if (__1value <= 0.0 )__1value = 0.0 ; __0this -> clampfactor__7Mapdesc = __1value ; break ; case 14 : if (__1value <= 0.0 )__1value = 0.0 ; __0this -> minsavings__7Mapdesc = __1value ; break ; default : abort ( ) ; break ; } }
/* the end */
|