340 lines
5.6 KiB
C
340 lines
5.6 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 <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/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 */
|