/* * Copyright (C) 1998, 2000-2007, 2010, 2011, 2012, 2013 SINTEF ICT, * Applied Mathematics, Norway. * * Contact information: E-mail: tor.dokken@sintef.no * SINTEF ICT, Department of Applied Mathematics, * P.O. Box 124 Blindern, * 0314 Oslo, Norway. * * This file is part of SISL. * * SISL is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * SISL is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public * License along with SISL. If not, see * . * * In accordance with Section 7(b) of the GNU Affero General Public * License, a covered work must retain the producer line in every data * file that is created or manipulated using SISL. * * Other Usage * You can be released from the requirements of the license by purchasing * a commercial license. Buying such a license is mandatory as soon as you * develop commercial activities involving the SISL library without * disclosing the source code of your own applications. * * This file may be used in accordance with the terms contained in a * written agreement between you and SINTEF ICT. */ #ifndef SISLP_INCLUDED #define SISLP_INCLUDED /* * If _SISL_COPYRIGHT_H is defined before sisl-copyright.h is included * then flag this by defining SISL_INTERNAL as we're compiling SISL * library source files. By doing this we can hide internal SISL macros * if this header file is included in external files. * --------------------------------------------------------------------- */ #if defined(_SISL_COPYRIGHT_H) #define SISL_INTERNAL 1 #endif #include "sisl-copyright.h" #include "sisl.h" /* * * $Id: sislP.h,v 1.56 2009-03-18 13:30:41 vsk Exp $ * */ #if defined(SISL_ALIGNMENT) #pragma HP_ALIGN NATURAL #endif /* Get size_t */ #include #if defined(SISL_INTERNAL) /* Get standard I/O library definitions */ #include /* Get standard library definitions (includes malloc defs) */ #include /* Get string library definitions (includes memcpy defs) */ #include /* Get system spesific limits */ #include /* Get system spesific values */ #ifndef MAXDOUBLE # define MAXDOUBLE 1.79769313486231570e+308 #endif #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__MINGW32__) || defined(__APPLE__) # define MAXFLOAT ((float)3.40282346638528860e+38) # define MINDOUBLE 2.22507385850720140e-308 # define MINFLOAT ((float)1.17549435082228750e-38) # define M_PI 3.14159265358979323846 # define M_PI_2 1.57079632679489661923 # define M_SQRT2 1.41421356237309504880 # define M_SQRT1_2 0.70710678118654752440 #endif /* Get floating point limits */ #include /* Get math library routines definition. */ #include #endif /* SISL_INTERNAL */ #if !defined(apollo) #if defined(__STDC__) #if !defined(CONST) #define CONST const #endif #define VOIDP (void *) #define CONSTVOIDP (const void *) #else /* Not __STDC__ */ #if !defined(CONST) #define CONST #endif #define VOIDP (char *) #define CONSTVOIDP (char *) #endif #else /* apollo */ #if !defined(CONST) #define CONST #endif #define VOIDP (void *) #define CONSTVOIDP (void *) #endif /* This file contains the definition of the structure SISLPoint The structure is created 18.04.89 by UJK. */ typedef struct SISLPoint { double ec[3]; int idim; /* The dimension the point lies in */ double *ecoef; /* Pointer to the array containing the coordinates */ int icopy; /* Indicates whether the arrays of the point are copied or referenced by creation of the point. = 0 : Pointer set to input arrays. = 1 : Copied. = 2 : Pointer set to input arrays, but are to be treated as copied. */ SISLbox *pbox; /*Pointer to a structur to store the boxes. */ } SISLPoint; /* This file contains the definition of the structure SISLObject that contains the description of a geometric object that take part in an intersection problem or in a related problem. SISLObject can represent any geometric structure, but only on at a time. */ typedef struct SISLObject { int iobj; /* Integer indicates which kind of geometric object is contained in a particular instance of the structure. = 1 (SISLCurve) - curve. = 2 (SURFACE) - tensor-product surface. */ SISLPoint *p1; /* Pointer to a point (instance of Point). */ SISLCurve *c1; /* Pointer to a curve * (instance of SISLCurve). */ SISLSurf *s1; /* Pointer to a surface * (instance of SISLSurf). */ struct SISLObject *o1; /* Pointer to parent object * (instance of Object). */ struct SISLObject *edg[4]; /* Pointer to objects edges * (instance of Object). */ struct SISLObject *psimple; /* Indicates if object/object intersection * is simple case. */ } SISLObject; typedef struct SISLIntsurf { int ipoint; /* Number of points defining the curve. */ int ipar; /* Number of parameter directions of */ double *epar; /* Pointer to the parameter-values of the points, dimension: ipoint*ipar */ int *const_par; /* Constant parameter direction between two points in epar. */ } SISLIntsurf; typedef struct SISLTrimpar { int ptindex; /* Index in pnext of pointer to an adjacent point in the trim curve. */ int parindex; /* The parameter which is constant along the trim curve, between this point and the ptindex point. */ } SISLTrimpar; /* This file contains the description of an intersection point (or closest point or extremal point) found in the recursive part of an intersection routine. */ typedef struct SISLIntpt { int ipar; /* Number of parameter directions in * intersection problem. */ double *epar; /* Parametervalues of point, possibly in two * objects. */ double adist; /* Distance between the objects in this point. * tdist is used in closest point problems. */ struct SISLIntpt *pcurve; /* Not used, kept for compatibility with old version on the structure.*/ int iinter; /* = 1 ORDINARY MAIN POINT = 2 SINGULAR MAIN POINT = 3 TRIM MAIN POINT = -1 ORDINARY HELP POINT = -2 SINGULAR HELP POINT = -3 TRIM HELP POINT */ struct SISLIntpt **pnext; /* Pointers to next points in each curve * chain. */ int *curve_dir; /* An array of curve directions + from - to * this point. */ int no_of_curves; /* Number of curves containing this point. */ int no_of_curves_alloc; /* The size of the arrays allocated */ int *left_obj_1; /* Pretopology information, one for each * curve. */ int *left_obj_2; /* Pretopology information, one for each * curve. */ int *right_obj_1; /* Pretopology information, one for each curve. */ int *right_obj_2; /* Pretopology information, one for each curve. */ int size_1; /* Size of geo_data_1 */ int size_2; /* Size of geo_data_2 */ double *geo_data_1; /* Containing geometric info first object */ double *geo_data_2; /* Containing geometric info second object */ /* double geo_aux[3]; Containing auxiliary geo info, see sh6idput*/ double geo_track_3d[10]; /* To store intersection curve info */ double geo_track_2d_1[7]; double geo_track_2d_2[7]; int edge_1; /* Edge flag for topology */ int edge_2; int marker; /* Help attribute when creating lists */ int evaluated; /* Help attribute when creating tracks */ struct SISLTrimpar *trim[2]; /* Used if pt is in trim curve. */ int iside_1; /* Left/right evaluator flag. -1,0+ */ int iside_2; /* Left/right evaluator flag. -1,0+*/ } SISLIntpt; /* This file contains the definition of the structure SISLTrack The structure is created 10.06.91 by UJK. */ typedef struct SISLTrack { SISLSurf *psurf_1; /* Pointer to first surface in intersection */ SISLSurf *psurf_2; /* Pointer to second surface in intersection */ SISLCurve *pcurve_3d; /* Pointer to 3D support curve. */ SISLCurve *pcurve_2d_1; /* Pointer to 2D support curve in first parameter space. */ SISLCurve *pcurve_2d_2; /* Pointer to 2D support curve in second parameter space. */ int ideg; /* Type of track. = 0, Bspline vs Bspline = 1, Bspline vs Plane = 2, Bspline vs Quadric surface = 1001 Bspline vs Torus surface = 1003 Bspline silhouette line, parallel projection = 1004 Bspline silhouette line, perspective projection = 1005 Bspline silhouette line, circular projection */ double eimpli[16]; /* Description of the implicit surface */ int turned; /* Connection between the direction of the support curve and the cross product between the two surface normals. = 0, same direction = 1, oposite direction */ int exact; /* Flag if curve is exact */ int pretop[4]; /* Pretopology */ int sing_start; /* Singular start end point markers */ int sing_end; } SISLTrack; /* This file contains the description of a list connecting points that belong to an intersection curve. */ typedef struct SISLIntlist { SISLIntpt *pfirst; /* Pointer to first point in list. */ SISLIntpt *plast; /* Pointer to last point in list. */ int ind_first; /* Index pointer in pfirst */ int ind_last; /* Index pointer in plast */ int itype; /* Status of curve-segment. = 0 : open curve, no singularities. = 1 : closed curve, no singularities. = 2 : more than two curves meet at start point. = 3 : more than two curves meet at end point. = 4 : more than two curves meet at start and end point. = 5 : isolated singularity. = 6 : touching area of surface. */ int inumb; /* Number of points in the list. */ int pretop[4]; /* Pretopology */ } SISLIntlist; /* This file contains the definition of an element in a list where each element points to an intersection point. The structure is used internally in intersection routines and related routines. */ typedef struct SISLPtedge { SISLIntpt *ppt; /* Pointer to intersection points. */ struct SISLPtedge *pnext; /* Pointer to next element in the list. */ } SISLPtedge; /* This file contains the definition of the structure keeping track of intersections on edges/endpoints of objects. This structure is used internally in the recursive part of intersection routines and related routines. */ typedef struct SISLEdge { int iedge; /* Number of edges/endpoints of object. */ int ipoint; /* Number of intersection points found on * the edges. */ SISLPtedge **prpt; /* Array containing lists of pointers to the * intersections at the edges. */ } SISLEdge; /* This file contains the definition of the structure SISLIntdat used intarnally in intersection routines in order to store information in intersection points and curves. */ typedef struct SISLIntdat { SISLIntpt **vpoint; int ipoint; int ipmax; SISLIntlist **vlist; int ilist; int ilmax; } SISLIntdat; typedef struct rank_info { int *prio; int *groups; int antgr; int antrem; }rank_info; /* UJK: NEW INTERSECTION STUFF START*/ enum { SI_ORD = 1, SI_SING, SI_TRIM, SI_TOUCH }; /* UJK: NEW INTERSECTION STUFF END*/ #if defined(SISL_INTERNAL) #ifndef HUGE #define HUGE MAXDOUBLE #endif /* Storage classes. Used in space allocation. */ #define INT int #define DOUBLE double #endif /* SISL_INTERNAL */ /* Name of geometry objects. Used in branching. */ #define SISLPOINT 0 #define SISLCURVE 1 #define SISLSURFACE 2 /* The resolution of double precision numbers */ #define AEPSGE (double)1.e-6 #define AEPSCO (double)0.0 #define REL_COMP_RES (double)0.000000000000001 #define REL_PAR_RES (double)0.000000000001 #define ANGULAR_TOLERANCE (double)0.01 /* IN RADIANS */ #define MAXIMAL_RADIUS_OF_CURVATURE (double)10000.0 /* * Name of the nullobject, what a pointer points to when * it points to nothing. */ #ifndef SISL_NULL #define SISL_NULL 0 #endif /* Name of double 0.0 */ #ifndef DZERO #define DZERO (double)0.0 #endif #if defined(SISL_INTERNAL) #define ONE_THIRD (double)0.333333333333333333333333 #define ONE_SIXTH (double)0.166666666666666666666667 #define ONE_FOURTH (double)0.25 /* Functions taking max/min of two arguments. */ #ifndef max #define max(a,b) ((a) > (b) ? (a) : (b)) #endif #ifndef min #define min(a,b) ((a) < (b) ? (a) : (b)) #endif #ifndef MAX #define MAX max #endif #ifndef MIN #define MIN min #endif /* Macros checking for equality/non-equality between two double numbers */ #define DEQUAL(a,b) \ ( (fabs((a) - (b)) <= (REL_PAR_RES * MAX(MAX(fabs(a),fabs(b)),(double)1.0))) ? (1) : (0) ) #define DNEQUAL(a,b) \ ( (fabs((a) - (b)) > (REL_PAR_RES * MAX(MAX(fabs(a),fabs(b)),(double)1.0))) ? (1) : (0) ) #define ZEROLEN(a) \ ( (fabs(a) <= AEPSGE) ? (1) : (0) ) /* Space allocation. */ #if defined(SISL_INTERNAL) || defined(USING_SISL_NEWARRAY) #define newarray(a,b) \ ((a)>(SISL_NULL)?((b*)malloc((size_t)((a)*sizeof(b)))):(SISL_NULL)) #define new0array(a,b) \ ((a)>(SISL_NULL)?((b*)calloc((size_t)(a),(size_t)(sizeof(b)))):(SISL_NULL)) #define increasearray(a,b,c) (c*)realloc(VOIDP(a),(size_t)((b)*sizeof(c))) #define freearray(a) { (void)free(VOIDP a); a = SISL_NULL; } #define free0array(a) { (void)free(VOIDP a); a = SISL_NULL; } /* Copying of arrays */ #define memcopy(a,b,c,d) \ VOIDP memcpy(VOIDP (a),CONSTVOIDP(b),(size_t)((c)*sizeof(d))) /* Zero out an array */ #define memzero(a,b,c) \ VOIDP memset(VOIDP (a),0,(size_t)((b)*sizeof(c))) #endif /* SISL_INTERNAL || USING_SISL_NEWARRAY */ /* Set value of PI/2, PI, 3PI/2 and 2PI */ #ifndef PIHALF #define PIHALF (double)M_PI_2 #endif #ifndef PI #define PI (double)M_PI #endif /* #ifndef PIHALF #define PIHALF (double)1.57079632679489661923 #endif #ifndef PI #define PI (double)3.14159265358979323846 #endif */ #ifndef THREEPIHALF #define THREEPIHALF (double)4.71238898038468985769 #endif #ifndef TWOPI #define TWOPI (double)6.28318530717958647692 #endif #ifndef ROTM /* #define ROTM (double)0.70710678118654752440 */ #define ROTM (double)M_SQRT1_2 #endif #ifndef SIMPLECASE #define SIMPLECASE (double)0.75 #endif /* Values of logicals */ #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif #endif /* SISL_INTERNAL */ /* * -------------------------------------------------------------- * Forward declarations of all sisl low-level routines, all in C. * -------------------------------------------------------------- */ #if defined(__cplusplus) extern "C" { #endif #if defined(SISLNEEDPROTOTYPES) #ifndef CONSTRUCT extern #endif SISLIntpt *copyIntpt(SISLIntpt *); #ifndef CONSTRUCT extern #endif SISLEdge *newEdge(int); #ifndef CONSTRUCT extern #endif SISLIntdat *newIntdat(void); #ifndef CONSTRUCT extern #endif SISLIntlist *newIntlist(SISLIntpt *,SISLIntpt *,int); #ifndef CONSTRUCT extern #endif SISLIntpt *newIntpt(int,double *,double); #ifndef CONSTRUCT extern #endif SISLObject *newObject(int); #ifndef CONSTRUCT extern #endif SISLPoint *newPoint(double *,int,int); #ifndef CONSTRUCT extern #endif SISLPtedge *newPtedge(SISLIntpt *); #ifndef CONSTRUCT extern #endif SISLIntsurf *newIntsurf(SISLIntlist *); #ifndef CONSTRUCT extern #endif SISLTrack *newTrack(SISLSurf *,SISLSurf *,SISLCurve *,SISLCurve *, SISLCurve *,int,double[],int,int,int); #ifndef CONSTRUCT extern #endif SISLTrimpar *newTrimpar(int,int); #ifndef CONSTRUCT extern #endif SISLIntpt *hp_newIntpt(int,double *,double,int,int,int,int,int, int,int,double [],double []); #ifndef CONSTRUCT extern #endif SISLIntpt *hp_copyIntpt(SISLIntpt *); #ifndef CONSTRUCT extern #endif SISLSegmentation *newSegmentation(double *segmentation, int *type, int nseg); #ifndef DESTRUCT extern #endif void freeEdge(SISLEdge *); #ifndef DESTRUCT extern #endif void freeIntdat(SISLIntdat *); #ifndef DESTRUCT extern #endif void freeIntlist(SISLIntlist *); #ifndef DESTRUCT extern #endif void freeIntpt(SISLIntpt *); #ifndef DESTRUCT extern #endif void freeObject(SISLObject *); #ifndef DESTRUCT extern #endif void freePoint(SISLPoint *); #ifndef DESTRUCT extern #endif void freePtedge(SISLPtedge *); #ifndef DESTRUCT extern #endif void freeIntsurf(SISLIntsurf *); #ifndef DESTRUCT extern #endif void freeTrimpar(SISLTrimpar *); #ifndef DESTRUCT extern #endif void freeTrack(SISLTrack * ptrack); #ifndef DESTRUCT extern #endif void freeSegmentation(SISLSegmentation *); #ifndef MAKE3D extern #endif void make3D(SISLSurf *, SISLSurf **, int *); #ifndef S1119 extern #endif void s1119(double *,double *,double *,int,int,int,int,int *,int *,int *,int *); #ifndef S1161 extern #endif void s1161(SISLObject *,double *,double ,SISLIntdat **,int *); #ifndef S1162 extern #endif void s1162(SISLObject *,double *,double,SISLIntdat **,SISLEdge *[2],int, int,int *); #ifndef S1172 extern #endif void s1172(SISLCurve *,double,double,double,double *,int *); #ifndef S1173 extern #endif void s1173(SISLPoint *,SISLSurf *,double,double [],double [],double [], double [],int *); #ifndef S1174 extern #endif void s1174(SISLSurf *,double [],double [],double [],double [],int *); #ifndef S1190 extern #endif void s1190(SISLObject *, double *, double, int *); #ifndef S1192 extern #endif void s1192(SISLObject *, double, int *); #ifndef S1219 extern #endif void s1219(double *,int,int,int *,double,int *); #ifndef S1220 extern #endif void s1220(double *,int,int,int *,double,int,double [],int *); #ifndef S1222 extern #endif void s1222(double *,int,int,int,double,int,double [],int *); #ifndef S1223 extern #endif void s1223(double [],double [],int,int,int,int,int,int,double [], int,int,double [],int *); #ifndef S1224 extern #endif void s1224(double [],double [],int,int,int,int,int, int,double [],int, double [],int *); #ifndef S1231 extern #endif void s1231(SISLCurve *,double,SISLCurve **,SISLCurve **,int *); #ifndef S1232 extern #endif void s1232(double [],int,int,double,double,double [],int *); #ifndef S1235 extern #endif void s1235(double [],int,int,int *,double **,int *); #ifndef S1236 extern #endif void s1236(double [],int,int,int,double [],int *); #ifndef S1239 extern #endif void s1239(SISLCurve *,int,double,SISLCurve *,double,double,SISLCurve **, int,int *,int *); #ifndef S1244 extern #endif void s1244(double [],int,int,int,int,int,int,double *,int *); #ifndef S1245 extern #endif void s1245(double [],int,int,double [],double,int,double [],double *, double *,int *); #ifndef S1251 extern #endif void s1251(SISLCurve *,double,double *,int *); #ifndef S1252 extern #endif void s1252(SISLCurve *,double,double,double *,int *); #ifndef S1291 extern #endif void s1291(double cvder[], double sfder[], int idim, double cvder2[], int *jstat); #ifndef S1301 extern #endif void s1301(double,double,int,SISLCurve **,int *); #ifndef S1304 extern #endif void s1304(double [],double [],double [],double [], double [],double [],double [],int *); #ifndef S1305 extern #endif void s1305(double [],double [],double [],double [],int *,double [],int *); #ifndef S1306 extern #endif void s1306(double [],double [],double [],int,double [],double [],int *); #ifndef S1307 extern #endif void s1307(double [],int,double [],int *); #ifndef S1308 extern #endif void s1308(double [],int,double [],int,double [],int *); #ifndef S1309 extern #endif double s1309(double [],double [],double [],int,int *); #ifndef S1311 extern #endif double s1311(double,double,double,int *); #ifndef S1312 extern #endif void s1312(double [],int,int,int,double [],SISLCurve **,int *); #ifndef S1313 extern #endif void s1313(SISLSurf *,double [],int,double,double,double, SISLIntcurve *,int,int,int *); #ifndef S1320 extern #endif void s1320(SISLSurf *,double [],int,int,SISLSurf **,int *); #ifndef S1321 extern #endif void s1321(double [],double,int,int,double [],int *); #ifndef S1322 extern #endif void s1322(double [],double [],double,int,int,double [],int *); #ifndef S1323 extern #endif void s1323(double [],double [],double [],int,int,double [],int *); #ifndef S1324 extern #endif void s1324(double [],double,double [],int,double [],int *); #ifndef S1325 extern #endif double s1325(double,double); #ifndef S1329 extern #endif void s1329(SISLSurf *,double [],double [],int,SISLSurf **,int *); #ifndef S1330 extern #endif void s1330(double [],double [],double [],double [],double [],double [], double [],double [],int *,double [],double [],int *); #ifndef S1331 extern #endif void s1331(double [],double [],int,int,double [],double [],int *); #ifndef S1333 extern #endif void s1333(int,SISLCurve *[],int [],double,int,int,int,SISLSurf **, double **,int *); #ifndef S1333_COUNT extern #endif void s1333_count(int,SISLCurve *[],int *,int *); #ifndef S1333_CYCLIC extern #endif void s1333_cyclic(SISLSurf *,int,int *); #ifndef S1334 extern #endif void s1334(double [],int,int,double [],int,int,int,int,double, double *,SISLCurve **,double **,int *,int *); #ifndef S1340 extern #endif void s1340(SISLCurve *,double [],int,int,double,int,SISLCurve **, double [],int *); #ifndef S1341 extern #endif void s1341(double [],int,int,int,double [],double [],int,int, double,double,int,int,SISLCurve **,double [],int *); #ifndef S1342 extern #endif void s1342(double [],double [],int,int,int,double [], double [],int,int,double,int,SISLCurve **,double [],int *); #ifndef S1343 extern #endif void s1343(SISLCurve *,double [],int,int,double,int,SISLCurve **,int *); #ifndef S1345 extern #endif void s1345(SISLSurf *,double [],int [],double [],double,int,int, SISLSurf **,double [],int *); #ifndef S1346 extern #endif void s1346(double [],int,int,int,int,double [],double [],double [], int [],double [],double,double,int,int,int,int, SISLSurf **,double [],int *); #ifndef S1347 extern #endif void s1347(double [],double [],double [],double [],int,int,int,int, double [],double [],double [],int [],double [],double,int, int,SISLSurf **,double [],int *); #ifndef S1348 extern #endif void s1348(SISLSurf *,double [],int [],double [],double,int,int, SISLSurf **,int *); #ifndef S1349 extern #endif void s1349(int,SISLCurve *[],int *); #ifndef S1350 extern #endif void s1350(double [],double [],int,int,int,SISLCurve **,int *); #ifndef S1351 extern #endif void s1351(double [],int,int,int,int,SISLCurve **,int *); #ifndef S1352 extern #endif void s1352(double [],int,int,double [],double [], double [],int,int,int,double [],int *); #ifndef S1353 extern #endif void s1353(SISLCurve *,double [],rank_info *,int *); #ifndef S1354 extern #endif void s1354(SISLCurve *,SISLCurve *,rank_info *,double [], double [],int,int,int,int,SISLCurve **,double [],int *); #ifndef S1355 extern #endif void s1355(SISLCurve *,double [],double **,int *,int *); #ifndef S1358 extern #endif void s1358(double [],int,int,double [],double [],int,int,int,int,double, double *,SISLCurve **,double **,int *,int *); #ifndef S1359 extern #endif void s1359(double [],double,int,int,int,double [],SISLCurve **,int *); #ifndef S1361 extern #endif void s1361(double [],double [],int,double [],double [],int *); #ifndef S1362 extern #endif void s1362(SISLCurve *,double,double [],int,int,double,int *,double [],int *); #ifndef S1366 extern #endif void s1366(SISLSurf *,double,double,double,int, double *,int,int,double *,int,int,SISLSurf **,int *); #ifndef S1367 extern #endif void s1367(SISLSurf *,double,double,int,double [], int,int *,int *,double [],int *); #ifndef S1370 extern #endif void s1370(SISLCurve *,double [],int,int,int,SISLCurve **,int *); #ifndef S1376 extern #endif void s1376(double [],int,int,double **,int *,int *,int *); #ifndef S1377 extern #endif void s1377(SISLCurve *,double [],int,int,SISLCurve **,int *); #ifndef S1378 extern #endif void s1378(SISLSurf *,double [],int,int,SISLSurf **,int *); #ifndef S1381 extern #endif void s1381(double [],int,int,double **,int *,int,int *); #ifndef S1382 extern #endif void s1382(SISLSurf *,double [],int,SISLSurf **,int *); #ifndef S1384 extern #endif void s1384(SISLCurve *,SISLSurf *,int,int,double,int *,int *,int *,double [], double [],double [],double [],int *); #ifndef S1385 extern #endif void s1385(double [],double [],double [],double,int,double,SISLCurve **,int *); #ifndef S1393 extern #endif void s1393(int,SISLCurve *[],SISLCurve *[],SISLCurve *[],int *); #ifndef S1399 extern #endif void s1399(SISLCurve *,double,double); #ifndef S1435 extern #endif void s1435(SISLSurf *,int,SISLCurve **,double *,int *); #ifndef S1436 extern #endif void s1436(SISLSurf *,double,SISLCurve **,int *); #ifndef S1437 extern #endif void s1437(SISLSurf *,double,SISLCurve **,int *); #ifndef S1438 extern #endif void s1438(SISLCurve *,int,SISLPoint **,double *,int *); #ifndef S1452 extern #endif void s1452(SISLSurf *,double,double,SISLSurf **,int *); #ifndef S1500 extern #endif void s1500(double [],double [],double [],double,double,int,int, double [],int *); #ifndef S1504 extern #endif void s1504(double *,int,int,double *,int,int,double [],int [],int *); #ifndef S1505 extern #endif void s1505(const SISLSurf *,int,int,int,double *,double *, int *, int *,double [],double [],int *); #ifndef S1507 extern #endif void s1507(SISLCurve **, int, int, SISLCurve ***, int *); #ifndef S1512 extern #endif void s1512(SISLSurf *,double [],int,SISLSurf **,int *); #ifndef S1513 extern #endif void s1513(SISLSurf *,double [],double [],int,SISLSurf **,int *); #ifndef S1516 extern #endif void s1516(double [],double [],int,int,double **,int *); #ifndef S1517 extern #endif void s1517(double [],double [],double [],int,double,double **,int *); #ifndef S1520 extern #endif void s1520(SISLCurve *,double,double [],double [],SISLSurf **,int *); #ifndef S1521 extern #endif SISLCurve* s1521(SISLCurve *,int *); #ifndef S1528 extern #endif void s1528(int,int,int,double [],int,int,int,double **,double **,int *); #ifndef S1531 extern #endif void s1531(double [],int,int,int,double **,int *); #ifndef S1540 extern #endif void s1540(double [], int, int, double [], int, int, double [], int [], int *); #ifndef S1541 extern #endif void s1541(SISLCurve *, int, double [], int [], double [], int *); #ifndef S1604 extern #endif void s1604(double [],int,double,int,int,int,SISLCurve **,int *); #ifndef S1605 extern #endif void s1605(SISLCurve *,double,double **,int *,int *); #ifndef S1612 extern #endif void s1612(SISLCurve *,double,double **,int *,int *,int *); #ifndef S1613BEZ extern #endif void s1613bez(SISLCurve *,int,double,double **,int *,int *); #ifndef S1614 extern #endif void s1614(double [],int,int,int [],double [],int *,int [],int *); #ifndef S1615 extern #endif void s1615(double [],int,int,int [],int *); #ifndef S1616 extern #endif void s1616(double [],int,int,int [],double [],int *); #ifndef S1617 extern #endif void s1617(double [],int,int,int [],double,double [], double [],double [],double [],double *,int *); #ifndef S1618 extern #endif void s1618(double [],double [],double[],int,double *); #ifndef S1619 extern #endif void s1619(double [],int,int,int [],double [],int,double[],double *, int *); #ifndef S1700 extern #endif void s1700(int,int,int,int,int *,int *,int *,double *,double,double *,int *); #ifndef S1701 extern #endif void s1701(int,int,int,int,int *,int *,int *, double *,double *,double *,double *,int *); #ifndef S1705 extern #endif void s1705(SISLCurve *,int *); #ifndef S1707 extern #endif void s1707(SISLCurve *,int *); #ifndef S1708 extern #endif void s1708(SISLSurf *,int *); #ifndef S1741 extern #endif void s1741(SISLObject *,SISLObject *,double,int *); #ifndef S1753 extern #endif void s1753(double [],double [],int,int,int,double [],double [],int, double [],double [],int *); #ifndef S1754 extern #endif void s1754(double *,int,int,int,double **,int *,int *); #ifndef S1755 extern #endif void s1755(double [],int,int,double [],int *,int *); #ifndef S1770 extern #endif void s1770(SISLCurve *,SISLCurve *,double,double,double,double,double, double,double,double *,double *,int *); #ifndef S1770_2D extern #endif void s1770_2D(SISLCurve *,SISLCurve *,double,double,double,double,double, double,double,double *,double *,int *); #ifndef S1771 extern #endif void s1771(SISLPoint *,SISLCurve *,double,double,double,double,double *,int *); #ifndef S1772 extern #endif void s1772(SISLCurve *,SISLSurf *,double,double,double [],double,double [], double,double [],double *,double [],int *); #ifndef S1773 extern #endif void s1773(SISLPoint *,SISLSurf *,double,double [],double [],double [], double [],int *); #ifndef S1780 extern #endif void s1780(SISLCurve *,SISLCurve *,SISLIntpt *[],int *); #ifndef S1785 extern #endif void s1785(SISLCurve *,SISLSurf *,double,double [],double [],int,int *); #ifndef S1786 extern #endif void s1786(SISLCurve *,SISLCurve *,double,double [],double [],int *); #ifndef S1787 extern #endif void s1787(SISLSurf *,double,double,double [],double [],double [],int *); #ifndef S1788 extern #endif void s1788(SISLSurf *,SISLSurf *,double,double [],double [],double [],int *); #ifndef S1789 extern #endif void s1789(SISLPoint *,SISLSurf *,double ,double [],double [],int *); #ifndef S1790 extern #endif void s1790(SISLObject *,SISLObject *,double,int *); #ifndef S1791 extern #endif int s1791(double [],int,int); #ifndef S1792 extern #endif double s1792(double [],int,int); #ifndef S1795 extern #endif void s1795(SISLSurf *,SISLSurf *,double,double,int *); #ifndef S1796 extern #endif void s1796(SISLCurve *,SISLCurve *,double,double,int *); #ifndef S1797 extern #endif void s1797(SISLSurf *,SISLCurve *,double,double,int *); #ifndef S1830 extern #endif void s1830(SISLSurf *,SISLCurve *,int *); #ifndef S1834 extern #endif void s1834(double [],int,double [],int,int,double [],double [],int *); #ifndef S1839 extern #endif void s1839(SISLSurf *,double [],int,int,int *); #ifndef S1840 extern #endif void s1840(SISLCurve *,double *,int *); #ifndef S1880 extern #endif void s1880(int,int,int *,SISLIntpt **,int *,SISLIntlist **, int *,double **,double **,int *,SISLIntcurve ***,int *); #ifndef S1890 extern #endif void s1890(double [],int,int,double *[],int *[],int *); #ifndef S1891 extern #endif void s1891(double [],double [],int,int,int,int [],int,double [], double *[],int *,int,int,int,int *); #ifndef S1893 extern #endif void s1893(SISLCurve *,double [],int,int,int,int,SISLCurve **,int *); #ifndef S1894 extern #endif void s1894(double [],int,int,int,int,double [],int,int,double *[],int *, int *,int *); #ifndef S1896 extern #endif void s1896(SISLSurf *,double [],int,int,int [],int [],int [],int [],SISLSurf **,int *); #ifndef S1897 extern #endif void s1897(double [],int,double,int,int,double [],int *); #ifndef S1900 extern #endif void s1900(double [],double [],double [],int [],int,int,int,int, double *,SISLCurve **,double **,int *,int *); #ifndef S1901 extern #endif void s1901(void (*)(double[],int[],int,int,int,double,double *, double *[],double *[],int *), void (*)(double[],int,int,int,double *[],int *), double [],int [],int,double,int,int,int, double *,SISLCurve **,double **,int *,int *); #ifndef S1902 extern #endif void s1902(double [],int,int,int,double *[],int *); #ifndef S1903 extern #endif void s1903(double [],int,int,int,double *[],int *); #ifndef S1904 extern #endif void s1904(double [],int,int,int,double *[],int *); #ifndef S1905 extern #endif void s1905(double [],int [],int,int,int,int,double **,int **,int *,int *); #ifndef S1906 extern #endif void s1906(double *,int *,int,int,int,int,double **,int **,int *,int *); #ifndef S1907 extern #endif void s1907(double *,int *,double *,int,int,int,int,int, double *[],int *[],double *[],int *,int *); #ifndef S1908 extern #endif void s1908(double [],int [],double [],int,int,int,int, double *[],int *[],double *[],int *,int *); #ifndef S1909 extern #endif void s1909(double [],int [],int,int,int,double,double *,double *[], double *[],int *); #ifndef S1910 extern #endif void s1910(double [],int [],int,int,int,double,double *,double *[], double *[],int *); #ifndef S1911 extern #endif void s1911(double [],int [],int,int,int,double,double *,double *[], double *[],int *); #ifndef S1912 extern #endif void s1912(void (*)(double[],int[],int,int,int,double,double *, double *[],double *[],int *), void (*)(double[],int,int,int,double *[],int *), double [],int [],int,double,int,int,int, double *,SISLCurve **,double **,int *,int *); #ifndef S1916 extern #endif void s1916(int,double [],double [],int,int,int,int,double [],int [],int *); #ifndef S1917 extern #endif void s1917(int,double [],int,int,int [],double,int,double *[],int *[],int *i,int *); #ifndef S1918 extern #endif void s1918(int,double [],double [],int,int,int,double [],int [],int *); #ifndef S1919 extern #endif void s1919(double [],double [],double [],double [],double [],int,int,int,int,int, double,double,double,int *); #ifndef S1924 extern #endif void s1924(int,int,int,int,int,int,double **,int *); #ifndef S1925 extern #endif void s1925(double [],double [],int,int [],double [],double [],int,int,int,int, double [],int,int [],double [],int,double [],int,int *); #ifndef S1926 extern #endif void s1926(double *,int,int,int *,double *,int,double *,int,int *); #ifndef S1927 extern #endif void s1927(double *,int,int,int *,double *,int,double *,int,double *[], double *,int *); #ifndef S1930 extern #endif void s1930(int,SISLCurve **,double **,double **,int *,int *,int *); #ifndef S1931 extern #endif void s1931(int,SISLCurve **,double **,double **,int *,int *,int *); #ifndef S1931UNIT extern #endif void s1931unit (int,SISLCurve **,double **,double **,int *,int *,int *); #ifndef S1932 extern #endif void s1932(int,SISLCurve **,double,double,double *,int,int,double **,int *); #ifndef S1933 extern #endif void s1933(int,SISLCurve *[],double,double,double **,int *,int *,int *); #ifndef S1934 extern #endif void s1934(double *,int,int,double,double,int *); #ifndef S1935 extern #endif void s1935(double *,int,double *,int,double *[],int *,int,int *); #ifndef S1936 extern #endif void s1936(SISLCurve *,double [],int,double *,int *); #ifndef S1937 extern #endif void s1937(double [],int,int,int,double [],double []); #ifndef S1938 extern #endif void s1938(SISLSurf *,double [],int,double [],int,double **,int *); #ifndef S1941 extern #endif void s1941(SISLCurve *pcurve,int icont,int *jstat); #ifndef S1942 extern #endif void s1942(SISLCurve *pc1,SISLCurve *pc2,int idim,double ea[],int nstart[], int nstop[],double emxerr[],double el2err[],int *jstat); #ifndef S1943 extern #endif void s1943(SISLCurve *pcurve,double etau[],int ik,int in,int ileftfix, int irightfix,int incont,SISLCurve **rnewcurve, double gmaxerr[],double gl2err[],int *jstat); #ifndef S1944 extern #endif void s1944(double etau[],int ik,int in,int idim,double et[],double ed[], int im,int inlc,int inlr,int inorm,double ea[],double ew1[], int nfirst[],int nlast[],double eb[],double ew2[], int n2sta[],double ec[],int *jstat); #ifndef S1945 extern #endif void s1945(double etau[],int ik,int in,int idim,double et[], double ed[],int im,int ilend,int irend, int inlc, int inlr, int inorm, double ea[], double ew1[], int inh, int nfirst[],int nlast[],double eb[], double ew2[], double ec[],int n2sta[],int *jstat); #ifndef S1946 extern #endif void s1946(double ea[],double ew1[],int nfirst[],int nlast[],double ed[], double ec[],int ik,int in,int im,int idim,int ilend,int irend, int inlr, int inlc,int *jstat); #ifndef S1947 extern #endif void s1947(double ea[], int nfirst[], int nlast[], int ik, int im, double etau[], int in, int incont, double ew[], int inlr, int *jnred, double efac[], int *jstat); #ifndef S1948 extern #endif void s1948(double *ea,double *ew,int in,int ik,int inlr, int *nstart,int *jstat); #ifndef S1949 extern #endif void s1949(double *ea,double *ew,double *eb,int in,int ik,int inlr, int idim,int *nstart,int *jstat); #ifndef S1950 extern #endif void s1950(SISLCurve *oldcurve,SISLCurve *rankcurve,rank_info *ranking, double eps[],double epsco[],int startfix,int endfix,int *jncont, int mini,int maxi,SISLCurve **newcurve,double maxerr[],int *stat); #ifndef S1951 extern #endif void s1951(double etau[], double ecoef[], int in, int ik, int idim, int ilend, int irend, int incont, double efac[]); #ifndef S1956 extern #endif void s1956(SISLCurve *,SISLCurve *,SISLSurf **,int *); #ifndef S1959 extern #endif void s1959(SISLPoint *, SISLCurve *, double *, int *); #ifndef S1960 extern #endif void s1960(SISLPoint *, SISLSurf *, double [], int *); #ifndef S1990 extern #endif void s1990(SISLSurf *, double, int *); #ifndef S1991 extern #endif void s1991(SISLCurve *,double,int *); #ifndef S1992 extern #endif void s1992(SISLObject *,int *); #ifndef S1992 extern #endif void s1992cu(SISLCurve *,int *); #ifndef S1992 extern #endif void s1992su(SISLSurf *,int *); #ifndef S1993 extern #endif void s1993(SISLCurve *,int *); #ifndef S1994 extern #endif void s1994(SISLSurf *,int *); #ifndef S2501 extern #endif void s2501(SISLSurf *, int, double [], double [], double *, int *); #ifndef S2503 extern #endif void s2503(SISLSurf *, int, double [], double [], double *, int *); #ifndef S2505 extern #endif void s2505(SISLSurf *, int, double [], double [], double *, int *); #ifndef S2507 extern #endif void s2507(SISLSurf *, int, double [], double [], double *, int *); #ifndef S2509 extern #endif void s2509(SISLSurf *, int, double [], double [], double *, int *); #ifndef S2511 extern #endif void s2511(SISLSurf *, int, double [], double [], double *, int *); #ifndef S2512 extern #endif void s2512(SISLSurf *, int, int, int, double [], int *, int *, double [], int *); #ifndef S2513 extern #endif void s2513(SISLSurf *, int, int, int, double [], double [], double [], int *); #ifndef S2514 extern #endif void s2514(SISLSurf *, int, double [], double [], double [], int *); #ifndef S2515 extern #endif void s2515(SISLSurf *, int, int, int, double [], int *,int *, double [], int *); #ifndef S2516 extern #endif void s2516(SISLSurf *, int, double [], double [], double [], int *); #ifndef S2533 extern #endif void s2533(double *, int, int, int, int, int *, double **, int *); #ifndef S2534 extern #endif void s2534(SISLSurf *, int, int, int, int, void evalp(SISLSurf *, int, int, int, double [], int *, int *, double *, int *), int, SISLSurf **, int *); #ifndef S2535 extern #endif void s2535(SISLSurf *, int, int, int *, int *, SISLSurf ***, int *); #ifndef S2541 extern #endif void s2541(SISLSurf *surf, void evalp(SISLSurf *, int, int, int, double [], int *, int *, double *, int *), int, int, int, double [], int, int, double **, int *); #ifndef S2543 extern #endif void s2543(SISLSurf *, int, double [], double [], double *, double *, double [], double [], int *); #ifndef S2551 extern #endif void s2551(SISLCurve *, double, int *, double [], double *, int *); #ifndef S2554 extern #endif void s2554(SISLCurve *, double, int *, double [], double *, int *); #ifndef S2555 extern #endif void s2555(double [], double *, int *); #ifndef S2557 extern #endif void s2557(SISLCurve *, double, int *, double [], double *, int *); #ifndef S2558 extern #endif void s2558(double [], int, double *, int *); #ifndef S2560 extern #endif void s2560(SISLCurve *, double, int *, double [], double [], double [], double [], double [], int *); #ifndef S2561 extern #endif void s2561(double [], int, double [], double [], double [], double [], int *); #ifndef S6ADDCURVE extern #endif void s6addcurve(SISLCurve *,SISLCurve *,int,SISLCurve **,int *); #ifndef S6AFFDIST extern #endif double s6affdist(double [],double [],double [],int); #ifndef S6ANG extern #endif double s6ang(double [],double [],int); #ifndef S6ANGLE extern #endif double s6angle(double [],double [],double [],int,int *); #ifndef S6CHPAR extern #endif void s6chpar(double [],int,int,int,double []); #ifndef S6CRSS extern #endif void s6crss(double [],double [],double []); #ifndef S6CRVCHECK extern #endif void s6crvcheck(SISLCurve *,int *); #ifndef S6CURVATURE extern #endif void s6curvature(double [],int,double [],int *); #ifndef s6CURVRAD extern #endif void s6curvrad(double [],double [],double [],int,double *,int *); #ifndef S6DECASTELJAU extern #endif void s6deCasteljau(double [],double,double,double,int,double [],int *); #ifndef S6DECOMP extern #endif void s6decomp(double [],double [],double [],double [],double [],int *); #ifndef S6DEGNORM extern #endif void s6degnorm(SISLSurf *,int,double[],double[],double[],double[], double[],int *); #ifndef S6DERTOPT extern #endif void s6dertopt(double [],int [],int,int,double [],int *); #ifndef S6DIFF extern #endif void s6diff(double [],double [],int,double []); #ifndef S6DIST extern #endif double s6dist(double [],double [],int); #ifndef S6DLINE extern #endif double s6dline(double [],double [],double [],int,int *); #ifndef S6DPLANE extern #endif double s6dplane(double [],double [],double [],double [],int,int *); #ifndef S6EQUAL extern #endif int s6equal(double,double,double); #ifndef S6ERR extern #endif void s6err(char *,int,int); #ifndef S6EXISTBOX extern #endif int s6existbox(SISLbox *,int,double); #ifndef S6FINDFAC extern #endif void s6findfac(double [],double [],double [],double [],int,int, double *,double *,double *,int *); #ifndef S6FNDINTVL extern #endif void s6fndintvl(double *et,int ik,int in,int *ileft, double ax1,double ax2,int mu_max,int *jstat); #ifndef S6HERM extern #endif void s6herm(double *,double *,double *,int,int,int,int,int,double [],int *); #ifndef S6HERMITE_BEZIER extern #endif void s6hermite_bezier(SISLSurf *,double [],double [],int,double [],int *); #ifndef S6IDCON extern #endif void s6idcon(SISLIntdat **,SISLIntpt **,SISLIntpt **,int *); #ifndef S6IDCPT extern #endif void s6idcpt(SISLIntdat *,SISLIntpt *,SISLIntpt **); #ifndef S6IDEDG extern #endif void s6idedg(SISLObject *,SISLObject *,int,int,double,SISLIntdat *, SISLPtedge **,int *,int *); #ifndef S6IDENTIFY extern #endif void s6identify(SISLSurf *,double [],double [],double,double,double,int *); #ifndef S6IDGET extern #endif void s6idget(SISLObject *,SISLObject *,int,double,SISLIntdat *, SISLIntdat **,int *); #ifndef S6IDINT extern #endif void s6idint(SISLObject *,SISLObject *,SISLIntdat *,SISLIntpt **,int); #ifndef S6IDKLIST extern #endif void s6idklist(SISLIntdat **,SISLIntlist *,int *); #ifndef S6IDKPT extern #endif void s6idkpt(SISLIntdat **,SISLIntpt **,SISLIntpt **,SISLIntpt **,int *); #ifndef S6IDLIS extern #endif void s6idlis(SISLObject *,SISLObject *,SISLIntdat **,int *); #ifndef S6IDNPT extern #endif void s6idnpt(SISLIntdat **,SISLIntpt **,int,int *); #ifndef S6IDPUT extern #endif void s6idput(SISLIntdat **,SISLIntdat *,int,double,int *); #ifndef S6INV4 extern #endif void s6inv4 (double [], double [], int *); #ifndef S6INVERT extern #endif void s6invert(double [],int,double [],int *); #ifndef S6KNOTMULT extern #endif int s6knotmult(double [],int,int,int *,double,int *); #ifndef S6LENGTH extern #endif double s6length(double [],int,int *); #ifndef S6LINE extern #endif void s6line(double []); #ifndef S6LPRJ extern #endif double s6lprj(double [],double [],int); #ifndef S6LUFACP extern #endif void s6lufacp(double [],int [],int,int *); #ifndef S6LUSOLP extern #endif void s6lusolp(double [],double [],int [],int,int *); #ifndef S6METRIC extern #endif void s6metric(double [],int,int,double [],int *); #ifndef S6MOVE extern #endif void s6move(double []); #ifndef S6MULVEC extern #endif void s6mulvec (double [],double [],double []); #ifndef S6MVEC extern #endif void s6mvec(double [],double [],int,double []); #ifndef S6NEWBOX extern #endif void s6newbox(SISLbox *pbox,int inum,int itype,double aepsge,int *jstat); #ifndef S6NORM extern #endif double s6norm(double [],int,double [],int *); #ifndef S6RATDER extern #endif void s6ratder(double [],int,int,double [],int *); #ifndef S6ROTAX extern #endif void s6rotax(double [],double [],double [],double [],int *); #ifndef S6ROTMAT extern #endif void s6rotmat (double [],double [],double [],double [],int *); #ifndef S6SCHOEN extern #endif double s6schoen(double [],int, int); #ifndef S6SCPR extern #endif double s6scpr(double [],double [],int); #ifndef S6SORTPAR extern #endif void s6sortpar(double [],double [],int,int,double [],double [],int *); #ifndef S6SRATDER extern #endif void s6sratder(double [],int,int,int,double [],int *); #ifndef S6STRIDER extern #endif void s6strider(double [],int,int,double [],int *); #ifndef S6TAKEUNION extern #endif void s6takeunion(double [],int,double [],int,double **,int *,int *); #ifndef S6TWONORM extern #endif void s6twonorm(double [],double [],double [],int *); #ifndef S9ADSIMP extern #endif double s9adsimp(double [],double [],double [],int,double [], double [],double [],double [],double,int *); #ifndef S9ADSTEP extern #endif double s9adstep(double [],double [],double [],double [], double [],double [],double [],double [], double [],double [],double [],double,int *); #ifndef S9BOUNDIMP extern #endif void s9boundimp(double [],double [],SISLSurf *,double [], int,double,int,double,double [],double [],int *); #ifndef S9BOUNDIT extern #endif void s9boundit(double [],double [],double [],double [], SISLSurf *,SISLSurf *,double,int,double, double [],double [],double [],double [],int *); #ifndef S9CLIPIMP extern #endif void s9clipimp(double [],double [],SISLSurf *,double [], int,double [],double [],double,double [],double [],int *); #ifndef S9CLIPIT extern #endif void s9clipit(double [],double [],double [],double [],SISLSurf *,SISLSurf *, double [],double [],double [],double [],double,double [], double [],double [],double [],int *); #ifndef S9CONMARCH extern #endif void s9conmarch(SISLSurf *,double,double [],int [],int, double *[],int *[],int *,int *); #ifndef S9ITERATE extern #endif void s9iterate(double [],double [],double [],double [],double [], SISLSurf *,SISLSurf *,double,double,double [],double [], double [],double [],int *); #ifndef S9ITERIMP extern #endif void s9iterimp(double [],double [],double [],SISLSurf *,double [],int, double,double,double [],double [],int *); #ifndef S9SIMPLE_KNOT extern #endif void s9simple_knot(SISLSurf *,int,double [],int *,int *); #ifndef S9SURMARCH extern #endif void s9surmarch(SISLSurf *,SISLSurf *,double [],int [],int, double *[],int *[],int *,int *); #ifndef SH1260 extern #endif void sh1260(double aconst,SISLCurve *vcurve[],int icurve,int *jstat); #ifndef SH1261 extern #endif void sh1261(SISLCurve *pcurve1,SISLCurve *pcurve2,double ecoef1[], int ik1,double ecoef2[],int ik2,SISLCurve **rcrtanc,int *jstat); #ifndef SH1262 extern #endif void sh1262(SISLCurve *vcurve[],int iedge,int inmbx,double ecoef[],int *jstat); #ifndef SH1263 extern #endif void sh1263(SISLCurve *vcurve[],int iedge,SISLCurve *vboundc[],int *jstat); #ifndef SH1365 extern #endif void sh1365(SISLCurve *,double [],int,int,int,int,SISLCurve **, double **,double **,int *); #ifndef SH1369 extern #endif void sh1369(SISLSurf *,double [],double [],double,double,int,double, double,int,int *,SISLTrack ***,int *,double **,int **,int *, SISLIntcurve ***,int *,SISLIntsurf ***,int *); #ifndef SH1371 extern #endif void sh1371(SISLCurve *,double [],double,int,double,double,int,int *, SISLTrack ***,int *,double **,int **,int *,SISLIntcurve ***,int *); #ifndef SH1372 extern #endif void sh1372(SISLCurve *,double [],double [],double,int,double,double,int, int *,SISLTrack ***,int *,double **,int **,int *, SISLIntcurve ***,int *); #ifndef SH1373 extern #endif void sh1373(SISLCurve *,double [],double [],double [],int,double,double, int,int *,SISLTrack ***,int *,double **,int **,int *, SISLIntcurve ***,int *); #ifndef SH1374 extern #endif void sh1374(SISLCurve *,double [],int,double,double,int,int *,SISLTrack ***, int *,double **,int **,int *,SISLIntcurve ***,int *); #ifndef SH1375 extern #endif void sh1375(SISLCurve *,double [],double [],double,double,int,double, double,int,int *,SISLTrack ***,int *,double **,int **, int *,SISLIntcurve ***,int *); #ifndef SH1460 extern #endif void sh1460(void (*)(double [],double [],int,int,int *), SISLCurve *[],int,SISLSurf ***,int *); #ifndef SH1461 extern #endif void sh1461(void (*)(double [],double [],int,int,int *), void (*)(void (*)(double [],double [],int,int,int *), SISLCurve *[],int,double [],double [],double [],int *), SISLCurve *[],int,SISLSurf *[],int *); #ifndef SH1462 extern #endif void sh1462(void (*)(double [],double [],int,int,int *), SISLCurve *[],int,double [],double [],double [],int *); #ifndef SH1463 extern #endif void sh1463(void (*)(double [],double [],int,int,int *), SISLCurve *[],int,double [],double [],double [],int *); #ifndef SH1464 extern #endif void sh1464(void (*)(double [],double [],int,int,int *), SISLCurve *[],int,double [],double [],double [],int *); #ifndef SH1465 extern #endif void sh1465(void (*)(double [],double [],int,int,int *), SISLCurve *[],int,double [],double [],double [],int *); #ifndef SH1466 extern #endif void sh1466(SISLCurve *[],double [],int,double [],double [],int *); #ifndef SH1467 extern #endif void sh1467(SISLCurve *[],double [],int,double [],double [],int *); #ifndef SH1502 extern #endif void sh1502(SISLCurve *,double [],double [],double [],double,double, int,double,double,int,int *,SISLTrack ***,int *,double **, int **,int *,SISLIntcurve ***,int *); #ifndef SH1503 extern #endif void sh1503(SISLSurf *,double [],double [],double [],double,double,int, double,double,int,int *,SISLTrack ***,int *,double **,int **, int *,SISLIntcurve ***,int *,SISLIntsurf ***,int *); #ifndef SH1510 extern #endif void sh1510(SISLSurf *,double [],int,double,double,int,int *, SISLTrack ***,int *,double **,int **,int *, SISLIntcurve ***,int *,SISLIntsurf ***,int *); #ifndef SH1511 extern #endif void sh1511(SISLSurf *,double [],double [],int,double,double,int, int *,SISLTrack ***,int *,double **,int **,int *, SISLIntcurve ***,int *,SISLIntsurf ***,int *); #ifndef SH1761 extern #endif void sh1761(SISLObject *,SISLObject *,double,SISLIntdat **,int *); #ifndef SH1762 extern #endif void sh1762(SISLObject *,SISLObject *,double,SISLIntdat **,SISLEdge *[],int *); #ifndef SH1779 extern #endif void sh1779(SISLObject *,SISLObject *,double,SISLIntdat **,SISLIntpt *, int *,int *); #ifndef SH1779_AT extern #endif void sh1779_at(SISLObject *,SISLObject *,SISLIntpt *,int *); #ifndef SH1780 extern #endif void sh1780(SISLObject *,SISLObject *,double,SISLIntdat **, SISLIntpt *,int *,int *); #ifndef SH1780_AT extern #endif void sh1780_at(SISLObject *,SISLObject *,SISLIntpt *,int *); #ifndef SH1781 extern #endif void sh1781(SISLObject *,SISLObject *,double,SISLIntdat **, SISLIntpt *,int *,int *); #ifndef SH1781_AT extern #endif void sh1781_at(SISLObject *,SISLObject *,SISLIntpt *,int *); #ifndef SH1782 extern #endif void sh1782(SISLObject *,SISLObject *,double,SISLIntdat *,int,double, SISLIntdat **,int *,int *); #ifndef SH1783 extern #endif void sh1783(SISLCurve *,SISLCurve *,double,double [],int,int,double [], double [],int *); #ifndef SH1784 extern #endif void sh1784(SISLCurve *,SISLSurf *,double,double [],int,int,double [], double [],int *); #ifndef SH1786 extern #endif void sh1786(SISLObject *,SISLObject *,double,SISLIntdat **,SISLIntpt *, int *,int *); #ifndef SH1787 extern #endif void sh1787(SISLObject *,SISLObject *,double,SISLIntdat **,SISLIntpt *, int *,int *); #ifndef SH1790 extern #endif void sh1790(SISLObject *,SISLObject *,int,double,int *); #ifndef SH1794 extern #endif void sh1794(SISLObject *po1, SISLObject *po2, SISLIntpt **up, int nmb_pt, double aepsge, int *jstat); #ifndef SH1830 extern #endif void sh1830(SISLObject *,SISLObject *,double,int *); #ifndef SH1831 extern #endif void sh1831(SISLCurve *pc1, SISLCurve *pc2, int isign, double epoint[], double enorm[], double aepsge, int *jstat); #ifndef SH1834 extern #endif void sh1834(SISLObject *,SISLObject *,double,int,double [],double [],int *); #ifndef SH1839 extern #endif void sh1839(SISLObject *,SISLObject *,double,int *); #ifndef SH1850 extern #endif void sh1850(SISLCurve *,double [],double [],int,double,double,int,int *, SISLTrack ***,int *,double **,int **,int *,SISLIntcurve ***,int *); #ifndef SH1851 extern #endif void sh1851(SISLSurf *,double [],double [],int,double,double,int,int *, SISLTrack ***,int *,double **,int **,int *,SISLIntcurve ***, int *,SISLIntsurf ***,int *); #ifndef SH1852 extern #endif void sh1852(SISLSurf *,double [],double,int,double,double,int,int *, SISLTrack ***,int *,double **,int **,int *,SISLIntcurve ***, int *,SISLIntsurf ***,int *); #ifndef SH1853 extern #endif void sh1853(SISLSurf *,double [],double [],double,int,double,double,int, int *,SISLTrack ***,int *,double **,int **,int *, SISLIntcurve ***,int *,SISLIntsurf ***,int *); #ifndef SH1854 extern #endif void sh1854(SISLSurf *,double[],double[],double[],int,double,double,int, int *, SISLTrack ***,int *,double **,int **,int *, SISLIntcurve ***,int *,SISLIntsurf ***,int *); #ifndef SH1855 extern #endif void sh1855(SISLSurf *,double [],double,double [],int,double,double, int,int *,SISLTrack ***,int *,double **,int **,int *, SISLIntcurve ***,int *); #ifndef SH1856 extern #endif void sh1856(SISLSurf *,double [],double [],int,double,double,int,int *, SISLTrack ***,int *,double **,int **,int *,SISLIntcurve ***,int *); #ifndef SH1857 extern #endif void sh1857(SISLCurve *,SISLCurve *,double,double,int,int *,SISLTrack ***, int *,double **,double **,int **,int *,SISLIntcurve ***,int *); #ifndef SH1858 extern #endif void sh1858(SISLSurf *,SISLCurve *,double,double,int,int *,SISLTrack ***, int *,double **,double **,int **,int *,SISLIntcurve ***,int *); #ifndef SH1859 extern #endif void sh1859(SISLSurf *,SISLSurf *,double,double,int,int *,SISLTrack ***, int *,double **,double **,int **,int *,SISLIntcurve ***, int *,SISLIntsurf ***,int *); #ifndef SH1860 extern #endif void sh1860(SISLSurf *,double[],int,double,double,int,int *,SISLTrack ***, int *,double **,int **,int *,SISLIntcurve ***,int *, SISLIntsurf ***,int *); #ifndef SH1870 extern #endif void sh1870(SISLSurf *,double *,int,double,double,int,int *,SISLTrack ***, int *,double **,int **,int *,SISLIntcurve ***,int *); #ifndef SH1871 extern #endif void sh1871(SISLCurve *,double *,int,double,double,int,int *,SISLTrack ***, int *,double **,int **,int *,SISLIntcurve ***,int *); #ifndef SH1922 extern #endif void sh1922(double [],int,int,double [],int,double [], int [],int [],int *); #ifndef SH1923 extern #endif void sh1923(double *,int,int,int *,int *); #ifndef SH1924 extern #endif void sh1924(double *,double *,int,int,int,int *,int *); #ifndef SH1925 extern #endif void sh1925(SISLCurve *,SISLCurve *,int,double [],int [], int [],double [],double [],int,int,int *); #ifndef SH1926 extern #endif void sh1926(double [],int,int,int,double [],double [],int,double [], int [],int [],double [],int [],double [],int *); #ifndef SH1927 extern #endif void sh1927(double [],int,int,int,SISLCurve *,int,int,double [],int *); #ifndef SH1928 extern #endif void sh1928(double [],int,int,int,double [],double [],int,int,int, double [],int,int [],int [],double [],double [],int [],int *); #ifndef SH1929 extern #endif void sh1929(double [],int,int,int,double [],int,int,double [], int *,int *,int *); #ifndef SH1930 extern #endif void sh1930(double [],int [],int [],double [],double [], int,int,int,int,int,int,int *); #ifndef SH1992 extern #endif void sh1992(SISLObject *,int,double,int *); #ifndef SH1992CU extern #endif void sh1992cu(SISLCurve *,int,double,int *); #ifndef SH1992SU extern #endif void sh1992su(SISLSurf *,int,double,int *); #ifndef SH1993 extern #endif void sh1993(SISLCurve *,double,int *); #ifndef SH1994 extern #endif void sh1994(SISLSurf *,double,int *); #ifndef SH6CLOSEVERT extern #endif void sh6closevert(SISLCurve *,SISLSurf *,double *,double []); #ifndef SH6CVVERT extern #endif void sh6cvvert(SISLCurve *pc1, SISLCurve *pc2, double *cpar1, double *cpar2); #ifndef SH6COMEDG extern #endif void sh6comedg(SISLObject *,SISLObject *,SISLIntpt *,SISLIntpt *,int *); #ifndef SH6CONNECT extern #endif void sh6connect(SISLIntpt *,SISLIntpt *,int *); #ifndef SH6COUNT extern #endif int sh6count(SISLIntpt *,int *); #ifndef SH6DEGEN extern #endif void sh6degen(SISLObject *,SISLObject *,SISLIntdat **,double,int *); #ifndef SH6DISCONNECT extern #endif void sh6disconnect(SISLIntpt *,SISLIntpt *,int *); #ifndef SH6EDGPOINT extern #endif void sh6edgpoint(SISLEdge *[],SISLIntpt ***,int *,int *); #ifndef SH6EDGRED extern #endif void sh6edgred(SISLObject *,SISLObject *,SISLIntdat *,int *); #ifndef SH6EVALINT extern #endif void sh6evalint(SISLObject *,SISLObject *,double [],int,SISLIntpt *, double,double *[],double *[],double *[],int *); #ifndef SH6FINDSPLIT extern #endif void sh6findsplit(SISLSurf *,SISLSurf *,double,int *); #ifndef SH6FLOOP extern #endif void sh6floop(SISLIntpt *[],int,int *,int *); #ifndef SH6GETGEOM extern #endif void sh6getgeom(SISLObject *,int,SISLIntpt *,double **,double **,double,int *); #ifndef SH6GETLIST extern #endif void sh6getlist(SISLIntpt *,SISLIntpt *,int *,int *,int *); #ifndef SH6GETMAIN extern #endif SISLIntpt *sh6getmain(SISLIntpt *); #ifndef SH6GETNEXT extern #endif SISLIntpt *sh6getnext(SISLIntpt *,int); #ifndef SH6GETNHBRS extern #endif void sh6getnhbrs(SISLIntpt *,SISLIntpt **,SISLIntpt **,int *); #ifndef SH6GETOTHER extern #endif void sh6getother(SISLIntpt *,SISLIntpt *,SISLIntpt **,int *); #ifndef SH6GETPREV extern #endif int sh6getprev(SISLIntpt *,SISLIntpt *); #ifndef SH6GETSEGDIV extern #endif int sh6getsegdiv(SISLSurf *ps, int idiv, double epar[], int *seg_flag); #ifndef SH6GETTOP extern #endif void sh6gettop(SISLIntpt *,int,int *,int *,int *,int *,int *); #ifndef SH6GETTOPHLP extern #endif void sh6gettophlp(SISLIntpt *,int [4],int,int *); #ifndef SH6IDALLEDG extern #endif void sh6idalledg(SISLObject *,SISLObject *,SISLIntdat *,SISLEdge *[],int *); #ifndef SH6IDCON extern #endif void sh6idcon (SISLIntdat **,SISLIntpt **,SISLIntpt **,int *); #ifndef SH6IDFCROSS extern #endif void sh6idfcross(SISLIntdat *,SISLIntpt *[],int *,int,int,int *); #ifndef SH6IDGET extern #endif void sh6idget(SISLObject *,SISLObject *,int,double,SISLIntdat *, SISLIntdat **,double,int *); #ifndef SH6IDKPT extern #endif void sh6idkpt(SISLIntdat **,SISLIntpt **,int,int *); #ifndef SH6IDLIS extern #endif void sh6idlis(SISLObject *,SISLObject *,SISLIntdat **,double,int *); #ifndef SH6IDNPT extern #endif void sh6idnpt(SISLIntdat **,SISLIntpt **,int,int *); #ifndef SH6IDNEWUNITE extern #endif void sh6idnewunite(SISLObject *,SISLObject *,SISLIntdat **, SISLIntpt **,SISLIntpt **,double,double,int *); #ifndef SH6IDPUT extern #endif void sh6idput(SISLObject *,SISLObject *,SISLIntdat **,SISLIntdat *, int,double,SISLIntpt ***,int *,int *); #ifndef SH6IDRMCROSS extern #endif void sh6idrmcross(SISLObject *,SISLObject *,SISLIntdat **,SISLIntpt *[], int,SISLIntpt *[],int,int *); #ifndef SH6IDSPLIT extern #endif void sh6idsplit(SISLIntdat **,SISLIntpt *,int *); #ifndef SH6IDUNITE extern #endif void sh6idunite(SISLIntdat **,SISLIntpt **,SISLIntpt **,double,int *); #ifndef SH6INSERT extern #endif void sh6insert(SISLIntdat **,SISLIntpt *,SISLIntpt *,SISLIntpt **,int *); #ifndef SH6INSERTPT extern #endif void sh6insertpt(SISLIntpt *,SISLIntpt *,SISLIntpt *,int *); #ifndef SH6ISCONNECT extern #endif int sh6isconnect(SISLIntpt *,SISLIntpt *,SISLIntpt *); #ifndef SH6ISHELP extern #endif int sh6ishelp (SISLIntpt *); #ifndef SH6ISINSIDE extern #endif void sh6isinside(SISLObject *,SISLObject *,SISLIntpt *,int *); #ifndef SH6ISMAIN extern #endif int sh6ismain(SISLIntpt *); #ifndef SH6NMBHELP extern #endif int sh6nmbhelp(SISLIntpt *,int *); #ifndef SH6NMBMAIN extern #endif int sh6nmbmain (SISLIntpt *,int *); #ifndef SH6PTOBJ extern #endif void sh6ptobj(double *,SISLObject *,double,double [],double [],int *); #ifndef SH6PUTSING extern #endif void sh6putsing( SISLIntpt *,SISLIntpt *); #ifndef SH6PUTTOUCH extern #endif void sh6puttouch( SISLIntpt *,SISLIntpt *,int); #ifndef SH6RED extern #endif void sh6red(SISLObject *,SISLObject *,SISLIntdat *,int *); #ifndef SH6REMCON extern #endif void sh6remcon (SISLIntdat **,SISLIntpt *,SISLIntpt *,int *); #ifndef SH6REMOVEPT extern #endif void sh6removept(SISLIntpt *,SISLIntpt *,SISLIntpt *,int *); #ifndef SH6SEPCRV extern #endif void sh6sepcrv(SISLCurve *,SISLCurve *,double,double [],double *,int *); #ifndef SH6SETCNSDIR extern #endif void sh6setcnsdir(SISLIntpt *,SISLIntpt *,int,int *); #ifndef SH6SETDIR extern #endif void sh6setdir(SISLIntpt *,SISLIntpt *,int *); #ifndef SH6SETSEG extern #endif void sh6setseg(SISLSurf *ps, int idir, double *segmentation, int nseg, int type, int *jstat); #ifndef SH6SETTOP extern #endif void sh6settop(SISLIntpt *,int,int,int,int,int,int *); #ifndef SH6SPLITGEOM extern #endif void sh6splitgeom(SISLSurf *,SISLSurf *,double,double [],double [], double *,double *,int *); #ifndef SH6TOHELP extern #endif void sh6tohelp(SISLIntpt *,int *); #ifndef SH6TOMAIN extern #endif void sh6tomain(SISLIntpt *,int *); #ifndef SH6TRIMLIST extern #endif void sh6trimlist(SISLIntpt *,SISLIntpt ***,int *,int *); #ifndef CRV_ARC_TANG extern #endif void crv_arc_tang(SISLCurve *,double[],double,double,double[],double[],int *); #ifndef CRV_CRV_TANG extern #endif void crv_crv_tang(SISLCurve *,SISLCurve *,double,double[],double[],int *); #ifndef CRV_LIN_TANG extern #endif void crv_lin_tang(SISLCurve *,double[],double[],double,double,double *,int *); #ifndef EV_CV_OFF extern #endif void ev_cv_off(SISLCurve *,int,double,int *,double,double[],int *); #ifndef EVAL_2_CRV extern #endif void eval_2_crv(SISLCurve *,SISLCurve *,int,double[],int *,int *, double[],int *); #ifndef EVAL_CRV_ARC extern #endif void eval_crv_arc(SISLCurve *,double[],double,int,double[],int *, double[],int *); #ifndef HP_S1880 extern #endif void hp_s1880(SISLObject *,SISLObject *,int,int,int,SISLIntdat *,int *, double **,double **,int **,int *,SISLIntcurve ***, int *,SISLIntsurf ***,int *); #ifndef INT_JOIN_PER extern #endif void int_join_per(SISLIntdat **,SISLObject *,SISLObject *,double [], int,double,int *); #ifndef MAKE_CV_KREG extern #endif void make_cv_kreg(SISLCurve *,SISLCurve **,int *); #ifndef MAKE_SF_KREG extern #endif void make_sf_kreg(SISLSurf *,SISLSurf **,int *); #ifndef MAKE_TRACKS extern #endif void make_tracks(SISLObject *,SISLObject *,int,double [],int,SISLIntlist **, int *,SISLTrack ***,double,int *); #ifndef NEWKNOTS extern #endif void newknots(double [],int,int,double [],int,double,double **,int *,int *); #ifndef PICK_CRV_SF extern #endif void pick_crv_sf(SISLObject *,SISLObject *,int,SISLIntpt *,SISLIntpt *, SISLCurve **,int *); #ifndef PO_CRV_TANG extern #endif void po_crv_tang(SISLCurve *,double[],double,double,double *,int *); #ifndef REFINE_ALL extern #endif void refine_all(SISLIntdat **,SISLObject *,SISLObject *,double [], int,double,int *); #ifndef SH_1D_DIV extern #endif void sh_1d_div(SISLObject *,SISLObject *,double,SISLIntdat **, SISLEdge *[],int *); #ifndef SH_DIV_CRV extern #endif void sh_div_crv(SISLCurve *,int,double,SISLCurve **,int *); #ifndef SH_DIV_SURF extern #endif void sh_div_surf(SISLSurf *,int,int,double,SISLSurf **,int *); #ifndef SH_SET_AT extern #endif void sh_set_at(SISLObject *,SISLObject *,SISLIntdat *,int *); #ifndef SHAPE extern #endif void shape(double [],double [],int,int,int *); #ifndef SHCHECKPUT extern #endif void shcheckput(SISLObject *,SISLIntdat **,SISLIntdat *,int,double,int *); #ifndef SHCHECKTYPE extern #endif int shchecktype(SISLObject *,double *); #ifndef SHCSFSING extern #endif void shcsfsing(SISLCurve *,SISLSurf *,double [],double [],double [],int *); #ifndef SHEVALC extern #endif void shevalc(SISLCurve *,int,double,double,int *,double [],int *); #ifndef SHMKHLPPTS extern #endif void shmkhlppts(SISLObject *,SISLObject *,double,SISLIntdat **, SISLEdge *[],int *,int *); #ifndef SHSING extern #endif void shsing(SISLSurf *,SISLSurf *,double [],double [],double [],int *); #ifndef SPLI_SILH extern #endif void spli_silh (SISLIntdat ** pintdat,SISLObject * po1,int *jstat); #ifndef TEST_CYCLIC_KNOTS extern #endif void test_cyclic_knots(double [],int,int,int *); #else /* NOT SISLNEEDPROTOTYPES */ #ifndef CONSTRUCT extern #endif SISLIntpt *copyIntpt(); #ifndef CONSTRUCT extern #endif SISLEdge *newEdge(); #ifndef CONSTRUCT extern #endif SISLIntdat *newIntdat(); #ifndef CONSTRUCT extern #endif SISLIntlist *newIntlist(); #ifndef CONSTRUCT extern #endif SISLIntpt *newIntpt(); #ifndef CONSTRUCT extern #endif SISLObject *newObject(); #ifndef CONSTRUCT extern #endif SISLPoint *newPoint(); #ifndef CONSTRUCT extern #endif SISLPtedge *newPtedge(); #ifndef CONSTRUCT extern #endif SISLIntsurf *newIntsurf(); #ifndef CONSTRUCT extern #endif SISLTrack *newTrack(); #ifndef CONSTRUCT extern #endif SISLTrimpar *newTrimpar(); #ifndef CONSTRUCT extern #endif SISLIntpt *hp_newIntpt(); #ifndef CONSTRUCT extern #endif SISLIntpt *hp_copyIntpt(); #ifndef CONSTRUCT extern #endif SISLSegmentation *newSegmentation(); #ifndef DESTRUCT extern #endif void freeEdge(); #ifndef DESTRUCT extern #endif void freeIntdat(); #ifndef DESTRUCT extern #endif void freeIntlist(); #ifndef DESTRUCT extern #endif void freeIntpt(); #ifndef DESTRUCT extern #endif void freeObject(); #ifndef DESTRUCT extern #endif void freePoint(); #ifndef DESTRUCT extern #endif void freePtedge(); #ifndef DESTRUCT extern #endif void freeIntsurf(); #ifndef DESTRUCT extern #endif void freeTrimpar(); #ifndef DESTRUCT extern #endif void freeTrack(); #ifndef DESTRUCT extern #endif void freeSegmentation(); #ifndef MAKE3D extern #endif void make3D(); #ifndef S1119 extern #endif void s1119(); #ifndef S1161 extern #endif void s1161(); #ifndef S1162 extern #endif void s1162(); #ifndef S1172 extern #endif void s1172(); #ifndef S1173 extern #endif void s1173(); #ifndef S1174 extern #endif void s1174(); #ifndef S1190 extern #endif void s1190(); #ifndef S1192 extern #endif void s1192(); #ifndef S1219 extern #endif void s1219(); #ifndef S1220 extern #endif void s1220(); #ifndef S1222 extern #endif void s1222(); #ifndef S1223 extern #endif void s1223(); #ifndef S1224 extern #endif void s1224(); #ifndef S1231 extern #endif void s1231(); #ifndef S1232 extern #endif void s1232(); #ifndef S1235 extern #endif void s1235(); #ifndef S1236 extern #endif void s1236(); #ifndef S1239 extern #endif void s1239(); #ifndef S1244 extern #endif void s1244(); #ifndef S1245 extern #endif void s1245(); #ifndef S1251 extern #endif void s1251(); #ifndef S1252 extern #endif void s1252(); #ifndef S1291 extern #endif void s1291(); #ifndef S1301 extern #endif void s1301(); #ifndef S1304 extern #endif void s1304(); #ifndef S1305 extern #endif void s1305(); #ifndef S1306 extern #endif void s1306(); #ifndef S1307 extern #endif void s1307(); #ifndef S1308 extern #endif void s1308(); #ifndef S1309 extern #endif double s1309(); #ifndef S1311 extern #endif double s1311(); #ifndef S1312 extern #endif void s1312(); #ifndef S1313 extern #endif void s1313(); #ifndef S1320 extern #endif void s1320(); #ifndef S1321 extern #endif void s1321(); #ifndef S1322 extern #endif void s1322(); #ifndef S1323 extern #endif void s1323(); #ifndef S1324 extern #endif void s1324(); #ifndef S1325 extern #endif double s1325(); #ifndef S1329 extern #endif void s1329(); #ifndef S1330 extern #endif void s1330(); #ifndef S1331 extern #endif void s1331(); #ifndef S1333 extern #endif void s1333(); #ifndef S1333_COUNT extern #endif void s1333_count(); #ifndef S1333_CYCLIC extern #endif void s1333_cyclic(); #ifndef S1334 extern #endif void s1334(); #ifndef S1340 extern #endif void s1340(); #ifndef S1341 extern #endif void s1341(); #ifndef S1342 extern #endif void s1342(); #ifndef S1343 extern #endif void s1343(); #ifndef S1345 extern #endif void s1345(); #ifndef S1346 extern #endif void s1346(); #ifndef S1347 extern #endif void s1347(); #ifndef S1348 extern #endif void s1348(); #ifndef S1349 extern #endif void s1349(); #ifndef S1350 extern #endif void s1350(); #ifndef S1351 extern #endif void s1351(); #ifndef S1352 extern #endif void s1352(); #ifndef S1353 extern #endif void s1353(); #ifndef S1354 extern #endif void s1354(); #ifndef S1355 extern #endif void s1355(); #ifndef S1358 extern #endif void s1358(); #ifndef S1359 extern #endif void s1359(); #ifndef S1361 extern #endif void s1361(); #ifndef S1362 extern #endif void s1362(); #ifndef S1366 extern #endif void s1366(); #ifndef S1367 extern #endif void s1367(); #ifndef S1370 extern #endif void s1370(); #ifndef S1376 extern #endif void s1376(); #ifndef S1377 extern #endif void s1377(); #ifndef S1378 extern #endif void s1378(); #ifndef S1381 extern #endif void s1381(); #ifndef S1382 extern #endif void s1382(); #ifndef S1384 extern #endif void s1384(); #ifndef S1385 extern #endif void s1385(); #ifndef S1393 extern #endif void s1393(); #ifndef S1399 extern #endif void s1399(); #ifndef S1435 extern #endif void s1435(); #ifndef S1436 extern #endif void s1436(); #ifndef S1437 extern #endif void s1437(); #ifndef S1438 extern #endif void s1438(); #ifndef S1452 extern #endif void s1452(); #ifndef S1500 extern #endif void s1500(); #ifndef S1504 extern #endif void s1504(); #ifndef S1505 extern #endif void s1505(); #ifndef S1507 extern #endif void s1507(); #ifndef S1512 extern #endif void s1512(); #ifndef S1513 extern #endif void s1513(); #ifndef S1516 extern #endif void s1516(); #ifndef S1517 extern #endif void s1517(); #ifndef S1520 extern #endif void s1520(); #ifndef S1521 extern #endif SISLCurve *s1521(); #ifndef S1528 extern #endif void s1528(); #ifndef S1531 extern #endif void s1531(); #ifndef S1540 extern #endif void s1540(); #ifndef S1541 extern #endif void s1541(); #ifndef S1604 extern #endif void s1604(); #ifndef S1605 extern #endif void s1605(); #ifndef S1612 extern #endif void s1612(); #ifndef S1613BEZ extern #endif void s1613bez(); #ifndef S1614 extern #endif void s1614 (); #ifndef S1615 extern #endif void s1615 (); #ifndef S1616 extern #endif void s1616 (); #ifndef S1617 extern #endif void s1617 (); #ifndef S1618 extern #endif void s1618 (); #ifndef S1619 extern #endif void s1619 (); #ifndef S1700 extern #endif void s1700(); #ifndef S1701 extern #endif void s1701(); #ifndef S1705 extern #endif void s1705(); #ifndef S1707 extern #endif void s1707(); #ifndef S1708 extern #endif void s1708(); #ifndef S1741 extern #endif void s1741(); #ifndef S1753 extern #endif void s1753(); #ifndef S1754 extern #endif void s1754(); #ifndef S1755 extern #endif void s1755(); #ifndef S1770 extern #endif void s1770(); #ifndef S1770_2D extern #endif void s1770_2D(); #ifndef S1771 extern #endif void s1771(); #ifndef S1772 extern #endif void s1772(); #ifndef S1773 extern #endif void s1773(); #ifndef S1780 extern #endif void s1780(); #ifndef S1785 extern #endif void s1785(); #ifndef S1786 extern #endif void s1786(); #ifndef S1787 extern #endif void s1787(); #ifndef S1788 extern #endif void s1788(); #ifndef S1789 extern #endif void s1789(); #ifndef S1790 extern #endif void s1790(); #ifndef S1791 extern #endif int s1791(); #ifndef S1792 extern #endif double s1792(); #ifndef S1795 extern #endif void s1795(); #ifndef S1796 extern #endif void s1796(); #ifndef S1797 extern #endif void s1797(); #ifndef S1830 extern #endif void s1830(); #ifndef S1834 extern #endif void s1834(); #ifndef S1839 extern #endif void s1839(); #ifndef S1840 extern #endif void s1840(); #ifndef S1880 extern #endif void s1880(); #ifndef S1890 extern #endif void s1890(); #ifndef S1891 extern #endif void s1891(); #ifndef S1893 extern #endif void s1893(); #ifndef S1894 extern #endif void s1894(); #ifndef S1896 extern #endif void s1896(); #ifndef S1897 extern #endif void s1897(); #ifndef S1900 extern #endif void s1900(); #ifndef S1901 extern #endif void s1901(); #ifndef S1902 extern #endif void s1902(); #ifndef S1903 extern #endif void s1903(); #ifndef S1904 extern #endif void s1904(); #ifndef S1905 extern #endif void s1905(); #ifndef S1906 extern #endif void s1906(); #ifndef S1907 extern #endif void s1907(); #ifndef S1908 extern #endif void s1908(); #ifndef S1909 extern #endif void s1909(); #ifndef S1910 extern #endif void s1910(); #ifndef S1911 extern #endif void s1911(); #ifndef S1912 extern #endif void s1912(); #ifndef S1916 extern #endif void s1916(); #ifndef S1917 extern #endif void s1917(); #ifndef S1918 extern #endif void s1918(); #ifndef S1919 extern #endif void s1919(); #ifndef S1924 extern #endif void s1924(); #ifndef S1925 extern #endif void s1925(); #ifndef S1926 extern #endif void s1926(); #ifndef S1927 extern #endif void s1927(); #ifndef S1931 extern #endif void s1931(); #ifndef S1931UNIT extern #endif void s1931unit(); #ifndef S1932 extern #endif void s1932(); #ifndef S1933 extern #endif void s1933(); #ifndef S1934 extern #endif void s1934(); #ifndef S1935 extern #endif void s1935(); #ifndef S1936 extern #endif void s1936(); #ifndef S1937 extern #endif void s1937(); #ifndef S1938 extern #endif void s1938(); #ifndef S1940 extern #endif void s1940(); #ifndef S1941 extern #endif void s1941(); #ifndef S1942 extern #endif void s1942(); #ifndef S1943 extern #endif void s1943(); #ifndef S1944 extern #endif void s1944(); #ifndef S1945 extern #endif void s1945(); #ifndef S1946 extern #endif void s1946(); #ifndef S1947 extern #endif void s1947(); #ifndef S1948 extern #endif void s1948(); #ifndef S1949 extern #endif void s1949(); #ifndef S1950 extern #endif void s1950(); #ifndef S1951 extern #endif void s1951(); #ifndef S1956 extern #endif void s1956(); #ifndef S1959 extern #endif void s1959(); #ifndef S1960 extern #endif void s1960(); #ifndef S1990 extern #endif void s1990(); #ifndef S1991 extern #endif void s1991(); #ifndef S1992 extern #endif void s1992(); #ifndef S1992 extern #endif void s1992cu(); #ifndef S1992 extern #endif void s1992su(); #ifndef S1993 extern #endif void s1993(); #ifndef S1994 extern #endif void s1994(); #ifndef S2501 extern #endif void s2501(); #ifndef S2503 extern #endif void s2503(); #ifndef S2505 extern #endif void s2505(); #ifndef S2507 extern #endif void s2507(); #ifndef S2509 extern #endif void s2509(); #ifndef S2511 extern #endif void s2511(); #ifndef S2512 extern #endif void s2512(); #ifndef S2513 extern #endif void s2513(); #ifndef S2514 extern #endif void s2514(); #ifndef S2515 extern #endif void s2515(); #ifndef S2516 extern #endif void s2516(); #ifndef S2533 extern #endif void s2533(); #ifndef S2534 extern #endif void s2534(); #ifndef S2535 extern #endif void s2535(); #ifndef S2541 extern #endif void s2541(); #ifndef S2543 extern #endif void s2543(); #ifndef S2551 extern #endif void s2551(); #ifndef S2554 extern #endif void s2554(); #ifndef S2555 extern #endif void s2555(); #ifndef S2557 extern #endif void s2557(); #ifndef S2558 extern #endif void s2558(); #ifndef S2560 extern #endif void s2560(); #ifndef S2561 extern #endif void s2561(); #ifndef S6ADDCURVE extern #endif void s6addcurve(); #ifndef S6AFFDIST extern #endif double s6affdist(); #ifndef S6ANG extern #endif double s6ang(); #ifndef S6ANGLE extern #endif double s6angle(); #ifndef S6CHPAR extern #endif void s6chpar(); #ifndef S6CRSS extern #endif void s6crss(); #ifndef S6CRVCHECK extern #endif void s6crvcheck(); #ifndef S6CURVATURE extern #endif void s6curvature(); #ifndef s6CURVRAD extern #endif void s6curvrad(); #ifndef S6DECASTELJAU extern #endif void s6deCasteljau(); #ifndef S6DECOMP extern #endif void s6decomp(); #ifndef S6DEGNORM extern #endif void s6degnorm(); #ifndef S6DERTOPT extern #endif void s6dertopt(); #ifndef S6DIFF extern #endif void s6diff(); #ifndef S6DIST extern #endif double s6dist(); #ifndef S6DLINE extern #endif double s6dline(); #ifndef S6DPLANE extern #endif double s6dplane(); #ifndef S6EQUAL extern #endif int s6equal(); #ifndef S6ERR extern #endif void s6err(); #ifndef S6EXISTBOX extern #endif int s6existbox(); #ifndef S6FINDFAC extern #endif void s6findfac(); #ifndef S6FNDINTVL extern #endif void s6fndintvl(); #ifndef S6HERM extern #endif void s6herm(); #ifndef S6HERMITE_BEZIER extern #endif void s6hermite_bezier(); #ifndef S6IDCON extern #endif void s6idcon(); #ifndef S6IDCPT extern #endif void s6idcpt(); #ifndef S6IDEDG extern #endif void s6idedg(); #ifndef S6IDENTIFY extern #endif void s6identify(); #ifndef S6IDGET extern #endif void s6idget(); #ifndef S6IDINT extern #endif void s6idint(); #ifndef S6IDKLIST extern #endif void s6idklist(); #ifndef S6IDKPT extern #endif void s6idkpt(); #ifndef S6IDLIS extern #endif void s6idlis(); #ifndef S6IDNPT extern #endif void s6idnpt(); #ifndef S6IDPUT extern #endif void s6idput(); #ifndef S6INV4 extern #endif void s6inv4 (); #ifndef S6INVERT extern #endif void s6invert(); #ifndef S6KNOTMULT extern #endif int s6knotmult(); #ifndef S6LENGTH extern #endif double s6length(); #ifndef S6LINE extern #endif void s6line(); #ifndef S6LPRJ extern #endif double s6lprj(); #ifndef S6LUFACP extern #endif void s6lufacp(); #ifndef S6LUSOLP extern #endif void s6lusolp(); #ifndef S6METRIC extern #endif void s6metric(); #ifndef S6MOVE extern #endif void s6move(); #ifndef S6MULVEC extern #endif void s6mulvec (); #ifndef S6MVEC extern #endif void s6mvec(); #ifndef S6NEWBOX extern #endif void s6newbox(); #ifndef S6NORM extern #endif double s6norm(); #ifndef S6RATDER extern #endif void s6ratder(); #ifndef S6ROTAX extern #endif void s6rotax(); #ifndef S6SCPR extern #endif double s6scpr(); #ifndef S6ROTMAT extern #endif void s6rotmat (); #ifndef S6SCHOEN extern #endif double s6schoen(); #ifndef S6SORTPAR extern #endif void s6sortpar(); #ifndef S6SRATDER extern #endif void s6sratder(); #ifndef S6STRIDER extern #endif void s6strider(); #ifndef S6TAKEUNION extern #endif void s6takeunion(); #ifndef S6TWONORM extern #endif void s6twonorm(); #ifndef S9ADSIMP extern #endif double s9adsimp(); #ifndef S9ADSTEP extern #endif double s9adstep(); #ifndef S9BOUNDIMP extern #endif void s9boundimp(); #ifndef S9BOUNDIT extern #endif void s9boundit(); #ifndef S9CLIPIMP extern #endif void s9clipimp(); #ifndef S9CLIPIT extern #endif void s9clipit(); #ifndef S9CONMARCH extern #endif void s9conmarch(); #ifndef S9ITERATE extern #endif void s9iterate(); #ifndef S9ITERIMP extern #endif void s9iterimp(); #ifndef S9SIMPLE_KNOT extern #endif void s9simple_knot(); #ifndef S9SURMARCH extern #endif void s9surmarch(); #ifndef SH1260 extern #endif void sh1260(); #ifndef SH1261 extern #endif void sh1261(); #ifndef SH1262 extern #endif void sh1262(); #ifndef SH1263 extern #endif void sh1263(); #ifndef SH1365 extern #endif void sh1365(); #ifndef SH1369 extern #endif void sh1369(); #ifndef SH1371 extern #endif void sh1371(); #ifndef SH1372 extern #endif void sh1372(); #ifndef SH1373 extern #endif void sh1373(); #ifndef SH1374 extern #endif void sh1374(); #ifndef SH1375 extern #endif void sh1375(); #ifndef SH1460 extern #endif void sh1460(); #ifndef SH1461 extern #endif void sh1461(); #ifndef SH1462 extern #endif void sh1462(); #ifndef SH1463 extern #endif void sh1463(); #ifndef SH1464 extern #endif void sh1464(); #ifndef SH1465 extern #endif void sh1465(); #ifndef SH1466 extern #endif void sh1466(); #ifndef SH1467 extern #endif void sh1467(); #ifndef SH1502 extern #endif void sh1502(); #ifndef SH1503 extern #endif void sh1503(); #ifndef SH1510 extern #endif void sh1510(); #ifndef SH1511 extern #endif void sh1511(); #ifndef SH1761 extern #endif void sh1761(); #ifndef SH1762 extern #endif void sh1762(); #ifndef SH1779 extern #endif void sh1779(); #ifndef SH1779_AT extern #endif void sh1779_at(); #ifndef SH1780 extern #endif void sh1780(); #ifndef SH1780_AT extern #endif void sh1780_at(); #ifndef SH1781 extern #endif void sh1781(); #ifndef SH1781_AT extern #endif void sh1781_at(); #ifndef SH1782 extern #endif void sh1782(); #ifndef SH1783 extern #endif void sh1783(); #ifndef SH1784 extern #endif void sh1784(); #ifndef SH1786 extern #endif void sh1786(); #ifndef SH1787 extern #endif void sh1787(); #ifndef SH1790 extern #endif void sh1790(); #ifndef SH1794 extern #endif void sh1794(); #ifndef SH1830 extern #endif void sh1830(); #ifndef SH1831 extern #endif void sh1831(); #ifndef SH1834 extern #endif void sh1834(); #ifndef SH1839 extern #endif void sh1839(); #ifndef SH1850 extern #endif void sh1850(); #ifndef SH1851 extern #endif void sh1851(); #ifndef SH1852 extern #endif void sh1852(); #ifndef SH1853 extern #endif void sh1853(); #ifndef SH1854 extern #endif void sh1854(); #ifndef SH1855 extern #endif void sh1855(); #ifndef SH1856 extern #endif void sh1856(); #ifndef SH1857 extern #endif void sh1857(); #ifndef SH1858 extern #endif void sh1858(); #ifndef SH1859 extern #endif void sh1859(); #ifndef SH1860 extern #endif void sh1860(); #ifndef SH1870 extern #endif void sh1870(); #ifndef SH1871 extern #endif void sh1871(); #ifndef SH1922 extern #endif void sh1922(); #ifndef SH1923 extern #endif void sh1923(); #ifndef SH1924 extern #endif void sh1924(); #ifndef SH1925 extern #endif void sh1925(); #ifndef SH1926 extern #endif void sh1926(); #ifndef SH1927 extern #endif void sh1927(); #ifndef SH1928 extern #endif void sh1928(); #ifndef SH1929 extern #endif void sh1929(); #ifndef SH1930 extern #endif void sh1930(); #ifndef SH1992 extern #endif void sh1992(); #ifndef SH1992CU extern #endif void sh1992cu(); #ifndef SH1992SU extern #endif void sh1992su(); #ifndef SH1993 extern #endif void sh1993(); #ifndef SH1994 extern #endif void sh1994(); #ifndef SH6CLOSEVERT extern #endif void sh6closevert(); #ifndef SH6CVVERT extern #endif void sh6cvvert(); #ifndef SH6COMEDG extern #endif void sh6comedg(); #ifndef SH6CONNECT extern #endif void sh6connect(); #ifndef SH6COUNT extern #endif int sh6count(); #ifndef SH6DEGEN extern #endif void sh6degen(); #ifndef SH6DISCONNECT extern #endif void sh6disconnect(); #ifndef SH6EDGPOINT extern #endif void sh6edgpoint(); #ifndef SH6EDGRED extern #endif void sh6edgred(); #ifndef SH6EVALINT extern #endif void sh6evalint(); #ifndef SH6FINDSPLIT extern #endif void sh6findsplit(); #ifndef SH6FLOOP extern #endif void sh6floop(); #ifndef SH6GETGEOM extern #endif void sh6getgeom(); #ifndef SH6GETLIST extern #endif void sh6getlist(); #ifndef SH6GETMAIN extern #endif SISLIntpt *sh6getmain(); #ifndef SH6GETNEXT extern #endif SISLIntpt *sh6getnext(); #ifndef SH6GETNHBRS extern #endif void sh6getnhbrs(); #ifndef SH6GETOTHER extern #endif void sh6getother(); #ifndef SH6GETPREV extern #endif int sh6getprev(); #ifndef SH6GETSEGDIV extern #endif int sh6getsegdiv(); #ifndef SH6GETTOP extern #endif void sh6gettop(); #ifndef SH6GETTOPHLP extern #endif void sh6gettophlp(); #ifndef SH6IDALLEDG extern #endif void sh6idalledg(); #ifndef SH6IDCON extern #endif void sh6idcon (); #ifndef SH6IDFCROSS extern #endif void sh6idfcross(); #ifndef SH6IDGET extern #endif void sh6idget(); #ifndef SH6IDKPT extern #endif void sh6idkpt(); #ifndef SH6IDLIS extern #endif void sh6idlis(); #ifndef SH6IDNPT extern #endif void sh6idnpt(); #ifndef SH6IDNEWUNITE extern #endif void sh6idnewunite(); #ifndef SH6IDPUT extern #endif void sh6idput(); #ifndef SH6IDRMCROSS extern #endif void sh6idrmcross(); #ifndef SH6IDSPLIT extern #endif void sh6idsplit(); #ifndef SH6IDUNITE extern #endif void sh6idunite(); #ifndef SH6INSERT extern #endif void sh6insert(); #ifndef SH6INSERTPT extern #endif void sh6insertpt(); #ifndef SH6ISCONNECT extern #endif int sh6isconnect(); #ifndef SH6ISHELP extern #endif int sh6ishelp(); #ifndef SH6ISINSIDE extern #endif void sh6isinside(); #ifndef SH6ISMAIN extern #endif int sh6ismain(); #ifndef SH6NMBHELP extern #endif int sh6nmbhelp(); #ifndef SH6NMBMAIN extern #endif int sh6nmbmain (); #ifndef SH6PTOBJ extern #endif void sh6ptobj(); #ifndef SH6PUTSING extern #endif void sh6putsing(); #ifndef SH6PUTTOUCH extern #endif void sh6puttouch(); #ifndef SH6RED extern #endif void sh6red(); #ifndef SH6REMCON extern #endif void sh6remcon(); #ifndef SH6REMOVEPT extern #endif void sh6removept(); #ifndef SH6SEPCRV extern #endif void sh6sepcrv(); #ifndef SH6SETCNSDIR extern #endif void sh6setcnsdir(); #ifndef SH6SETDIR extern #endif void sh6setdir(); #ifndef SH6SETSEG extern #endif void sh6setseg(); #ifndef SH6SETTOP extern #endif void sh6settop(); #ifndef SH6SPLITGEOM extern #endif void sh6splitgeom(); #ifndef SH6TOHELP extern #endif void sh6tohelp(); #ifndef SH6TOMAIN extern #endif void sh6tomain(); #ifndef SH6TRIMLIST extern #endif void sh6trimlist(); #ifndef CRV_ARC_TANG extern #endif void crv_arc_tang(); #ifndef CRV_CRV_TANG extern #endif void crv_crv_tang(); #ifndef CRV_LIN_TANG extern #endif void crv_lin_tang(); #ifndef EV_CV_OFF extern #endif void ev_cv_off(); #ifndef EVAL_2_CRV extern #endif void eval_2_crv(); #ifndef EVAL_CRV_ARC extern #endif void eval_crv_arc(); #ifndef HP_S1880 extern #endif void hp_s1880(); #ifndef INT_JOIN_PER extern #endif void int_join_per(); #ifndef MAKE_CV_KREG extern #endif void make_cv_kreg(); #ifndef MAKE_SF_KREG extern #endif void make_sf_kreg(); #ifndef MAKE_TRACKS extern #endif void make_tracks(); #ifndef NEWKNOTS extern #endif void newknots(); #ifndef PICK_CRV_SF extern #endif void pick_crv_sf(); #ifndef PO_CRV_TANG extern #endif void po_crv_tang(); #ifndef REFINE_ALL extern #endif void refine_all(); #ifndef SH_1D_DIV extern #endif void sh_1d_div(); #ifndef SH_DIV_CRV extern #endif void sh_div_crv(); #ifndef SH_DIV_SURF extern #endif void sh_div_surf(); #ifndef SH_SET_AT extern #endif void sh_set_at(); #ifndef SHAPE extern #endif void shape(); #ifndef SHCHECKPUT extern #endif void shcheckput(); #ifndef SHCHECKTYPE extern #endif int shchecktype(); #ifndef SHCSFSING extern #endif void shcsfsing(); #ifndef SHEVALC extern #endif void shevalc(); #ifndef SHMKHLPPTS extern #endif void shmkhlppts(); #ifndef SHSING extern #endif void shsing(); #ifndef SPLI_SILH extern #endif void spli_silh(); #ifndef TEST_CYCLIC_KNOTS extern #endif void test_cyclic_knots(); #endif /* End forward declarations of SISL C routines */ #if defined(__cplusplus) } #endif #endif /* SISLP_INCLUDED */ /* DO NOT ADD ANYTHING AFTER THIS LINE */