-+-+-+-+-+-+-+-+ START OF PART 181 -+-+-+-+-+-+-+-+ Xextern void nrb_deallocatepts ARGS(( PR_pts ** ptr)); X Xextern void nrb_allocatepts ARGS(( Pint nx, PR_pts ** ptr)); X Xextern void nrb_clear ARGS(( PR_nurb * nrb)); X Xextern void nrb_allocatenurb ARGS(( PR_nurb ** ptr)); X Xextern void nrb_deallocatenurb ARGS(( PR_nurb ** ptr)); X Xextern void nrb_stats ARGS(( FILE * fp)); X Xextern void nrb_init ARGS(( Pint kx, Pint Ntx, Pint ky, Pint nty, X PR_nurb * nrb)); X Xextern void nrb_copyknots ARGS(( PR_dir * k1, PR_dir * k2)); X Xextern void nrb_copy ARGS(( PR_nurb * nrb1, PR_nurb * nrb2)); X Xextern void nrb_interchange ARGS(( PR_nurb * nrb)); X Xextern boolean getpoint4 ARGS(( FILE * fp, Ppoint4 * pt)); X Xextern void putpoint4 ARGS(( FILE * fp, Ppoint4 * pt)); X Xextern void nrb_dumpl ARGS(( FILE * fp, const char * str, PR_knots * li Vsthead)); X Xextern void nrb_dumplists ARGS(( FILE * fp)); X Xextern void nrb_dumpknots ARGS(( FILE * fp, const char * str, PR_dir * V kk)); X Xextern void nrb_dumppts ARGS(( FILE * fp, Pint nx, Pint ny, Ppoint4 V * pts, X const char * str)); X Xextern void nrb_dumpsummary ARGS(( FILE * fp, PR_nurb * nrb)); X Xextern void nrb_dump ARGS(( FILE * fp, PR_nurb * nrb)); X Xextern boolean nrb_read ARGS(( FILE * fp, PR_nurb * nrb)); X Xextern void nrb_write ARGS(( FILE * fp, PR_nurb * nrb)); X Xextern Ppoint4 tp_litv4 ARGS(( Pfloat x, Pfloat y, Pfloat z, Pfloa Vt w)); X Xextern Ppoint4 tp_scale4 ARGS(( Ppoint4 s1, Pfloat v)); X Xextern Ppoint4 tp_add4 ARGS(( Ppoint4 s1, Ppoint4 s2)); X Xextern Ppoint4 tp_sub4 ARGS(( Ppoint4 s1, Ppoint4 s2)); X Xextern Ppoint4 tp_linsum4 ARGS(( Pfloat a, Ppoint4 s1, X Pfloat b, Ppoint4 s2)); X Xextern Pfloat tp_dotv4 ARGS(( Ppoint4 v, Ppoint4 p)); X Xextern Pfloat tp_modv4 ARGS(( Ppoint4 P1)); X Xextern void nrb_transpose ARGS(( PR_nurb * s1)); X Xextern Pint nrb_numsubdivs ARGS(( PR_nurb * nrb, PE_dir xory, Pfloat V tol)); X X/*-------------------------------*/ X/* Including from:nurb2.c */ X Xextern void nrb_makeknots ARGS(( Pfloat tmin, Pfloat tmax, PR_dir * k Vk)); X Xextern void nrb_unionknots ARGS(( PR_dir * t1, PR_dir * t2, PR_dir * t3 V)); X Xextern void nrb_differenceknots ARGS(( PR_dir * t1, PR_dir * t2, PR_dir V * t3)); X Xextern void interv ARGS(( Pfloat * xt, Pint lxt, Pfloat x, X Pint * left, Pint * mflag)); X Xextern void neil_interv ARGS(( float * xt, Pint lxt, float x, Pint V * left, X Pint * mflag)); X Xextern void nrb_interv ARGS(( PR_dir * knots, Pfloat X, Pint * left, X Pint * mflag)); X Xextern void nrb_subdivc ARGS(( PR_nurb * nrb1, PR_nurb * nrb2, Pint mu V, X Pint j)); X Xextern void nrb_osloc ARGS(( PR_nurb * nrb1, PR_nurb * nrb2)); X Xextern void nrb_boehmc ARGS(( PR_nurb * nrb1, PR_dir * tnew, PR_nurb * V nrb2)); X Xextern void nrb_bvalue ARGS(( PR_nurb * s1, Pfloat x, Pint jderiv, X PR_nurb * s2)); X X/*-------------------------------*/ X/* Including from:nurb3.c */ X Xextern void nrb_evaluate ARGS(( PR_nurb * s1, Pfloat x, PR_nurb * S2)) V; X Xextern void nrb_du ARGS(( PR_nurb * s1, Pfloat x, PR_pts ** XX)); X Xextern void nrb_partials ARGS(( PR_nurb * s1, PR_pts ** du, PR_pts ** d Vv, X PR_pts ** duv)); X Xextern void nrb_split ARGS(( PR_nurb * s1, Pfloat x, PR_nurb * s2, X PR_nurb * s3)); X Xextern void nrb_join ARGS(( PR_nurb * nrb1, PR_nurb * nrb2, PR_nurb * n Vrb)); X Xextern void nrb_xform ARGS(( PR_nurb * nrb1, Pmatrix3 xx)); X Xextern void nrb_extrude ARGS(( PR_nurb * nrb1, Ppoint3 w, PR_nurb * nr Vb, X Pint * error)); X Xextern void nrb_elevateknots ARGS(( PR_dir * s1, PR_dir * s2)); X Xextern void nrb_elevate ARGS(( boolean transpose, PR_nurb * s1, PR_nur Vb * s2)); X Xextern void nrb_ruled ARGS(( PR_nurb * nrb1, PR_nurb * nrb2, PR_nurb * V nrb, X Pint * error)); X Xextern void nrb_revolve ARGS(( PR_nurb * nrb1, PR_nurb * nrb)); X Xextern void nrb_circle ARGS(( PR_nurb * nrb)); X Xextern void nrb_arc ARGS(( Pfloat theta1, Pfloat theta2, PR_nurb * nr Vb)); X Xextern void nrb_sphere ARGS(( PR_nurb * nrb)); X X/*-------------------------------*/ X/* Including from:nurb4.c */ X Xextern void nrb_torus ARGS(( PR_nurb * nrb)); X Xextern void nrb_polyline ARGS(( Pint npts, Ppoint3 * pp, PR_nurb * nrb V)); X Xextern void nrb_square ARGS(( PR_nurb * nrb1)); X Xextern void nrb_triangle ARGS(( PR_nurb * nrb1)); X Xextern void nrb_vase ARGS(( PR_nurb * nrb)); X Xextern void nrb_makehjknots ARGS(( PR_nurb * nrbin)); X Xextern void nrb_interpolate ARGS(( PR_nurb * nrbin, Pfloat tol, X PR_nurb * nrbout)); X Xextern void nrb_spli2d ARGS(( PR_nurb * nrbin, Pint mm, Pfloat * tpts, X PR_nurb * nrbout)); X Xextern void nrb_tessalate ARGS(( PR_nurb * nrb1, Pint nx, PR_nurb * nr Vb2)); X Xextern void nrb_drawcnet ARGS(( PR_nurb * nrb, Pint start, PE_dir xor Vy)); X Xextern void nrb_drawc ARGS(( PR_nurb * nrb, Pfloat t, PE_dir xory)); X Xextern void nrb_drawsnet ARGS(( PR_nurb * cont_grid)); X Xextern void nrb_draws ARGS(( PR_nurb * nrb)); X X/*-------------------------------*/ X/* Including from:nurb5.c */ X Xextern void bsplvb ARGS(( Pfloat * t, Pint jhigh, Pint index, Pfloa Vt x, X Pint left, Pfloat * biatx)); X Xextern void bchfac ARGS(( Pfloat * w, Pint nbands, Pint nrow, X Pfloat * diag)); X Xextern void banfac ARGS(( Pfloat * w, Pint nroww, Pint nrow, Pint V nbandl, X Pint nbandu, Pint * iflag)); X X/*-------------------------------*/ X/* Including from:nurb6.c */ X Xextern void bchslvlot ARGS(( Pfloat * w, Pint nbands, Pint nrow, Pi Vnt m, X Pint md, Pfloat * b)); X Xextern void banslv ARGS(( Pfloat * w, Pint nroww, Pint nrow, Pint V m, X Pint mmax, Pint nbandl, Pint nbandu, Pfloat * V b)); X Xextern void spli2d ARGS(( Pfloat * tau, Pfloat * gtau, Pfloat * t, Pi Vnt n, X`09 Pint k, Pint m, Pint mmax, Pint md, X Pfloat * work, Pfloat * q, Pfloat * bcoef, Pint * iflag)); X Xextern void ll2appr ARGS(( Pfloat * tau, Pfloat * gtau, Pfloat * weight V, X Pint ntau, Pfloat * t, Pint n, Pint k, X Pint m, Pint md, Pfloat * q, Pfloat * diag, X Pfloat * bcoef)); $ CALL UNPACK [.INCLUDE]NURBFNS.H;21 540434082 $ create 'f' X#ifndef _nurbtype_ X#define _nurbtype_ X X#define PC_MaxNetpts 200 /*Maximum number of points is a net*/ X#define PC_NrbMax 50 /*Pseudo maximum number of control points*/ X#define PC_NrbKmax 20 /*Maximum order of the splines*/ X X#define pfhx x X#define pfhy y X#define pfhz z X#define pfhw w X#define LONG_MAX 100000 X Xtypedef struct PR_stats `7B X Pint pf_areqs; /*Allocate requests*/ X Pint pf_dreqs; /*deAllocate requests*/ X Pint pf_inuse; /*Number in Use*/ X Pint pf_maxQlen; /*maximum queue length*/ X Pint pf_Qlen; /*Queue length*/ X Pint pf_minBsize;/*minimum block size*/ X Pint pf_maxBsize;/*maximum block size*/ X Pint pf_nochange;/*Number of allocates that do nothing*/ X Pint pf_news; /*Number of allocates that do Malloc*/ X`7D PR_stats; X Xtypedef struct PR_knots `7B X struct PR_knots `09*pf_next; /*Pointer to next one*/ X Pint `09`09`09pf_size; /*Size of this one*/ X Pfloat `09`09knots`5B`5D; /*Pointer to the knots*/ X`7D PR_knots; X Xtypedef struct PR_pts `7B X struct PR_pts `09*pf_next; /*Pointer to next one*/ X Pint `09`09`09pf_size; /*Size of this one*/ X Ppoint4 `09`09pts`5B`5D; /*Pointer to the Points*/ X`7D PR_pts; X Xtypedef struct PR_dir `7B X Pint pf_k; /* order in x */ X Pint pf_n; /* number of vertices*/ X Pint pf_nt; /* number of knots n+k*/ X PR_knots *pf_kk; /* Pointer to knots*/ X`7D PR_dir; X X Xtypedef struct PR_nurb `7B /* tensor product surface */ X PR_dir pf_x; /*X and Y stuff*/ X PR_dir pf_y; X PR_pts *pf_ppp; /*Pointer to control points*/ X struct PR_nurb *pf_next; /*Pointer to next in free list*/ X struct PR_nurb *pf_prev; /*Pointer to prev in free list*/ X Pint pf_id; /*Integer ID for user use!*/ X`7D PR_nurb; X Xtypedef enum `7BPVxdir, PVydir`7D PE_dir; X X#define nrb_index(x,y,nx) ((x) + ((y) - 1) * (nx)) X#define ni(x,y,nx) ((x) + ((y) - 1) * (nx)) X X#endif $ CALL UNPACK [.INCLUDE]NURBTYPE.H;8 1130248190 $ create 'f' X X#ifndef _PERRFNS_ X#define _PERRFNS_ X Xextern void ptk_error ARGS((Pint err, Pint funcnum)); X Xextern void ptk_seterrorfile ARGS((FILE *fileptr)); X X#endif X X/* end of perrfns.h */ $ CALL UNPACK [.INCLUDE]PERRFNS.H;1 1534609196 $ create 'f' X/* This is file include/phinfns.h created by Extract */ X/* Date: */ X X/*-------------------------------*/ X/* Including from:source/library/phin.c */ X Xextern void ptk_phinter ARGS(( FILE * input, FILE * output, FILE * i Vnform)); X Xextern void ptk_strphinter ARGS(( Pint wsid, Plimit * echoarea, X Pint outputterminal, Pint informterminal)); X Xextern ptkboolean ptk_readphinterscript ARGS(( Pchar * scriptname, FILE V * output, X FILE * inform)); X Xextern void ptk_writestruct ARGS(( FILE * fileptr, Pintlst * stids)); X Xextern void ptk_writestructnet ARGS(( FILE * fileptr, Pintlst * stids)) V; X Xextern void ptk_writeallstruct ARGS(( FILE * fileptr)); X Xextern void ptk_readelem ARGS(( Pint ws, Plimit * echoarea, Peltype V eltype)); X Xextern void ptk_callphinter ARGS(( void )); X Xextern ptkboolean ptk_elemcontent ARGS(( Pint stid, Pint elemid, Pint V termid, X Pint * error)); $ CALL UNPACK [.INCLUDE]PHINFNS.H;1 1668548894 $ create 'f' X/* This is file include/plibfns.h created by Extract */ X/* Date: */ X X/*-------------------------------*/ X/* Including from:source/library/plib.c */ X Xextern Pint ptk_readint ARGS(( Pint ws, Pint defint, Pchar * prompt, X Plimit * echoarea)); X Xextern Pfloat ptk_readfloat ARGS(( Pint ws, Pfloat defreal, X Pchar * prompt, Plimit * echoarea)); X Xextern void ptk_readstring ARGS(( Pint ws, Pchar * defstring, X Pchar * prompt, Plimit * echoarea, X Pint len, Pchar * instr, Pint * inlen)); X Xextern void ptk_stackstruct ARGS(( void )); X Xextern void ptk_unstackstruct ARGS(( void )); X Xextern void ptk_openstruct ARGS(( Pint structid)); X Xextern void ptk_closestruct ARGS(( void )); X Xextern void ptk_seteditmode ARGS(( Peditmode editmode)); X Xextern void ptk_unseteditmode ARGS(( void )); X Xextern ptkboolean ptk_getpickid ARGS(( Pint stid, Pint elptr, Pint * V pickid)); X Xextern ptkboolean ptk_getexecuteid ARGS(( Pint stid, Pint elptr, Pint V * execid)); X Xextern Pint ptk_elemcount ARGS(( Pint stid)); X Xextern ptkboolean ptk_structexists ARGS(( Pint stid)); X Xextern void ptk_getelemtype ARGS(( Pchar * elemstr, Peltype * eltype)); X Xextern void ptk_getelemtypename ARGS(( Peltype eltype, Pint size, X Pchar * elemstr, Pint * totalsize)); X Xextern void ptk_executeelem ARGS(( ptkselcontent * elcont)); X Xextern void ptk_copyelem ARGS(( Pint structid, Pint elemid)); X Xextern void ptk_getprimitivetypename ARGS(( Pattrs attr, Pint size, X Pchar * attrstr, Pint * totalsize V)); X Xextern void ptk_copyelemrange ARGS(( Pint stid, Pint elem1, Pint ele Vm2)); X Xextern ptkboolean ptk_removestruct ARGS(( Pint stid)); X Xextern void ptk_findelemtype ARGS(( Peltype * eltypelst, Pint lenlst, X Psrchdir srchdir, Psrchstatus * srchstat, X Pint * elptr, Pint * lstnum)); X Xextern ptkboolean ptk_findnextpickid ARGS(( Pint stid, Psrchdir srchdir V, X Pint * eltptr, Pint * pickid)); X Xextern ptkboolean ptk_findlabel ARGS(( Pint label, Pint * elemptr)); X Xextern void ptk_delelemtype ARGS(( Pint stid, Pint lenlst, X Peltype * eltypelst)); X Xextern void ptk_delelem ARGS(( Pint numelems)); X Xextern Pint ptk_countchildren ARGS(( Pint stid)); X Xextern Pint ptk_countuniqchildren ARGS(( Pint stid)); X Xextern void ptk_inqstructnetids ARGS(( Pint root, Pint size, X Pintlst * stids, Pint * totalsize)); X Xextern void ptk_structsummary ARGS(( FILE * fileptr)); X Xextern void ptk_setattrasf ARGS(( Pint numattrs, Pattrid * attrs, Pas Vf asf)); X Xextern void ptk_setallattrasf ARGS(( Pasf asf)); X Xextern Pedgebundl ptk_setedgebundlerec ARGS(( Pedgef eflag, Pint etype, X Pfloat escale, Pint ecolour)); X Xextern Pinterbundl ptk_setinteriorbundlerec ARGS(( Pinterstyle istyle, X Pint index, Pint icolour)); X Xextern Plnbundl ptk_setpolylinebundlerec ARGS(( Pint ltype, Pfloat lwid Vth, X Pint lcolour)); X Xextern Pmkbundl ptk_setpolymarkerbundlerec ARGS(( Pint mtype, Pfloat ms Vize, X Pint mcolour)); X Xextern Ptxbundl ptk_settextbundlerec ARGS(( Pint tfont, Ptxprec tprec, X Pfloat texp, Pfloat tspace, Pint tcolour)); X Xextern void ptk_computecharsize ARGS(( Pint wsid, Pchar * str, Ppoint V * box, X Pint font, Pfloat * charht, X Pfloat * charexp)); X Xextern void ptk_computecharheight ARGS(( Pint wsid, Pchar * str, X Ppoint * box, Pint font, Pfloat * charht V)); X +-+-+-+-+-+-+-+- END OF PART 181 +-+-+-+-+-+-+-+-