1404 lines
30 KiB
C
1404 lines
30 KiB
C
|
/*
|
||
|
** 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 */
|