-+-+-+-+-+-+-+-+ 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 +-+-+-+-+-+-+-+-