/* ** 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 struct JumpBuffer { jmp_buf buf; }; #define mysetjmp(x) setjmp((x)->buf) #define mylongjmp(x,y) longjmp((x)->buf, y) /* < 02/03/92>> */ /* < ../core/reader.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 *); 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 ; }; typedef float REAL ; typedef void (*Pfvv )(void ); typedef void (*Pfvf )(float *); typedef int (*cmpfunc )(void *, void *); typedef REAL Knot ; typedef REAL *Knot_ptr ; enum Curvetype { ct_nurbscurve = 0, ct_pwlcurve = 1, ct_none = 2} ; struct Property; struct O_surface; struct O_nurbssurface; struct O_trim; struct O_pwlcurve; struct O_nurbscurve; struct O_curve; struct Quilt; struct TrimVertex; union __Q2_7O_curve4__C1; union __Q2_7O_curve4__C1 { struct O_nurbscurve *o_nurbscurve ; struct O_pwlcurve *o_pwlcurve ; }; struct O_curve; struct O_curve { char __W3__9PooledObj ; union __Q2_7O_curve4__C1 curve__7O_curve ; int curvetype__7O_curve ; struct O_curve *next__7O_curve ; struct O_surface *owner__7O_curve ; int used__7O_curve ; int save__7O_curve ; long nuid__7O_curve ; }; struct O_nurbscurve; struct O_nurbscurve { char __W3__9PooledObj ; struct Quilt *bezier_curves__12O_nurbscurve ; long type__12O_nurbscurve ; REAL tesselation__12O_nurbscurve ; int method__12O_nurbscurve ; struct O_nurbscurve *next__12O_nurbscurve ; int used__12O_nurbscurve ; int save__12O_nurbscurve ; struct O_curve *owner__12O_nurbscurve ; }; struct O_pwlcurve; struct O_pwlcurve { char __W3__9PooledObj ; struct TrimVertex *pts__10O_pwlcurve ; int npts__10O_pwlcurve ; struct O_pwlcurve *next__10O_pwlcurve ; int used__10O_pwlcurve ; int save__10O_pwlcurve ; struct O_curve *owner__10O_pwlcurve ; }; struct O_trim; struct O_trim { char __W3__9PooledObj ; struct O_curve *o_curve__6O_trim ; struct O_trim *next__6O_trim ; int save__6O_trim ; }; struct O_nurbssurface; struct O_nurbssurface { char __W3__9PooledObj ; struct Quilt *bezier_patches__14O_nurbssurface ; long type__14O_nurbssurface ; struct O_surface *owner__14O_nurbssurface ; struct O_nurbssurface *next__14O_nurbssurface ; int save__14O_nurbssurface ; int used__14O_nurbssurface ; }; struct O_surface; struct O_surface { char __W3__9PooledObj ; struct O_nurbssurface *o_nurbssurface__9O_surface ; struct O_trim *o_trim__9O_surface ; int save__9O_surface ; long nuid__9O_surface ; }; struct Property; struct Property { char __W3__9PooledObj ; long type__8Property ; long tag__8Property ; REAL value__8Property ; int save__8Property ; }; struct NurbsTessellator; struct TrimVertex; struct TrimVertex { REAL param__10TrimVertex [2]; long nuid__10TrimVertex ; }; typedef struct TrimVertex *TrimVertex_p ; extern struct __mptr* __ptbl_vec_____core_reader_c_____ct_[]; struct O_pwlcurve *__gl__ct__10O_pwlcurveFlT1PfT10 (struct O_pwlcurve *__0this , long __1_type , long __1count , float *__1array , long __1byte_stride , struct TrimVertex *__1trimpts ) { __0this -> next__10O_pwlcurve = 0 ; __0this -> used__10O_pwlcurve = 0 ; __0this -> owner__10O_pwlcurve = 0 ; __0this -> pts__10O_pwlcurve = __1trimpts ; __0this -> npts__10O_pwlcurve = (((int )__1count )); switch (__1_type ){ case 0x8 :{ struct TrimVertex *__3v ; __3v = __0this -> pts__10O_pwlcurve ; { { struct TrimVertex *__3lastv ; __3lastv = (__3v + __1count ); for(;__3v != __3lastv ;__3v ++ ) { (__3v -> param__10TrimVertex [0 ])= (((float )(__1array [0 ]))); (__3v -> param__10TrimVertex [1 ])= (((float )(__1array [1 ]))); __1array = (((float *)((((char *)__1array ))+ __1byte_stride ))); } break ; } } } case 0xd :{ struct TrimVertex *__3v ; __3v = __0this -> pts__10O_pwlcurve ; { { struct TrimVertex *__3lastv ; __3lastv = (__3v + __1count ); for(;__3v != __3lastv ;__3v ++ ) { (__3v -> param__10TrimVertex [0 ])= ((((float )(__1array [0 ])))/ (((float )(__1array [2 ])))); (__3v -> param__10TrimVertex [1 ])= ((((float )(__1array [1 ])))/ (((float )(__1array [2 ])))); __1array = (((float *)((((char *)__1array ))+ __1byte_stride ))); } break ; } } } } return __0this ; } /* the end */