gCAD3D 2.40
ut_geo.h
Go to the documentation of this file.
1 /***************************************************************************
2  ut_geo.h - description
3  -------------------
4  begin : Fri Aug 25 2000
5  copyright : (C) 2000 by CADCAM-Services Franz Reiter
6  email : franz.reiter@cadcam.co.at
7 
8  ***************************************************************************
9 
10 Achtung: Bug in MS-Windows: never use "double rad1"
11 
12 
13 -------------------------------------------
14 TODO:
15 All curves: (Circ,CurvElli) add flag trimmed or closed;
16 New curve "trimmed_curve": 2 points/parameters + Link unlimited_curve
17  points/parameters via dbi-index; 0=invalid; neg=temp, pos=normal.
18 
19 
20 
21 -------------------------------------------
22 Korr:
23 2004-08-06 struct Circ: ango added !! RF.
24 2003-05-10 Memspc neu zu. RF.
25 2002-02-12 Ditto neu zu. RF.
26 2001-04-26 alle #define Typ_xx aus ut_gr zu, RAD_1 genauer.
27 
28 
29 ------------------------------------
30 ../ut/ut_tol_const.h UT_TOL_pt UT_DISP_cv UT_TOL_min0 ..
31 ../ut/ut_geo_const.h UT3D_PT_NUL UT3D_VECTOR_X
32 
33 
34 -------------------------------------------
35 */
40 #include "../ut/ut_types.h" // INT_8 - UINT_64
41 #include "../ut/gr_types.h" // SYM_* ATT_* Typ_Att_* LTYP_*
42 #include "../ut/AP_types.h" // Typ_PT ..
43 #include "../ut/ut_mem.h" // MEM_*
44 #include "../ut/ut_uti.h" // UTI UTP BIT I* D*
45 #include "../ut/ut_umem.h" // Memspc MemObj UME_*
46 // ../gui/gui_types.h
47 // ../ut/func_types.h // ATT_COL_. SYM_. Typ_Att_
48 // ../xa/xa_sele.h
49 
50 
51 /*
52 // NUR bei LINUX (ex math.h):
53 #define RAD_360 M_2_PI // 360 Grad
54 #define RAD_180 M_PI // 180 Grad
55 #define RAD_90 M_PI_2 // 90 Grad
56 #define RAD_45 M_PI_4 // 45 Grad
57 #define RAD_30 ?? // 30 Grad
58 */
59 
60 // angles ..
61 #define RAD_360 6.2831853071795862319
62 #define RAD_270 4.7123889803846896739
63 #define RAD_225 3.92699081698724151736
64 #define RAD_180 3.14159265358979323846
65 #define RAD_135 2.3561944901923448368
66 #define RAD_120 2.0943951023931953735
67 #define RAD_90 1.5707963267948965579
68 #define RAD_60 1.0471975511965976313
69 #define RAD_45 0.7853981633974482789
70 #define RAD_30 0.5235987755982988156
71 #define RAD_10 0.174532925199432954
72 #define RAD_1 0.0174532925199432954
73 #define RAD_01 0.0017453292519943295
74 #define RAD_1_360 0.15915494309189534561
75 #define SR_3 1.7320508075688772
76 #define SR_2 1.4142135623730951
77 #define SR_PI 1.7724538509055159
78 
79 
80 #define CCW 1
81 #define CW -1
82 
83 #define NOT !
84 
85 #define YES 0
86 #define NO 1
87 
88 #define ON 0
89 #define OFF 1
90 
91 #define LIMITED 0
92 #define UNLIMITED 1
93 
94 
95 
96 
97 
98 
99 #define UT_BEZDEG_MAX 50
100 
101 
102 
103 
104 
105 
106 
107 /*============== Belegung der att - Bitfelder ============================= */
109 #define ATT_BIT_ABS 1
110 /*
111 zB. Absolut-Bit setzen (mit OR): obj.att = obj.att | ATT_BIT_ABS;
112  Absolut-Bit filtern (mit AND; ergibt 0 oder ATT_BIT_ABS):
113  i1 = obj.att & ATT_BIT_ABS;
114  Achtung: entspricht NICHT ON/OFF!
115 */
116 
117 
119 #define ATT_BIT_LIM 2
120 
121 
123 // max = CurvElli; 160 = 6 Points + 16 byte | 20 doubles
124 #define OBJ_SIZ_MAX 160
125 
127 // Size of OBJ_UNKNOWN is OBJ_SIZ_MAX bytes.
128 // OBJ_SIZ_MAX (ou1); // gives "char ou1[OBJ_SIZ_MAX];"
129 // For curves with point-tables (polygon, spline) and value-arrays (splines)
130 // these additional memory-spaces cannot be allocated in OBJ_UNKNOWN.
131 // For this curves additional 'Memspc' is necessary.
132 typedef struct {char dat[OBJ_SIZ_MAX];} Obj_Geo_Unknown;
133 
134 
135 
136 //....................... aux. structs: ..................................
138 typedef union {long i4; short i2[2];} uni_i4i2;
139 
141 typedef struct {short i20, i21;} stru_2i2;
142 
144 typedef struct {unsigned b123:24, b4:8;} stru_c3c1;
145 
146 
147 
148 //....................... Math. Objects: ..................................
149 typedef double Mat_3x2[2][3];
150 typedef double Mat_3x3[3][3];
151 typedef double Mat_4x3[3][4];
152 typedef double Mat_4x4[4][4];
153 
155 typedef struct {double e0, e1, e2, e3;} Quat;
156 
157 typedef struct {double a, b;} dcomplex;
158 typedef struct {double a, b, c, d;} polcoeff_d3;
159 typedef struct {double a, b, c, d, e;} polcoeff_d4;
160 typedef struct {double a, b, c, d, e, f;} polcoeff_d5;
161 
163 typedef struct {double u; polcoeff_d3 x, y, z;} polynom_d3;
164 // size = 104
165 
166 
168 typedef struct {int polNr; double *pol;} Polynom1;
169 // Struktur von pol: double pol[polNr]
170 
171 
173 typedef struct {int polNr; double *pol[3];} Polynom3;
174 // pol: double pol[3][polNr]
175 
176 
178 // pol: double pol[dim1][dim2]
179 // Access: pol[ind1*dim2*ind2] = pol[ind1][ind2] !
180 typedef struct {int dim1, dim2; double *pol;} Polynom_;
181 
182 
183 
184 
185 
186 
187 //....................... Geom. Objects: ..................................
188 
190 typedef struct {double x, y;} Point2;
191 // size = 16
192 
193 typedef struct {float x, y, z;} Pointf;
194 
196 typedef struct {double x, y, z;} Point;
197 // size = 24
198 
200 typedef struct {double x, y, z, w;} wPoint;
201 // size = 32
202 
204 typedef struct {double dx, dy;} Vector2;
205 // size = 16
206 
208 typedef struct {float dx, dy, dz;} Vec3f;
209 
211 typedef struct {double dx, dy, dz;} Vector;
212 // size = 24
213 
214 
215 
216 //....................... containerobjects: ................................
217 
227 typedef struct {int ibeg, iNr; char typi, typd, aux, stat;} IndTab;
228 // size = 12
229 
230 
231 
242 typedef struct {short typ, form; void *data;
243  unsigned siz:24, dir:1, aux:7;} ObjGX;
244 // size = 12
245 
246 
253 typedef struct {long dbInd, dlInd; short typ, stat;} ObjDB;
254 
255 
265 typedef struct {long dbi, dli, lnr; char *lPos; int iPar, typ, ll;} ObjSRC;
266 
267 
276 typedef struct {short typ, form, ilen, ipar; int ioff;} ObjTXTSRC;
277 
278 
290 typedef struct {int nr, siz, txsiz; int *typ; double *val; short *ilev;
291  char *txt; char spcTyp, uu1, uu2, uu3;} ObjAto;
292 
293 
298 typedef struct {int typ, att, ID, ID1; Point2 p1, p2, pc;
299  double rad; long nam;} ObjG2;
300 
301 
306 typedef struct {int typ, att; long ID; void *data;
307  Point p1,p2,pc; Vector vz; double rad;} ObjG;
308 
309 
310 /* UNUSED
315 typedef union {Point *pt; Line *ln; Vector *vc;
316  Circ *ci; ObjGX *cv; CurvElli *el;
317  CurvPoly *plg; CurvBSpl *bsp;
318  void *vp;} ObjX;
319 // size = void* = 4
320 
321 
324 typedef union {Point pt; Vector vc; Line ln; Circ ci;} ObjUX;
325 */
326 
327 
328 typedef struct {int typ; char obj[OBJ_SIZ_MAX];} ObjBin;
329 
330 
342 typedef struct {Point *pa; Point *p2a; int iNr;
343  Point p1, p2;
344  unsigned char cTyp, use, dir, temp;} ContTab;
345 
346 
352 typedef struct {long ind; unsigned typ:8, oNr:24;} ObjRange;
353 
354 
355 
356 
357 //....................... Geom. Objects: ..................................
358 
360 typedef struct {Point2 p1, p2; char typ;} Line2;
365 
367 typedef struct {Point p1, p2; char typ;} Line;
372 
374 typedef struct {Point *pa[3];} Triangle;
375 // size = 12; 3 pointers !
376 
377 
387 typedef struct {Point2 p1, p2, pc; double rad, ango;} Circ2;
388 // size = 64
389 
390 
397 typedef struct {double rad, angs, ango;} Circ2C;
398 // size = 24
399 
400 
410 typedef struct {Point p1, p2, pc; Vector vz; double rad, ango;} Circ;
411 // size = 112
412 
413 
424 typedef struct {Point2 p1, p2; double a, b;
425  char srot, clo, trm, uu2;} CurvEll2C;
426 // size = ?
427 
440 typedef struct {Point2 p1, p2, pc; Vector2 va, vb;
441  char srot, clo, trm, uu2;} CurvEll2;
442 // size = ?
443 
456 typedef struct {Point p1, p2, pc; Vector vz, va, vb;
457  char srot, clo, trm, uu2;} CurvElli;
458 // size = 148
459 
460 
462 typedef struct {int typ, cvnr, ind1, ind2; Point p1, p2;
463  long ID1, ID2;} Curv;
464 // size =
465 
466 
478 typedef struct {int ptNr; double v0, v1, *lvTab; Point *cpTab;
479  char dir, clo, trm, uu2;} CurvPoly;
480 // dir: only necessary for closed, cyclic curve
481 // size = 28
482 
483 
496 typedef struct {int ptNr; double v0, v1, *kvTab;
497  Point2 *cpTab; char deg, dir, clo, trm;} CurvBSpl2;
498 // size = 32
499 
500 
513 typedef struct {int ptNr; double v0, v1, *kvTab;
514  Point *cpTab; char deg, dir, clo, trm;} CurvBSpl;
515 // size = 32
516 
517 
531 typedef struct {int ptNr; double v0, v1, *kvTab, *wTab;
532  Point *cpTab; char deg, dir, clo, trm;} CurvRBSpl;
533 // size = 36
534 
535 
537 typedef struct {int ptNr; Point2 *cptab; double va, vb;} CurvBez2;
538 
539 
546 typedef struct {int ptNr; Point *cptab; double va, vb;} CurvBez;
547 // size = 24
548 
549 
557 typedef struct {int ptNr;Point *cptab;double *wtab;double va, vb;} CurvRBez;
558 
559 
560 // // Typ_CVVC 2007-03-24 RF.
561 // // Curve with Vectors for all Curvepoints from Offsetcurve.
562 // typedef struct {void *cv1; void *cv2; int cTyp;} CurvVec;
563 
564 
575 typedef struct {Point stp; Vector stv, plv;
576  double pc, cs, ce; int lr;} CurvClot;
577 
578 
579 
591 typedef struct {long dbi; int mdli, ptNr, siz;
592  Point *npt; double *npar; long *nipt;
593  short typ; char fTmp, uu1;} CurvPrcv;
594 
595 
611 // trm trimmed; 0=yes, 1=not_trimmed, -1=undef; see INF_struct_closed
613 typedef struct {double v0, v1; long dbi, ip0, ip1;
614  unsigned short is0, is1;
615  short typ, us1; char dir, clo, trm, uc1;} CurvCCV;
616 // size = 36
617 
618 
619 
620 /*
627 typedef struct {long dbi;
628  unsigned char rev, clo, uu1, uu2;} CurvAssy;
629 */
630 
631 
632 
637 typedef struct {Point po; Vector vx, vy, vz; double p;} Plane;
638 // size = 104
639 
640 
646 typedef struct {long cvID; float off, dir; short cvTyp;} SurHat;
647 
648 
660 typedef struct {double ang1, ang2, v0, v1;
661  long indCen, indCov; short typCen, typCov;
662  unsigned dir:1;} SurRev;
663 
664 
675 typedef struct {double u0, u1, v0, v1;
676  long indPath, indCov; short typPath, typCov;
677  unsigned dir:1;} SurSwp;
678 
679 
686 typedef struct {long baseID, cvID;
687  unsigned typ:8, cvTyp:8;} SurStd;
688 
689 
699 typedef struct {int ptUNr, ptVNr; ObjGX *pTab;} SurStripe;
700 
701 
708 typedef struct {long ptUNr, ptVNr; int degU, degV;
709  double v0U, v1U, v0V, v1V, *kvTabU, *kvTabV;
711 // size = 60
712 
713 
721 typedef struct {long ptUNr, ptVNr; int degU, degV;
722  double v0U, v1U, v0V, v1V, *kvTabU, *kvTabV, *wTab;
724 // size = 64
725 
726 
736 typedef struct {unsigned cr:8, cg:8, cb:8,
737  unused:3, vtra:2, vsym:1, vtex:1, color:1;} ColRGB;
738 // size = 4
739 
740 
748 typedef struct {Point pt; float size, dir; char *txt;
749  short xSiz, ySiz;} GText;
750 // size = 36
751 
752 
769 typedef struct {Point p1, p2; char *txt; short xSiz, ySiz;
770  float scl; char aTyp, col, ltyp;} AText;
771 
772 
781 typedef struct {char *fnam;
782  short xSiz, ySiz, texNr, keep;} TexBas;
783 
784 
795 typedef struct {int ibas; float uscx, uscy, udx, udy, uar,
796  ssx, ssy, px, py, pz, fx, fy; Vector vx, vy;} TexRef;
797 
798 
799 
801 typedef struct {Point po; long ind, siz;} Ditto;
802 
803 
804 /* UNUSED
811 typedef struct {char *mnam; long ind, siz;
812  Point po; Vector vx, vz;} ModelMock;
813 */
814 
815 
826 typedef struct {char *mnam; Point po, pb1, pb2; long DLind, DLsiz;
827  short typ, seqNr;} ModelBas;
828 
829 
835 typedef struct {int modNr; double scl;
836  Point po; Vector vx, vz;} ModelRef;
837 
838 
845 typedef struct {int mod, par, ind;} ModelNode;
846 
847 
853 typedef struct {Point pc; double rad;} Sphere;
854 // siz = 32
855 
856 
864 typedef struct {Plane pl; double r1, r2, h;} Conus;
865 // siz = 128
866 
867 
876 typedef struct {Plane pl; double r1, r2;} Torus;
877 // siz = 120
878 
879 
880 // Typ_REV
881 
882 
894 typedef struct {Point2 p1, p2, p3; float a1, a2;
895  char dtyp, hd, ld, uu; char *txt;} Dimen;
896 
897 
903 typedef struct {long ip1, ip2, ipt;
904  char dtyp, hd, ld, bp; char *txt;} Dim3;
905 
906 
911 typedef struct {Point2 pt; float ang, scl; int typ;} SymRef2;
912 // GL_DrawSymV2
913 
914 
915 
917 typedef struct {Point pt; Vector dx, dy; float scl; int typ;} SymRef;
918 // GL_DrawSymV3
919 
920 
921 
922 
923 //....................... Geom. Attributes: ..................................
924 
933 typedef struct {unsigned dash:8, thick:8,
934  cr:4, cg:4, cb:4, uu:4;} Att_ln;
935 
943 typedef struct {short indAtt; char lim, uu;} Ind_Att_ln;
944 
945 // DO NOT USE:
946 // typedef struct {unsigned col:8, ltyp:8, lthick:8,
947  // unused:7, used:1;} GR_Att;
948 // size = 4
949 
950 
961 typedef struct {long ind;
963  unsigned lay:16, typ:8,
964  unused:7, disp:1;} ObjAtt;
965 // size = 12
966 
967 
990 typedef struct {long ind, ipcv, lNr, irs;
992  unsigned modInd:16, typ:8,
993  disp:1, pick:1, hili:1, dim:1,
994  grp_1:1, unvis:1, sChd:1, sPar:1;} DL_Att;
995 // size = 16
996 
997 
1004 typedef struct {Mat_4x3 ma; Vector vz; double angr;} TraRot;
1005 // size = 128
1006 
1007 
1013 typedef struct {int typ; long ind; char *data;} Activity;
1014 
1015 
1023 typedef struct {Point pMin; int ix, iy, iz; double dx, dy, dz;} GridBox;
1024 
1025 
1026 
1027 /*
1028 //....................... Tess. Objects: ..................................
1029 
1035 typedef struct {Point *pTab; int pNr; char *pTyp;} Verts;
1036 
1037 
1042 typedef struct {int *ipt; int *inf;} Face;
1043 
1044 
1049 typedef struct {int i1, i2, i3;} Fac3;
1050 
1051 
1058 typedef struct {void *fTab; int fNr; int fTyp;} Faces;
1059 
1060 
1072 typedef struct {int ip1, ip2, ip3, if1, if2, if3;} FacNf;
1073 
1074 
1076 typedef struct {int ipt[2];} Edge;
1077 
1078 
1080 typedef struct {int i1, i2;} Edg3;
1081 
1082 
1094 typedef struct {int *ia, iNr; char typ, aux, stat;} EdgeLine;
1095 
1096 
1105 typedef struct {Edge *eTab; int eNr; char *eTyp;} Edges;
1106 
1107 
1114 typedef struct {Verts *p; Faces *f; Edges *e; int mTyp;} Mesh;
1115 
1116 
1122 typedef struct {int ipt, nbsid;} SegBnd;
1123 
1124 
1125 // /// \brief Typ_EdgSur
1126 // /// \code
1127 // /// vxSt index to startPoint
1128 // /// vxNr nr of points following startPoint
1129 // /// surNb surfaceIndex of neighbourSurface (surf-record in BODY)
1130 // /// see also EdgeLine
1131 // /// \endcode
1132 // typedef struct {int vxSt, vxNr, vxMax, surNb;} EdgSur;
1133 
1134 
1135 
1149 typedef struct {int suID, contNr; char typb, typt, dir, stat;} BndSur;
1150 // ^
1151 */
1152 
1153 
1154 
1155 //.........................................................................
1156 
1157 // tolerances depending from Modelsize:
1159 extern double UT_TOL_pt;
1161 extern double UT_TOL_cv;
1163 extern double UT_TOL_ln;
1165 extern double UT_DISP_cv;
1167 extern double UT_DISP_ln;
1168 
1169 
1170 
1171 
1172 // ------------- constants defined in ../ut/ut_geo_const.h -------------
1173 extern double UT_TOL_min0;
1174 extern double UT_TOL_min1;
1175 extern double UT_TOL_min2;
1177 extern double UT_TOL_PAR;
1179 extern double UT_TOL_Ang1;
1181 extern double UT_TOL_Ang2;
1182 
1183 
1184 extern const double UT_VAL_MIN;
1185 extern const double UT_VAL_MAX;
1186 extern const double UT_DB_LEER;
1187 extern const double UT_DB_NULL;
1188 extern const int UT_INT_MAX;
1189 extern const char UT_CHR_NULL;
1190 
1191 
1192 extern const Point2 UT2D_PT_NUL;
1193 extern const Point UT3D_PT_NUL;
1194 
1195 extern const Vector2 UT2D_VECTOR_NUL;
1196 extern const Vector2 UT2D_VECTOR_X;
1197 extern const Vector2 UT2D_VECTOR_Y;
1198 
1199 extern const Vector UT3D_VECTOR_NUL;
1200 
1201 extern const Vector UT3D_VECTOR_X;
1202 extern const Vector UT3D_VECTOR_Y;
1203 extern const Vector UT3D_VECTOR_Z;
1204 
1205 extern const Vector UT3D_VECTOR_IX;
1206 extern const Vector UT3D_VECTOR_IY;
1207 extern const Vector UT3D_VECTOR_IZ;
1208 
1209 extern const Mat_3x3 UT3D_MAT_3x3;
1210 extern const Mat_4x3 UT3D_MAT_4x3;
1211 extern const Mat_4x4 UT3D_MAT_4x4;
1212 
1213 
1214 
1215 
1216 
1217 //================================================================
1218 // prototypes for gcad_ut_geo.c
1219 
1220 //----------------------------------------------------------------
1221  int UT1D_ndb_npt_bp (double *da, Point *pa, int pNr, int bp);
1222 
1223  double UT_DEGREES (double);
1224  double UT_RADIANS (double);
1225 
1226  int UT2D_sidPerp_3pt (Point2 *p1, Point2 *p2, Point2 *p3);
1227 
1228  int UT2D_angr_set (double *angr);
1229  int UT2D_2angr_set (double *ang1, double *ang2, int irot);
1230  double UT2D_angr_2angr (double ang1, double ang2, int irot);
1231  double UT2D_angr_set_2angr (double as, double aa, int sr);
1232  int UT2D_ptNr_ci (double rdc, double ao, double tol);
1233 
1234  int UT2D_solvtriri_a (double *a, double b, double c);
1235  int UT2D_solvtriri_bc (double *,double *,double,double);
1236  int UT2D_solvtri_abc (double *,double *,double,double,double);
1237 
1238  int UT2D_ckBoxinBox1 (Point2 *p1, Point2 *p2, Point2 *p3, Point2 *p4);
1239  int UT2D_ckBoxinBox2 (Point2*, Point2*, Point2*, Point2*, double);
1240 
1241  double UT2D_slen_vc_vc__ (Vector2 *vac, Vector2 *vab);
1242  double UT2D_slen_vc_vcNo (Vector2 *vac, Vector2 *vnab);
1243  double UT2D_slen_pt_pt_vc__ (Point2 *pc, Point2 *pa, Vector2 *vab);
1244  double UT2D_skp_2vc (Vector2 *, Vector2 *);
1245  double UT2D_skp_vc2pt (Vector2 *, Point2 *, Point2 *);
1246  double UT2D_acos_2vc (Vector2 *, Vector2 *);
1247  double UT2D_sar_2vc (Vector2 *, Vector2 *);
1248  double UT2D_acos_vc2pt (Vector2 *, Point2 *, Point2 *);
1249  double UT2D_crossprod_2vc (Vector2 *, Vector2 *);
1250 
1251  double UT2D_angd_angr (double);
1252  double UT2D_angd_invert (double *andi);
1253  double UT2D_angr_angd (double);
1254  double UT2D_angr_triri_ab (double, double);
1255  double UT2D_angr_ptpt (Point2 *, Point2 *);
1256  double UT2D_angr_vc (Vector2 *);
1257  double UT2D_angr_2ln (Line2 *, Line2 *);
1258  double UT3D_angr_vc2pt (Point *pz, Vector *vz, Point *p1, Point *p2);
1259  double UT3D_angr_vcpl_z (Plane *pl1, Vector *vc1);
1260  double UT3D_angr_vcpl_tilt (Plane *pl1, Vector *vc1);
1261  double UT3D_angr_vc2vc (Vector *vc1, Vector *vcx, Vector *vcy);
1262  double UT3D_angr_2pl (Plane* pl1, Plane* pl2);
1263  double UT2D_angr_2vc (Vector2 *, Vector2 *);
1264  double UT2D_angr_3ptdr (Point2 *, Point2 *, Point2 *, int);
1265  double UT3D_angr_4pt (Point *p11, Point *p12, Point *p21, Point *p22);
1266  double UT2D_angr_ci (Point2 *pa,Point2 *pe,Point2 *pc,double rad_in);
1267  double UT3D_angr_ci_p1_pt (Circ *ci1, Point *pti);
1268  double UT2D_angr_perpangr (double*);
1269 
1270  double UT2D_len_vc (Vector2 *);
1271  double UT2D_lenq_vc (Vector2 *);
1272  void UT2D_lenq_2pt (double *lq, Point2 *p1, Point2 *p2);
1273  double UT2D_len_2pt (Point2 *,Point2 *);
1274  double UT2D_lenB_2pt (Point2 *p1, Point2 *p2);
1275  double UT2D_lenS_2pt (Point2 *p1, Point2 *p2);
1276  double UT2D_lenS_vc (Vector2 *vc1);
1277  int UT2D_minLenB_4pt (double *dp,Point2*,Point2*,Point2*,Point2*);
1278  int UT3D_minLen_3pt (double*,Point*,Point*,Point*);
1279  int UT3D_minLen_4pt (double*,Point*,Point*,Point*,Point*);
1280  int UT3D_minLen_npt (Point *p0, Point *pa, int pNr);
1281  double UT2D_len_ptln (Point2 *pt, Point2 *pa, Point2 *pe);
1282  int UT2D_3len_ptln (double*, double*, double*, Point2*, Point2*, Point2*);
1283  int UT2D_slenq_ptptvc (double *qlen, Point2 *pa, Point2 *pb, Point2 *pc);
1284  double UT2D_slen_nor3pt (Point2 *p1, Point2 *p2, Point2 *p3);
1285  int UT2D_slen_nor2vc (double *slen, Vector2 *v1, Vector2 *v2);
1286  int UT2D_slen_nor_vc_vcNo (double *slen, Vector2 *v1, Vector2 *v2);
1287  double UT2D_slen_nor_2pt_vc__ (Point2 *pt, Point2 *pl, Vector2 *vl);
1288  double UT2D_slen_nor_2pt_vcNo (Vector2 *v1, Point2 *p1, Point2 *p2);
1289  int UT2D_2slen_vc_vc__ (double *dx, double *dy, Vector2 *vp, Vector2 *vl);
1290  int UT2D_2slen_2pt_vc__ (double *dx, double *dy,
1291  Point2 *px, Point2 *pl, Vector2 *vl);
1292 
1293  // int UT2D_sid_2vc (Vector2 *v1, Vector2 *v2, double tol); // DO NOT USE
1294  int UT2D_sid_2vc__ (Vector2 *v1, Vector2 *v2);
1295  int UT2D_sid_2vc_tol (Vector2 *v1, Vector2 *v2, double *tol);
1296  // int UT2D_sid_ptvc__ (Point2*, Point2*, Vector2*); // DO NOT USE
1298  int UT2D_sid_ptvc___tol (Point2*, Point2*, Vector2*, double*);
1299  int UT2D_sid_3pt (Point2 *pt, Point2 *p1, Point2 *p2);
1300 
1301  int UT2D_sidPerp_2vc (Vector *v1, Vector *v2);
1302  int UT2D_sidPerp_ptvc (Point2 *pt, Point2 *pl, Vector2 *vl);
1303  int UT2D_sidPerp_3pt (Point2 *p1, Point2 *p2, Point2 *p3);
1304 
1305  int UT3D_sid_2vc (Vector *v1, Vector *v2);
1306  int UT3D_sid_3pt (Point *p1, Point *p2, Point *p3);
1307  int UT3D_sid_ptpl (Point *pt, Plane *pl);
1308  int UT3D_sid_ptptvc (Point *ptx, Point *pto, Vector *vz);
1309 
1310  int UT2D_parLn_pt2pt (double *d1, Point2 *p1, Point2 *p2, Point2 *px);
1311  double UT2D_par_nor_2vc (Vector2 *vc1, Vector2 *vc2);
1312 
1313  double UT2D_ar_3pt (Point2 *p1, Point2 *p2, Point2 *p3);
1314 
1315  int UT2D_comp2pt (Point2*, Point2*, double);
1316  int UT2D_comp4pt (Point2*, Point2*, Point2*, Point2*, double);
1318  int UT2D_pt_ck_onLine (Point2 *po,
1319  Point2 *p1,Point2 *p2,Point2 *p3,double tol);
1320  int UT2D_pt_ck_inLine (Point2 *p1, Point2 *p2, Point2 *p3, double tol);
1321  int UT2D_pt_ck_inplg (Point2 * pTab, int pNr, Point2 *ptx);
1322  int UT2D_pt_ck_linear (int np, Point2 *ptab, double tol);
1323  int UT2D_pt_ck_inBox (Point2 *p1, Point2 *p2, Point2 *p);
1324  int UT2D_pt_ck_inBoxTol (Point2 *p1, Point2 *p2, Point2 *p, double tol);
1325  int UT2D_pt_ck_inAc (Point2 *pt, Circ2 *ci);
1326  int UT2D_pt_ck_inTriangle (Point2 *p1, Point2 *p2, Point2 *p3, Point2 *p);
1327  int UT2D_pt_ck_inCv3 (Point *ptx, int pNr, Point *pTab);
1328  int UT2D_pt_cknear_npt (Point2 *p0, Point2 *ptTab, int ptNr);
1329 
1330  void UT2D_swap2pt (Point2 *p1, Point2 *p2);
1331  Point2 UT2D_pt_pt3 (Point *);
1332  void UT2D_pt_2db (Point2 *, double, double);
1333  int UT3D_pt_pt2bp (Point *p3, Point2 *p2, int bp);
1334  void UT2D_pt_addpt (Point2 *, Point2 *);
1335  void UT2D_pt_sub_pt3 (Point2 *, Point *);
1336  void UT2D_pt_opp2pt (Point2 *, Point2 *, Point2 *);
1337  void UT2D_pt_mid2pt (Point2 *, Point2 *, Point2 *);
1338  void UT2D_pt_traptvc (Point2 *, Point2 *, Vector2 *);
1339  void UT2D_pt_tra2ptlen (Point2 *, Point2 *, Point2 *, double);
1340  void UT2D_pt_traPtPtPar (Point2 *po, Point2 *p1, Point2 *p2, double d1);
1341  void UT2D_pt_tra3ptlen (Point2 *, Point2 *, Point2 *, Point2 *,double);
1342  void UT2D_pt_tra2pt2len (Point2 *,Point2 *,Point2 *,double,double);
1343  void UT2D_pt_tra2pt3len (Point2 *,Point2 *,Point2 *,double,double,double);
1344  void UT2D_pt_traptvclen (Point2 *,Point2 *,Vector2 *,double);
1345  void UT2D_pt_traptangrlen (Point2 *,Point2 *,double,double);
1346  void UT2D_pt_tranor2ptlen (Point2 *,Point2 *,Point2 *,double);
1347  void UT2D_pt_tranorptvclen (Point2 *, Point2 *, Vector2 *, double);
1348  void UT2D_pt_traptvc2len (Point2 *,Point2 *,Vector2 *,double,double);
1349  void UT2D_pt_tracirlen (Point2 *, Point2 *, Point2 *, double, double);
1350  void UT2D_pt_rotptangr (Point2*,Point2*,Point2*,double);
1351  int UT2D_pt_projptptvc (Point2 *, Point2 *, Point2 *, Vector2 *);
1352  int UT2D_pt_projpt2pt(Point2 *pp, double *len,
1353  Point2 *pt, Point2 *p1, Point2 *p2);
1354  int UT2D_pt_projptln (Point2 *, Point2 *, Line2 *);
1355  void UT2D_2pt_projptci (Point2*,Point2*,Point2*,Point2*,double);
1356  int UT2D_pt_projptci (Point2 *pp, Point2 *pt, Circ2 *ci1);
1357  int UT3D_ptDi_intptvcptvc (Point *ip, double *dist, Point *ptl, Vector *vcl,
1358  Point *ptp, Vector *vcp);
1359  int UT3D_ptDi_intptvcpln (Point *ip, double *dist,
1360  Plane *pl, Point *pt, Vector *vln);
1361  int UT2D_pt_int4pt (Point2*,double*,double*,double*,
1362  Point2*,Point2*,Point2*,Point2*);
1363  int UT2D_pt_int2ln (Point2*, Line2*, Line2*);
1364  int UT2D_pt_intptvcy (Point2 *pto, Point2 *ptl, Vector2 *vcl, double yVal);
1365  int UT2D_pt_intlny (Point2 *pto, Point2 *lp1, Point2 *lp2, double yVal,
1366  double tol);
1367  int UT2D_pt_intlnx (Point2 *pto, Point2 *lp1, Point2 *lp2, double xVal,
1368  double tol);
1369  int UT2D_pt_int2pt2vc (Point2 *ip, Point2 *pt1, Vector2 *vc1,
1370  Point2 *pt2, Vector2 *vc2);
1371  int UT2D_pt_int2vc2pt (Point2 *, Point2 *, Vector2 *, Point2 *, Vector2 *);
1373  int UT2D_2pt_intlnci (Point2 *ip1, Point2 *ip2,
1374  Line2 *ln, int lnMode, Circ2 *ci, int ciMode);
1375  int UT2D_2pt_intcici (Point2*,Point2*,Point2*,double,Point2*,double);
1376  int UT2D_2pt_int2ci (Point2 *ip1, Point2 *ip2,
1377  Circ2 *ci1, int ci1Mode, Circ2 *ci2, int ci2Mode);
1378  void UT2D_pt_traptm2 (Point2 *, Mat_3x2, Point2 *);
1379  Point2 UT2D_pt_obj2 (ObjG2 *obj1);
1380 
1381  void UT2D_ln_ptpt (Line2*, Point2*, Point2*);
1382  void UT2D_ln_ptvc (Line2*, Point2*, Vector2*);
1383  void UT2D_ln_ln3 (Line2 *ln2, Line *ln3);
1384  void UT2D_ln_inv (Line2 *ln1);
1385  void UT2D_ln_4db (Line2 *ln2, double xs, double ys, double xe, double ye);
1387  int UT2D_lncoe_ln (double *k, double *d, Line2 *ln);
1388  int UT2D_ln_pts_dmax (Line2 *ln, int np, Point2 *ptab, double tol);
1389 
1390  int UT2D_comp2vc (Vector2*, Vector2*, double);
1391  int UT2D_comp2vc_p (Vector2*, Vector2*, double);
1392  int UT2D_ckvc_in2vc (Vector2 *v1, Vector2 *v2, Vector2 *v3);
1393  void UT2D_vc_vc3 (Vector2*, Vector*);
1394  int UT2D_2parvc_3vc(double*,double*,Vector2*,Vector2*,Vector2*);
1395  void UT2D_vc_2db (Vector2 *, double, double);
1396  void UT2D_vc_angr (Vector2 *, double);
1397  void UT2D_vc_angrlen (Vector2 *, double, double);
1398  void UT2D_vc_2pt (Vector2 *, Point2 *, Point2 *);
1399  void UT2D_vc_2pt3 (Vector2 *vc, Point *p1, Point *p2);
1400  int UT2D_vc_2pt3_bp (Vector2 *vo, Point *p1, Point *p2, int bp);
1401  void UT2D_vc_2ptlen (Vector2 *, Point2 *, Point2 *, double);
1402  void UT2D_vc_ln (Vector2 *, Line2 *);
1403  void UT2D_vc_invert (Vector2 *, Vector2 *);
1404  int UT3D_vc_Zup (Vector *v2, Vector *v1);
1405  void UT2D_vc_perpvc (Vector2 *, Vector2 *);
1406  void UT2D_vc_perp2pt (Vector2 *, Point2 *, Point2 *);
1408  void UT2D_vc_setLength (Vector2 *, Vector2 *, double);
1410  void UT2D_vc_merge2vc (Vector2 *vm, Vector2 *v1, Vector2 *v2);
1411  void UT2D_vc_rotangr (Vector2 *,Vector2 *,double);
1412  void UT2D_vc_travcm2 (Vector2 *vo, Mat_3x2 mata, Vector2 *vi);
1413 
1414  double UT2D_angr_ciSec (double hc, double radc);
1415  double UT2D_len_ciSec (double hSec, double rCi);
1416  double UT2D_len_cia (double rad, double ango);
1417  double UT2D_len_cir (double *angOpe,
1418  Point2 *pa,Point2 *pe,Point2 *pc,double rad_in);
1419  int UT2D_compPtOnAc (double, double, double, int);
1420  Circ2 UT2D_ci_obj2 (ObjG2 *);
1421  int UT2D_ci_ptrd (Circ2 *ci, Point2 *ptc, double rdc);
1422  int UT2D_ci_ci3 (Circ2 *ci2, Circ *ci3);
1423  int UT2D_ci_2vc2ptrd (Point2*,Point2*,Vector2*,Point2*,Vector2*,double);
1424  int UT2D_ci_ciptvcrd (Point2*,Point2*,double,int,Point2*,Vector2*,double);
1425  int UT2D_ci_ptvcpt (Point2 *,double *,Point2 *,Vector2 *,Point2 *);
1426 
1427  int UT2D_obj_obj3 (ObjGX *oo, ObjGX *oi, Memspc *memSeg);
1428 
1429  // ObjG2 UT2D_obj_pt3 (Point*);
1430  // ObjG2 UT2D_obj_ln3 (Line*);
1432  // ObjG2 UT2D_obj_ci3 (Circ*);
1433  // ObjG2 UT2D_obj_cv3 (Curv *);
1434 
1435  int UT2D_void_obj2 (void *memObj, unsigned long *oSiz, ObjG2 *og2);
1436 
1437  void UT2D_cv_ci360 (Point2 *cv, int ptNr, double rd, Point2 *ptCen);
1438  int UT2D_cv_ln (Point2 *cv, int ptAnz, Point2 *p1, Point2 *p2);
1439  int UT2D_npt_ci (Point2 *pa, int pNr, Circ2 *ci1);
1440  int UT2D_cv_ci (Point2[],int*,Point2*,Point2*,Point2*,int);
1441  int UT2D_cv3_linear (int *pNr, Point *pTab, double tol);
1442  int UT2D_srar_polc (double *aro, int ptNr, Point2 *pa);
1443 
1444 
1445 void UT2D_m2_load (Mat_3x2, Vector2 *, Point2 *);
1446 void UT2D_m2_loadtravcm2 (Mat_3x2 ma, Vector2 *vx, Vector2 *vy, Vector2 *vt);
1447 int UT2D_m2_invtravcm2 (Mat_3x2 im1, Mat_3x2 m1);
1448 void UT2D_m2_init_rot (Mat_3x2 ma, double angle, Point2 *cen);
1449 
1450 
1451 /*===============================================================*/
1452 
1453 
1454 int UT3D_stru_dump (int typ, void *data, char *txt, ...);
1455 
1456 
1457 double UT3D_len_vc (Vector *);
1458 double UT3D_lenq_vc (Vector *);
1459 int UT3D_bplen_vc (double *lnv, Vector *vc1);
1460 double UT3D_lenB_vc (Vector *vc1);
1461 double UT3D_lenB_2pt (Point *p1, Point *p2);
1462 double UT3D_len_2pt (Point*,Point*);
1463 double UT3D_lenq_PtPt (Point *p1, Point *p2);
1464 int UT3D_lenq_PtLn (double *lenq, Point *p, Point *p1, Point *p2);
1465 double UT3D_len_ln (Line *);
1466 double UT3D_len_ci (Circ *ci1);
1467 double UT3D_slen_3pt (Point *pt, Point *p1, Point *p2);
1468 double UT3D_slen_projvcvc (Vector *vc1, Vector *vc2);
1469 double UT3D_slenq_projvcvc (Vector *vc1, Vector *vc2);
1470 double UT3D_slenq_2ptvc (Point *p1, Point *p2, Vector *vc);
1471 double UT3D_nlen_projvcvc (Vector *vc1, Vector *vc2);
1472 double UT3D_slen_2ptvc (Point *p1, Point *p2, Vector *vc);
1473 double UT3D_slen_ptpl (Point *pt, Plane *pl);
1474 double UT3D_nlen_2ptvc (Point *p1, Point *pv, Vector *vc);
1475 double UT3D_nlen_3pt (Point *p1, Point *p2, Point *p3);
1476 int UT3D_parpt_3pt (double *pl, Point *ptx, Point *pl1, Point *pl2);
1477 int UT3D_parpt_ptvc (double *pl, Point *ptx, Point *pt1, Vector *vc1);
1478 double UT3D_parpt_lnbp (Point *pti, Line *ln1, int bp);
1479 double UT3D_par1_ci_angr (Circ *ci1, double angr);
1480 double UT3D_par1_ci_pt (Circ *ci1, Point *pt1);
1481 
1482 void UT3D_pt_setFree (Point*);
1483 int UT3D_pt_isFree (Point*);
1484 int UT3D_pt_ck_npt (Point *p0, Point *pTab, int pNr, double tol);
1485 int UT3D_ipt_cknear_npt (Point *p0, Point *ptTab, int ptNr);
1486 int UT3D_ipt_ckfar_npt (Point *p0, Point *ptTab, int ptNr);
1487 int UT3D_ipt_cknearn_npt (Point *p0, Point *ptTab, int ptNr, int distNr);
1488 int UT3D_ipt2_nptvc (Point *pt1, Point *pt2, int mode,
1489  Point *pta, int iNr, Vector *vc);
1490 int UT3D_pt_ck_onel (Point *pt, CurvElli *el);
1491 int UT3D_pt_ck_ptvc (Point *pt, Point *pl, Vector *vl, double tol);
1492 int UT3D_pt_ck_2pt (Point *pt, Point *pl1, Point *pl2, double tol);
1493 int UT3D_pt_ck_onLine (Point *p1, Point *p2, Point *p3, double tol);
1494 int UT3D_pt_ck_inLine (Point *p1, Point *p2, Point *p3, double tol);
1495 int UT3D_pt_ck_mid_2pt (Point *p1, Point *p2, Point *p3, double *tol);
1496 int UT3D_pt_ck_on_pta (Point *pTab, int ptNr, Point *pt1, double tol);
1497 int UT3D_pt_ck_in2pt (Point *p1,Point *p2,Point *p3, double tol);
1498 int UT3D_pt_ck_inCirc (Circ *ci1, Point *pt1, double tol);
1499 int UT3D_pt_ck_inSph (Point *pt, Point *ps, double rs);
1500 
1501 void UT3D_swap2pt (Point *p1, Point *p2);
1502 int UT3D_comp4pt (Point *p1a,Point *p1e,Point *p2a,Point *p2e,double tol);
1503 int UT3D_compptpl (Point*, Plane*);
1505 Point UT3D_pt_pt2z (Point2 *pt20, double zVal);
1506 void UT3D_pt_3db (Point *, double, double, double);
1507 void UT3D_pt_vc (Point*, Vector*);
1508 void UT3D_pt_txt (Point *, char *);
1509 void UT3D_pt_mid2pt (Point *, Point *, Point *);
1510 int UT3D_pt_mid_pta (Point *pto, Point *pTab, int ptNr);
1511 void UT3D_pt_midci (Point *, Circ *);
1512 // UT3D_pt_multvc(po,pi,vi,d); INLINE
1513 void UT3D_pt_opp2pt (Point *, Point *, Point *);
1514 int UT3D_pt_oppptptvc (Point *po, Point *pi, Point *pl, Vector *vl);
1515 int UT3D_2pt_oppptvclen (Point*,Point*,Point*,Vector*,double);
1516 void UT3D_pt_addpt (Point *, Point *);
1517 void UT3D_pt_add_vc__ (Point *, Vector *);
1518 void UT3D_pt_add_vc_par (Point *, Vector *, double);
1519 void UT3D_pt_add_3vc_3par (Point*,Vector*,Vector*,Vector*,double,double,double);
1520 void UT3D_pt_add_pt2 (Point *, Point2 *);
1521 void UT3D_pt_add2pt (Point *, Point *, Point *);
1522 void UT3D_pt_sub_pt2 (Point *, Point *, Point2 *);
1523 void UT3D_pt_sub_pt3 (Point *, Point2 *);
1524 void UT3D_pt_tra_pt_dx (Point*, Point*, double);
1525 void UT3D_pt_tra_pt_dy (Point*, Point*, double);
1526 void UT3D_pt_traptvc (Point *, Point *, Vector *);
1527 void UT3D_pt_traptvclen (Point *po,Point *pi,Vector *vc,double dist);
1528 void UT3D_pt_tra_pt_vc_par (Point *po,Point *pi,Vector *vc,double dist);
1529 void UT3D_pt_trapt2vc (Point *po,Point *pi,Vector *vc1, Vector *vc2);
1530 void UT3D_pt_trapt2vc2len (Point *,Point *,Vector *,double,Vector *,double);
1531 void UT3D_pt_tra_pt_2vc_2par (Point *,Point *,Vector *,double,Vector *,double);
1532 void UT3D_pt_trapt3vc3len (Point *po,Point *pi,
1533  Vector *vx,double dx, Vector *vy,double dy, Vector *vz,double dz);
1534 void UT3D_pt_traptptlen (Point *po,Point *pi,Point *pDir,double lenv);
1535 void UT3D_pt_trapt2pt (Point *po, Point *pi, Point *p1, Point *p2);
1536 int UT3D_pt_tracirlen (Point *pto, Point *pti, Circ *cii, double clen);
1537 int UT3D_pt_rotptptangr (Point *pto, Point *ptc, Point *pti, double *ar);
1538 void UT3D_pt_rotptptvcangr (Point *pto,
1539  Point *pti,Point *ptc,Vector *vz,double angr);
1540 int UT3D_pt_rotptm3 (Point *p2, Point *p1, Mat_4x3 ma);
1541 int UT3D_pt_rotciangr (Point *pto, double angr, Circ *ci1);
1542 int UT3D_pt_projpt2pt (Point *pp,double *len,Point *pt,Point *p1,Point *p2);
1543 int UT3D_pt_projptln (Point*, double*, double*, Point*, Line*);
1544 int UT3D_pt_projptci (Point *ptn, Point *ptf, Point *pt1, Circ *ci1);
1545 int UT3D_pt_projptptvc(Point *pp,double *len,double *par,
1546  Point *pt,Point *pl,Vector *vl);
1547 int UT3D_pt_projptel (int *numpe, Point *pe, CurvElli *ell, Point *pt);
1548 int UT3D_pt_projptbspl (int *nxp, Point *ptab, double *ttab,
1549  CurvBSpl *bspl, Point *pt);
1550 int UT3D_pt_projptptnvc (Point *po, Point *pi, Point *plo, Vector *plz);
1551 void UT3D_pt_projptpl (Point *, Plane *, Point *);
1552 int UT3D_pt_int2pt2vc (Point *ip1, Point *ip2, double *dist,
1553  Point *ptu, Vector *vcu, Point *ptv, Vector *vcv);
1554 int UT3D_pt_intptvcplx (Point *px, Point *pl, Vector *vl, double plx);
1555 int UT3D_pt_intptvcply (Point *px, Point *pl, Vector *vl, double ply);
1556 int UT3D_pt_intptvcplz (Point *px, Point *pl, Vector *vl, double plz);
1557 int UT3D_pt_intptvcln (Point *ip1, Point *ip2, double *dist,
1558  Point *pt1, Vector *vc1, Line *ln2);
1559 int UT3D_pt_intptvcxpln (Point *pti, Point *ptl,
1560  Point *ptpl, Vector *vcpl);
1561 int UT3D_pt_intptvcypln (Point *pti, Point *ptl,
1562  Point *ptpl, Vector *vcpl);
1563 int UT3D_pt_intptvczpln (Point *pti, Point *ptl,
1564  Point *ptpl, Vector *vcpl);
1565 int UT3D_pt_intptvcsph (Point *pa, Point *pl, Vector *vl,
1566  Point *ps, double rs);
1567 int UT3D_pt_int2ln (Point*,Point*,double*,Line*,Line*);
1568 int UT3D_pt_intperp2ln (Point *po,Point *p1,Vector *v1,Point *p2,Vector *v2);
1569 int UT3D_pt_intlnci__ (int *np, Point xp[], Line *ln, Circ *ci1);
1570 int UT3D_pt_intlnci_p (int *np, Point xp[], Line *ln, Circ *ci1);
1571 int UT3D_pt_intlnsph (Line *ln1, Point *ps, double rs);
1572 int UT3D_pt_intcici (Point pa[], Circ *ci1,int ci1Lim, Circ *ci2,int ci2Lim);
1573 int UT3D_pt_intplnln (Point *ip, double *dist, Plane *pl, Line *ln);
1574 int UT3D_pt_intlnpl (Point *, Plane *, Line *);
1575 int UT3D_pt_intlnpl1 (Point*, double*, Point*, Point*, double, double);
1576 int UT3D_pt_intptvcpln (Point *pti,
1577  Point *ptl, Vector *vcl, Point *ptpl, Vector *vcpl);
1578 int UT3D_pt_intplnci (Point pa[], Plane *pl1, Circ *ci1, int ciLim);
1579 int UT3D_pt_intcidpln (int *np, Point xp[],
1580  Point *pc, Point *p1, Vector *vz, double dx);
1581 int UT3D_pt_intptvcpl_ (Point *, Plane *, Point *, Vector *);
1582 int UT3D_pt_intlnel__ (int *np, Point xp[], Line *ln, CurvElli *el);
1583 int UT3D_pt_intlnel_p (int *np, Point xp[], Line *ln, CurvElli *el);
1584 int UT3D_pt_ipl_2ptpt2 (Point *pi3, Point *p1, Point *p2, Point2 *pi2);
1585 int UT3D_pt_mirptpl (Point *pto, Point *pti, Plane *pln);
1586 int UT3D_pt_mirptln (Point *pto, Point *pti, Line *ln);
1587 int UT3D_pt_tangptci (Point *po1, Point *po2, Point *pt1, Circ *ci1);
1588 int UT3D_pt_elfoc (Point *fp1, Point *fp2, CurvElli *el);
1589 
1590 int UT3D_pt_evparln (Point *pto, double lpar, Line *ln1);
1591 int UT3D_pt_evparci (Point *pto, double lpar, Circ *ci1);
1592 
1593 int UT3D_pt_m3 (Point *pto, Mat_4x3 ma);
1594 void UT2D_pt_traptm3 (Point2 *p2, Mat_4x3 mata, Point2 *p1);
1595 void UT3D_pt_traptm3 (Point*, Mat_4x3, Point*);
1596 void UT3D_pt_traptm4 (Point *p2, Mat_4x4 ma, Point *p1);
1597 
1598 int UT2D_ptvc_ck_int2pt (int mode, Point2 *p1s, Vector2 *v1,
1599  Point2 *p2s, Point2 *p2e);
1600 int UT3D_ptvc_int2pl (Point *pt, Vector *vc, Plane *pl1, Plane *pl2);
1601 int UT3D_ptvc_int2pln (Point *pti, Vector *vci,
1602  Point *pl1pt, Vector *pl1vz, Point *pl2pt, Vector *pl2vz);
1603 int UT3D_ptvc_ox (Point *pta, Vector *vca, ObjGX *oxi);
1604 
1605 // double UT3D_acos_2vc (Vector*,Vector*);
1606 
1607 double UT3D_angr_3pt (Point *p1, Point *pc, Point *p2);
1608 double UT3D_angr_2vc__ (Vector*,Vector*);
1609 double UT3D_angr_3vc__ (Vector *vz, Vector *v1, Vector *v2);
1610 double UT3D_angr_3vcn_CCW (Vector *vz, Vector *v1, Vector *v2);
1611 double UT3D_angr_ci_par1 (Circ *ci1, double par1);
1612 double UT3D_angr_ci__ (Circ *ci1);
1613 int UT3D_2angr_vc (double *az, double *ay, Vector *vc1);
1614 int UT3D_atan_vcpl (double *kvc, Vector *vci, Plane *pli);
1615 
1616 int UT3D_compvc0 (Vector *v1, double tol);
1617 int UT3D_comp2vc_d (Vector *, Vector *, double);
1618 int UT3D_comp2vc_p (Vector *, Vector *, double);
1619 void UT3D_vc_pt (Vector*, Point*);
1620 int UT3D_vc_ck_parpl (Vector *vci, Plane *pli, double tol);
1621 int UT3D_vc_ckperp_2vc1 (Vector *vc1, Vector *vc2, double tol);
1622 int UT3D_vc_ck_std (Vector *vc1);
1623 int UT3D_parvc_2vcbp (double *dl, int mainPln, Vector *v1, Vector *v2);
1624 int UT3D_2parvc_3vcbp (double*,double*,int,Vector*,Vector*,Vector*);
1625 // int UT3D_vc_multvc (Vector *vo, Vector *vi, double d);
1626 // void UT3D_vc_3db (Vector *, double, double, double);
1627 // void UT3D_vc_pt (Vector *, Point *);
1628 void UT3D_vc_txt (Vector *vc, char *txt);
1629 // void UT3D_vc_2pt (Vector *, Point *, Point *);
1630 void UT3D_vc_2ptlen (Vector *, Point *, Point *, double);
1631 void UT3D_vc_angr (Vector *vc, double angr);
1632 void UT3D_vc_2angr (Vector *, double, double);
1633 void UT3D_vc_2vc (Vector *, Vector *, Vector *);
1634 void UT3D_vc_ln (Vector *, Line *);
1635 int UT3D_vc_bp (Vector *vn, int bp);
1636 void UT3D_vc_invert (Vector*, Vector*);
1637 // int UT3D_vc_add2vc (Vector *v3, Vector *v1, Vector *v2);
1638 // int UT3D_vc_sub2vc (Vector *v3, Vector *v1, Vector *v2);
1639 void UT3D_vc_perp1vc (Vector *vp, Vector *vi);
1640 void UT3D_vc_perp2vc (Vector *, Vector *, Vector *);
1641 int UT3D_vc_perpvc2pt (Vector *vp, Vector *vx, Point *pc, Point *py);
1642 int UT3D_vc_perp3pt (Vector *vp, Point *ptc, Point *ptx, Point *pty);
1643 int UT3D_vc_perp4pt (Vector *vp, Point *p1, Point *p2, Point *p3, Point *p4);
1644 void UT3D_vc_perpTria (Vector *vn, Triangle *tri);
1645 void UT3D_vc_perpvcplXY (Vector *, Vector *);
1646 int UT3D_vc_perppta (Vector *vcn, int pNr, Point *pa);
1648 void UT3D_vc_setLength (Vector *, Vector *, double);
1649 int UT3D_vc_setLenLen (Vector *vco,Vector *vci,double newLen,double actLen);
1650 int UT3D_vc_tng_ci_pt (Vector *vt, Point *p1, Circ *ci);
1651 int UT3D_vc_rotangr (Vector *vco, Vector *vci, double *ar);
1652 void UT3D_vc_rot3angr (Vector *,Vector *, double, double, double);
1653 int UT3D_vc_rotvcvcangr (Vector *vo, Vector *va, Vector *vi, double angr);
1654 int UT3D_vc_projvcvc (Vector *v3, Vector *v1, Vector *v2);
1655 int UT3D_vc_projvc2vc (Vector *vo, Vector *vi, Vector *v1, Vector *v2);
1656 int UT3D_vc_projvcnvc (Vector *vo, Vector *vi, Vector *vz);
1657 void UT3D_vc_projvcpl (Vector *, Plane *, Vector *);
1658 int UT3D_vc_mirvcpl (Vector *vco, Vector *vci, Plane *pln);
1659 int UT3D_vc_mirvcln (Vector *vco, Vector *vci, Line *ln);
1660 void UT3D_vc_travcm3 (Vector *b, Mat_4x3 ma, Vector *a);
1661 void UT3D_vc_travcm4 (Vector *b, Mat_4x4 ma, Vector *a);
1662 
1663 int UT3D_comp2ln (Line *pa1, Line *pa2, double tol);
1664 int UT3D_ln_ck_on_ln (Point*,Point*,Point*,Point*,Point*,Point*,double tol);
1665 int UT3D_ln_ck_parpl (double *dist, Line *ln, Plane *pl, double tol);
1666 void UT3D_ln_6db (Line*, double, double, double, double, double, double);
1667 void UT3D_ln_ptpt (Line *ln1, Point *pta, Point *pte);
1668 void UT3D_ln_2pt2 (Line *ln1, Point2 *pta, Point2 *pte);
1669 int UT3D_ln_int2pl (Line *ln, Plane *pl1, Plane *pl2);
1670 int UT3D_ln_tng_ci_ci (Line *ln1, Circ *ci1, Circ *ci2, int sNr);
1671 int UT3D_ln_parl2ln (Point*, Point*, Point*, Point*, Point*, Point*);
1672 int UT3D_ln_pts_dmax (Line *ln, int np, Point *ptab, double tol);
1673 int UT3D_ln_setLen (Line *lno, Point *pc, double lnlg, Line *lni);
1674 void UT3D_ln_inv (Line *ln1);
1675 void UT3D_ln_ln2 (Line*, Line2*);
1676 
1677 int UT3D_rdc_3pt (double *rdc, Point *pp1, Point *pp2, Point *pp3);
1678 int UT3D_ck_ci180 (Circ *ci1);
1679 int UT3D_ck_ci360 (Circ *ci1);
1680 int UT3D_ci_cip1 (Circ *ci1, Point *p1);
1681 int UT3D_ci_ptvcr (Circ *ci1, Point *pc, Vector *vz, double rc);
1682 int UT3D_ci_pt2vcr (Circ *ci1, Point *pc, Vector *vz, Vector *vx, double rc);
1683 int UT3D_ci_cip2 (Circ *ci1, Point *p2);
1684 int UT3D_ci_cip3 (Circ *ci1, Point *p1, Point *p2);
1685 int UT3D_ci_ciangr (Circ *ci, double ao2);
1686 void UT3D_ci_setangr (Circ *ci1);
1687 int UT3D_ci_ptptvcangr (Circ *ci,Point *pc,Point *p1,Vector *vz,double ao);
1688 int UT3D_ci_ptptvcrd (Circ *ci, Point *p1,Point *p2,double rd,Vector *vz,
1689  int sr, int iMod);
1690 int UT3D_ci_cipt180 (Circ *ci1, Point *p1);
1691 int UT3D_ci_cipt360 (Circ *ci1, Point *p1);
1692 int UT3D_ci_pcvzpt180 (Circ *ci1,Point *pc,Vector *vz,Point *p1,int dreh);
1693 int UT3D_ptNr_ci (Circ *ci1, double tol);
1694 int UT3D_ci_inv1 (Circ *ci1);
1695 int UT3D_ci_inv2 (Circ *ci1);
1696 int UT3D_ci_inv3 (Circ *ci1);
1698 Circ UT3D_ci_obj2 (ObjG2 *);
1699 Circ UT3D_ci_obj (ObjG *ci_in);
1700 int UT3D_ci_ptvcrd (Circ *ci, Point *ps, Vector *vs, double rd,
1701  Vector *vz, double a1);
1702 int UT3D_ci_2ptvcrd (Circ *cia,Point *pp1,Point *pp2,Vector *vz,double rdc);
1703 int UT3D_ci_3pt (Circ *cpo, Point *pp1, Point *pp2, Point *pp3);
1704 int UT3D_ci_ptptrd (Circ ca[], Point *pt1, Point *pt2, double radi);
1705 int UT3D_ci_lnptrd (Circ ca[], Line *ln1,Point *pt1,Vector *vz,double rdc);
1706 int UT3D_ci_ciptrd (Circ ca[], Circ *ci1, Point *pt1, double rdc);
1707 int UT3D_ci_2lnrd (Circ ca[], Line *ln1, Line *ln2, double rdc, int);
1708 int UT3D_ci_cicird (Circ ca[], Circ *ci1, Circ *ci2, double rdc, int);
1709 int UT3D_ci_lncird (Circ ca[], Line *ln1, Circ *ci1, double rdc, int);
1710 int UT3D_ci_intplsph (Circ *cio, Plane *pli, Sphere *spi);
1711 int UT3D_ci_ptrd2vc2angr (Circ *ci, Point *pc, double rd,
1712  Vector *vz, Vector *vx,
1713  double a1, double a2);
1714 int UT3D_ci_ptvcpt2angr (Circ *ci,
1715  Point *pc, Point *p1, Vector *vz,
1716  double a1, double a2);
1717 
1718 // source ../ut/ut_elli.c
1719 int UT3D_ck_el360 (CurvElli *el1);
1720 int UT3D_el_elpt180 (CurvElli *el1, Point *p1);
1721 double UT3D_angr_elpt (Point *pti,Point *ptc,Vector *va,Vector *vb);
1722 int UT2D_pt_elangd (Point2 *pto, double lx, double ly, double angr);
1723 int UT3D_pt_elangd (Point *pto,Point *ptc,Vector *va,Vector *vb,double angr);
1724 int UT3D_el_pt2vc2a (CurvElli *el, Point *ptc, Vector *vcx, Vector *vcy,
1725  double a1, double a2, int idir);
1726 int UT3D_el_projcipl (CurvElli *el, Plane *pl, Circ *ci);
1727 int UT3D_el_projelpl (CurvElli *elo, Plane *pl, CurvElli *eli);
1728 int UT3D_el_elcoe(CurvElli *,polcoeff_d5 *,Point2 *pa,Point2 *pe,double zt);
1730 
1731 
1732 int UT3D_pta_ck_planar (int pNr, Point *pTab, Point *pPln, Vector *vc);
1733 int UT3D_rMin_pta (double *rMin, int pNr, Point *pTab);
1734 int UT3D_sr_polc (int ptNr, Point *pa, Vector *vcn, int plMain);
1735 int UT3D_pta_dbo (Point **pTab, int *pNr, int typ, long ind, double tol);
1736 // Curv UT3D_cv_obj2 (ObjG2 *);
1737 void UT3D_cv_ln (Point *cv, int *ptAnz, Point *p1, Point *p2);
1738 int UT3D_npt_ci (Point *pa, int pNr, Circ *ci1);
1739 void UT3D_cv_ci (Point cv[], int *ptanz, Circ *ci1, int ptmax, double tol);
1740 int UT3D_cv_delia (int *pNr, Point *pTab, char *ptStat);
1741 int UT3D_cv3_linear (int *pNr, Point *pTab, double tol);
1742 
1743 // ObjG UT3D_obj_pt (Point*);
1744 ObjG UT3D_obj_ln (Line*);
1745 // ObjG UT3D_obj_ci2 (Circ2 *ci1, double zVal);
1746 ObjG UT3D_obj_ci (Circ*);
1747 // ObjG UT3D_obj_obj2 (ObjG2 *o2);
1748 
1749 int UT3D_bp_2pt (Point *pt1, Point *pt2);
1750 int UT3D_bp_vc_ (Vector*);
1751 int UT3D_bp_vcz (Vector*);
1752 void UT3D_pl_XYZ (Plane *pl1);
1753 int UT3D_pl_bpdb (Plane *plo, int bp, double dbc);
1754 int UT3D_pl_3pt (Plane *, Point *, Point *, Point *);
1755 int UT3D_pl_ptvc (Plane *, Point *, Vector *);
1756 int UT3D_pl_ptvzpl (Plane *pl, Point *pt, Vector *vcz, Plane *basPln);
1757 int UT3D_pl_ptvxpl (Plane *pl, Point *pt, Vector *vcx, Plane *basPln);
1758 int UT3D_pl_pto_vcz_vcx (Plane *pl1, Point *po, Vector *vz, Vector *vx);
1759 void UT3D_pl_pto_vcx_vcz (Plane *pl1, Point *po, Vector *vx, Vector *vz);
1760 void UT3D_pl_pto_vcx_vcy (Plane *pl1, Point *po, Vector *vx, Vector *vy);
1761 void UT3D_pl_pto_vcz_ptx (Plane *pl1, Point *po, Vector *vz, Point *ptx);
1762 int UT3D_pl_ln (Plane *pln, Line *lna);
1763 void UT3D_pl_2ln (Plane *pl1, Line *ln1, Line *ln2);
1764 int UT3D_pl_ci (Plane *pl1, Circ *ci1);
1765 int UT3D_pl_nobj (Plane *pl1, int oNr, ObjGX *oTab);
1766 void UT3D_pl_invert (Plane *pl);
1767 int UT3D_pl_rotpt (Plane *plo, Plane *pli, Point *ptx);
1768 void UT3D_pl_ptpl (Plane *pl, Point *pt1);
1769 int UT3D_pl_plcoe (Plane *pl, polcoeff_d3 *co);
1770 int UT3D_plcoe_pl (polcoeff_d3 *co, Plane *pl);
1771 void UT3D_pl_p (Plane *pl);
1772 
1773 double UT3D_plg_lvTab (double *lvTab, Point *pta, int ptNr);
1774 int UT3D_pta_plg (int *ptNr, Point *pta, CurvPoly *plg);
1775 
1776 
1777 int UT2D_box_ini0 (Point2 *pt1, Point2 *pt2);
1778 int UT2D_box_extend (Point2 *pb1, Point2 *pb2, Point2 *pt1);
1779 int UT2D_rect_pts (Point2 *pmin, Point2 *pmax, int nump, Point2 *ptab);
1780 int UT2D_ckBoxinBox1 (Point2 *p1, Point2 *p2, Point2 *p3, Point2 *p4);
1781 int UT2D_ckBoxinBox2 (Point2 *p1, Point2 *p2,Point2 *p3, Point2 *p4, double tol);
1782 int UT2D_pt_ck_inBox (Point2 *p1, Point2 *p2, Point2 *p);
1783 int UT2D_pt_ck_inBoxTol (Point2 *p1, Point2 *p2, Point2 *p, double tol);
1784 
1785 int UT3D_cv_boxxy (Point* pb1,double x1,double x2,double y1,double y2);
1786 int UT2D_box_ini0 (Point2 *pt1, Point2 *pt2);
1787 int UT3D_box_extend (Point* pb1, Point* pb2, Point* pt1);
1788 int UT3D_box_2pt (Point *pb1, Point *pb2, Point *pt1, Point *pt2);
1789 int UT3D_box_2pttol (Point *pb1, Point *pb2, Point *pt1, Point *pt2,double tol);
1790 int UT3D_box_pts (Point *pmin, Point *pmax, int nump, Point *ptab);
1791 int UT3D_box_tria (Point *pb1, Point *pb2, Triangle *tr, double tol);
1792 int UT3D_box_addTol (Point *pb1, Point *pb2, double tol);
1793 int UT3D_ck_ptInBox (Point *p1, Point *p2, Point *px);
1794 int UT3D_ckBoxinBox1 (Point *p1, Point *p2, Point *p3, Point *p4);
1795 int UT3D_box_ck_intLn (Line *ln, Point *pmin, Point *pmax, double tol);
1796 int UT3D_box_ck_intpl (Plane *pln, Point *p1, Point *p2, double tol);
1797 int UT3D_rbox_loadxy (Point* pb1,double x1,double x2,double y1,double y2);
1798 int UT3D_ptvc_intbox (Point *pl, Vector *vl, Point *bp1, Point *bp2);
1799 int UT3D_ln_intbox (Line *ln1, Point *bp1, Point *bp2);
1800 
1801 
1802 // void UT3D_tria_fac(Triangle*, Fac3*, Point*);
1803 
1804 int UT3D_m3_inirot_angr (Mat_4x3 ma, Point *pa, Vector *va, double angr);
1805 void UT3D_m3_loadpl (Mat_4x3, Plane *);
1806 void UT3D_m3_load (Mat_4x3, Vector *, Vector *, Vector *);
1807 void UT3D_m3_load_povxvy (Mat_4x3 ma, Point *ori, Vector *vx, Vector *vy);
1808 void UT3D_m3_load_povxvz (Mat_4x3 ma, Point *ori, Vector *vx, Vector *vz);
1809 void UT3D_m3_load_o (Mat_4x3, Point *);
1810 // int UT3D_m3_get (void *out, int mode, Mat_4x3 ma);
1811 // int UT3D_m3_set (Mat_4x3 ma, int mode, void *da);
1813 void UT3D_m3_multm3 (Mat_4x3 m3, Mat_4x3 m1, Mat_4x3 m2);
1814 int UT3D_m3_tram3m3 (Mat_4x3 m3, Mat_4x3 m1, Mat_4x3 m2);
1815 
1816 void UT3D_m4_init (Mat_4x4 ma);
1817 void UT3D_m4_init_ori (Mat_4x4 ma, double px, double py, double pz);
1818 void UT3D_m4_init_rot (Mat_4x4 ma, double angle, Vector *axis);
1819 void UT3D_m4_loadpl (Mat_4x4 m1, Plane *pl1);
1820 void UT3D_m4_load_o (Mat_4x4 ma, Point *ori);
1821 void UT3D_m4_addrot (Mat_4x4 mo, Mat_4x4 ma, Mat_4x4 mb);
1822 void UT3D_m4_addtra (Mat_4x4 ma, double px, double py, double pz );
1823 
1824 double UT3D_sbs_ck_planar (SurBSpl *su1);
1825 double UT3D_sru_ck_planar (ObjGX *ru1);
1826 
1827 
1828 //----------------------------------------------------------------
1829 // ../ut/ut_transform
1830 // Vector UTRA_vc_abs2rel__ (Vector *vcAbs);
1831 // Vector UTRA_vc_rel2abs__ (Vector *vcRel);
1832 // Point UTRA_pt_rel2abs__ (Point *pRel);
1833 // Point UTRA_pt_abs2rel__ (Point *pAbs);
1834 
1835 
1836 //================================================================
1837 // inline functions
1838 
1840 #define UT_RADIANS(angDeg) ((angDeg)*(RAD_1))
1841 #define UT_DEGREES(angRad) ((angRad)/(RAD_1))
1843 
1844 #define UT3D_vc_crossprod2vc UT3D_vc_perp2vc
1845 #define UT2D_acos_innerprod2vc UT2D_acos_2vc
1846 
1847 
1848 //----------------------------------------------------------------
1850 #define UT2D_lenq_vc(vc) ((vc)->dx*(vc)->dx + (vc)->dy*(vc)->dy)
1851 
1853 #define UT2D_len_vc(vc) (sqrt((vc)->dx*(vc)->dx + (vc)->dy*(vc)->dy))
1854 
1856 #define UT2D_lenS_2pt(p1,p2) (fabs((p2)->x - (p1)->x) + fabs((p2)->y - (p1)->y))
1857 
1859 #define UT2D_lenS_vc(vc1) (fabs((vc1)->dx) + fabs((vc1)->dy))
1860 
1862 #define UT2D_lenq_2pt(lq,p1,p2){\
1863  double _dx = (p2)->x - (p1)->x;\
1864  double _dy = (p2)->y - (p1)->y;\
1865  *(lq) = _dx * _dx + _dy * _dy;}
1866 
1872 #define UT2D_comp2pt(p1,p2,tol)\
1873  ((fabs((p2)->x - (p1)->x) < tol) &&\
1874  (fabs((p2)->y - (p1)->y) < tol))
1875 
1880 #define UT2D_swap2pt(p1,p2){\
1881  Point2 p3 = *(p1); *(p1) = *(p2); *(p2) = p3;}
1882 
1884 #define UT2D_pt_2db(pt2,dx,dy){\
1885  (pt2)->x = dx; (pt2)->y = dy;}
1886 
1888 #define UT2D_pt_pt3(pt3)\
1889  (*(Point2*)pt3)
1890 
1892 #define UT2D_pt_pt(pt2,pt3) (memcpy((pt2), (pt3), sizeof(Point2)))
1893 
1895 #define UT2D_pt_pt3bp(p2o,p3i,bpi) {\
1896  if (bpi == BCKPLN_XY) {(p2o)->x = (p3i)->x; (p2o)->y = (p3i)->y;} \
1897  else if(bpi == BCKPLN_XZ) {(p2o)->x = (p3i)->x; (p2o)->y = (p3i)->z;} \
1898  else if(bpi == BCKPLN_YZ) {(p2o)->x = (p3i)->y; (p2o)->y = (p3i)->z;}}
1899 
1901 #define UT2D_pt_addpt(po,p1){\
1902  (po)->x = (po)->x + (p1)->x;\
1903  (po)->y = (po)->y + (p1)->y;}
1904 
1906 #define UT2D_pt_sub_pt(po,p1,p2){\
1907  (po)->x = (p1)->x - (p2)->x;\
1908  (po)->y = (p1)->y - (p2)->y;}
1909 
1911 #define UT2D_pt_opp2pt(po,p1,p2){\
1912  (po)->x = (p1)->x - ((p2)->x - (p1)->x);\
1913  (po)->y = (p1)->y - ((p2)->y - (p1)->y);}
1914 
1916 #define UT2D_pt_mid2pt(po,p1,p2){\
1917  (po)->x = ((p1)->x + (p2)->x) / 2.0;\
1918  (po)->y = ((p1)->y + (p2)->y) / 2.0;}
1919 
1921 #define UT2D_pt_traptvc(po,pi,vc){\
1922  (po)->x = (pi)->x + (vc)->dx;\
1923  (po)->y = (pi)->y + (vc)->dy;}
1924 
1926 #define UT3D_pt_multvc(po,pi,vi,d){\
1927  (po)->x = (vi)->dx * (d) + (pi)->x;\
1928  (po)->y = (vi)->dy * (d) + (pi)->y;\
1929  (po)->z = (vi)->dy * (d) + (pi)->z;}
1930 
1931 //----------------------------------------------------------------
1950 #define UT2D_slen_vc_vcNo UT2D_skp_2vc
1951 #define UT2D_acos_2vc UT2D_skp_2vc
1953 
1954 #define UT2D_skp_2vc(v1,v2)\
1955  ((v1)->dx * (v2)->dx + (v1)->dy * (v2)->dy)
1956 
1957 //----------------------------------------------------------------
1961 // see UT2D_sid_2vc__ (test if v2 is CCW (pos) or CW (neg) from v1)
1962 // #define UT2D_crossprod_2vc UT2D_sar_2vc
1963 #define UT2D_sar_2vc(v1,v2)\
1964  ((v1)->dx * (v2)->dy - (v1)->dy * (v2)->dx)
1965 
1966 //----------------------------------------------------------------
1968 #define UT2D_acos_vc2pt UT2D_skp_vc2pt
1969 #define UT2D_skp_vc2pt(v1,p1,p2)\
1970  ((v1)->dx * ((p2)->x - (p1)->x) +\
1971  (v1)->dy * ((p2)->y - (p1)->y))
1972 
1974 void UT2D_vc_pt (Vector2*, Point2*);
1975 #define UT2D_vc_pt(vc,pt) (memcpy((vc), (pt), sizeof(Point2)))
1976 
1978 #define UT2D_vc_vc3(vc2,vc3)\
1979  (memcpy((vc2), (vc3), sizeof(Vector2)))
1980 
1982 #define UT2D_vc_2db(vc,dx,dy){\
1983  (vc)->dx = (dx);\
1984  (vc)->dy = (dy);}
1985 
1987 #define UT2D_vc_invert(vo,vi){\
1988  (vo)->dx = -(vi)->dx;\
1989  (vo)->dy = -(vi)->dy;}
1990 
1992 #define UT2D_vc_add2vc(v3,v1,v2){\
1993  (v3)->dx = (v1)->dx + (v2)->dx;\
1994  (v3)->dy = (v1)->dy + (v2)->dy;}
1995 
1997 #define UT2D_vc_sub2vc(v3,v1,v2){\
1998  (v3)->dx = (v1)->dx - (v2)->dx;\
1999  (v3)->dy = (v1)->dy - (v2)->dy;}
2000 
2001 void UT2D_vc_div_d (Vector2*, Vector2*, double);
2003 #define UT2D_vc_div_d(vo,vi,d){\
2004  (vo)->dx = (vi)->dx / (d);\
2005  (vo)->dy = (vi)->dy / (d);}
2006 
2008 #define UT2D_vc_multvc(vo,vi,d){\
2009  (vo)->dx = (vi)->dx * (d);\
2010  (vo)->dy = (vi)->dy * (d);}
2011 
2013 #define UT2D_vc_perpvc(vo,vi){\
2014  double _dx = (vi)->dx; (vo)->dx = -(vi)->dy; (vo)->dy = _dx;}
2015 
2016 
2021 void UT2D_vcPerpAppr_vc_len (Vector2 *vco, Vector2 *vci, double *len);
2022 #define UT2D_vcPerpAppr_vc_len(vco,vci,len){\
2023  if(fabs((vci)->dx) > fabs((vci)->dy))\
2024  {(vco)->dx = 0.; (vco)->dy = ((vci)->dx > 0.) ? *len : -*len;}\
2025  else\
2026  {(vco)->dy = 0.; (vco)->dx = ((vci)->dy > 0.) ? -*len : *len;}}
2027 
2028 
2030 #define UT2D_vc_perp2pt(vo,p1,p2){\
2031  (vo)->dx = (p1)->y - (p2)->y;\
2032  (vo)->dy = (p2)->x - (p1)->x;}
2033 
2035 #define UT2D_vc_angr(vc,angr){\
2036  (vc)->dx = cos(angr);\
2037  (vc)->dy = sin(angr);}
2038 
2040 #define UT2D_vc_vc3bp(v2o,v3i,bpi) {\
2041  if (bpi == BCKPLN_XY) {(v2o)->dx = (v3i)->dx; (v2o)->dy = (v3i)->dy;} \
2042  else if(bpi == BCKPLN_XZ) {(v2o)->dx = (v3i)->dx; (v2o)->dy = (v3i)->dz;} \
2043  else if(bpi == BCKPLN_YZ) {(v2o)->dx = (v3i)->dy; (v2o)->dy = (v3i)->dz;}}
2044 
2046 #define UT2D_vc_2pt(vc,p1,p2){\
2047  (vc)->dx = (p2)->x - (p1)->x;\
2048  (vc)->dy = (p2)->y - (p1)->y;;}
2049 
2051 #define UT2D_vc_ln(vc,ln){\
2052  (vc)->dx = (ln)->p2.x - (ln)->p1.x;\
2053  (vc)->dy = (ln)->p2.y - (ln)->p1.y;}
2054 
2055 
2056 //----------------------------------------------------------------
2057 
2058 // UT2D_ln_ptpt 2D-Line from 2 2D-points
2059 #define UT2D_ln_ptpt(ln1,pt1,pt2){\
2060  (ln1)->p1 = *(pt1);\
2061  (ln1)->p2 = *(pt2);}
2062 
2064 #define UT2D_ln_ptvc(ln,pt,vc){\
2065  (ln)->p1 = *(pt);\
2066  (ln)->p2.x = (pt)->x + (vc)->dx;\
2067  (ln)->p2.y = (pt)->y + (vc)->dy;}
2068 
2070 #define UT2D_ln_ln3(ln2,ln3){\
2071  (ln2)->p1.x = (ln3)->p1.x;\
2072  (ln2)->p1.y = (ln3)->p1.y;\
2073  (ln2)->p2.x = (ln3)->p2.x;\
2074  (ln2)->p2.y = (ln3)->p2.y;}
2075 
2077 #define UT2D_len_cia(radius, ango) (fabs((radius)*(ango)))
2078 
2080 #define UT2D_ln_inv(ln){\
2081  Point2 _pt = (ln)->p1; (ln)->p1 = (ln)->p2; (ln)->p2 = _pt;}
2082 
2083 /*
2084 // UT2D_ci_ci3 2D-Circ = 3D-Circ
2085 #define UT2D_ci_ci3(ci2,ci3){\
2086  (ci2)->p1.x = (ci3)->p1.x;\
2087  (ci2)->p1.y = (ci3)->p1.y;\
2088  (ci2)->p2.x = (ci3)->p2.x;\
2089  (ci2)->p2.y = (ci3)->p2.y;\
2090  (ci2)->pc.x = (ci3)->pc.x;\
2091  (ci2)->pc.y = (ci3)->pc.y;\
2092  (ci2)->rad = (ci3)->rad;\
2093  (ci2)->ango = (ci3)->ango;}
2094 */
2095 
2096 
2097 //----------------------------------------------------------------
2099 #define UT3D_lenq_vc(vc)\
2100  ((vc)->dx*(vc)->dx + (vc)->dy*(vc)->dy + (vc)->dz*(vc)->dz)
2101 
2103 #define UT3D_len_vc(vc)\
2104  (sqrt((vc)->dx*(vc)->dx + (vc)->dy*(vc)->dy + (vc)->dz*(vc)->dz))
2105 
2120 // skp mit sich selbst = Laenge * Laenge
2121 #define UT3D_skp_2vc(v1,v2)\
2122  ((v1)->dx*(v2)->dx + (v1)->dy*(v2)->dy + (v1)->dz*(v2)->dz)
2123 
2124 #define UT3D_skp_2ptvc(p1,p2,v1)\
2125  ((v1)->dx * ((p2)->x - (p1)->x) +\
2126  (v1)->dy * ((p2)->y - (p1)->y) +\
2127  (v1)->dz * ((p2)->z - (p1)->z))
2128 
2130 #define UT3D_acos_2vc UT3D_skp_2vc
2131 #define UT3D_acos_vc2pt UT3D_skp_2ptvc
2132 
2133 
2134 //----------------------------------------------------------------
2136 #define UT3D_pt_NEW {UT_VAL_MAX, 0., 0.}
2137 
2139 #define UT3D_pt_setFree(obj) (obj)->x = UT_VAL_MAX
2140 
2146 #define UT3D_pt_isFree(obj) ((obj)->x == UT_VAL_MAX)
2147 
2148 
2149 
2151 #define UT3D_pt_ptz(pt3,pt2,zVal){\
2152  memcpy((pt3), (pt2), sizeof(Point)); (pt3)->z = (zVal);}
2153 
2155 #define UT3D_pt_multpt(po,pi,d){\
2156  (po)->x = (pi)->x * (d);\
2157  (po)->y = (pi)->y * (d);\
2158  (po)->z = (pi)->z * (d);}
2159 
2164 #define UT3D_pt_LinComb2Pts(po,a1,p1,a2,p2){\
2165  (po)->x = a1 * (p1)->x + a2 * (p2)->x;\
2166  (po)->y = a1 * (p1)->y + a2 * (p2)->y;\
2167  (po)->z = a1 * (p1)->z + a2 * (p2)->z;}
2168 
2170 #define UT3D_pt_addpt(po,p1){\
2171  (po)->x += (p1)->x;\
2172  (po)->y += (p1)->y;\
2173  (po)->z += (p1)->z;}
2174 
2176 #define UT3D_pt_add_pt2(po,p1){\
2177  (po)->x += (p1)->x;\
2178  (po)->y += (p1)->y;}
2179 
2181 #define UT3D_pt_add_vc__(pt,vc){\
2182  (pt)->x += (vc)->dx;\
2183  (pt)->y += (vc)->dy;\
2184  (pt)->z += (vc)->dz;}
2185 
2187 #define UT3D_pt_add_vc_rev(pt,vc){\
2188  (pt)->x -= (vc)->dx;\
2189  (pt)->y -= (vc)->dy;\
2190  (pt)->z -= (vc)->dz;}
2191 
2193 #define UT3D_pt_add_vc_par(pt,vc,lpar){\
2194  (pt)->x += (vc)->dx * lpar;\
2195  (pt)->y += (vc)->dy * lpar;\
2196  (pt)->z += (vc)->dz * lpar;}
2197 
2201 #define UT3D_pt_add_3vc_3par(pt,v1,v2,v3,lp1,lp2,lp3){\
2202  (pt)->x += (v1)->dx * lp1 + (v2)->dx * lp2 + (v3)->dx * lp3;\
2203  (pt)->y += (v1)->dy * lp1 + (v2)->dy * lp2 + (v3)->dy * lp3;\
2204  (pt)->z += (v1)->dz * lp1 + (v2)->dz * lp2 + (v3)->dz * lp3;}
2205 
2208 #define UT3D_pt_add2pt(po,p1,p2){\
2209  (po)->x = (p1)->x + (p2)->x;\
2210  (po)->y = (p1)->y + (p2)->y;\
2211  (po)->z = (p1)->z + (p2)->z;}
2212 
2214 #define UT3D_pt_sub_pt3(pto,pti){\
2215  (pto)->x -= (pti)->x;\
2216  (pto)->y -= (pti)->y;\
2217  (pto)->z -= (pti)->z;}
2218 
2220 #define UT3D_pt_sub_pt2(po,p1,p2){\
2221  (po)->x = (p1)->x - (p2)->x;\
2222  (po)->y = (p1)->y - (p2)->y;}
2223 
2228 #define UT3D_swap2pt(p1,p2){\
2229  Point p3 = *(p1); *(p1) = *(p2); *(p2) = p3;}
2230 
2232 #define UT3D_pt_vc(pt,vc) (memcpy((pt), (vc), sizeof(Point)))
2233 // // p1 = UT3D_pt_vc (&vz);
2234 // #define UT3D_pt_vc__(vc) *((Point*)vc)
2235 
2236 
2238 #define UT3D_pt_tra_pt_dx(po,pi,dx)\
2239  *po = *pi; (po)->x += dx
2240 
2242 #define UT3D_pt_tra_pt_dy(po,pi,dy)\
2243  *po = *pi; (po)->y += dy
2244 
2245 
2247 #define UT3D_pt_traptvc(po,pi,vc){\
2248  (po)->x = (pi)->x + (vc)->dx;\
2249  (po)->y = (pi)->y + (vc)->dy;\
2250  (po)->z = (pi)->z + (vc)->dz;}
2251 
2253 #define UT3D_pt_traptivc(po,pi,vc){\
2254  (po)->x = (pi)->x - (vc)->dx;\
2255  (po)->y = (pi)->y - (vc)->dy;\
2256  (po)->z = (pi)->z - (vc)->dz;}
2257 
2258 
2260 #define UT3D_pt_traptmultvc(po,pi,vc,fac){\
2261  (po)->x = (pi)->x + (vc)->dx * fac; \
2262  (po)->y = (pi)->y + (vc)->dy * fac;\
2263  (po)->z = (pi)->z + (vc)->dz * fac;}
2264 
2265 
2267 #define UT3D_pt_evparptcv(pto,par,ptl,vcl){\
2268  (pto)->x = (ptl)->x + (vcl)->dx * (par);\
2269  (pto)->y = (ptl)->y + (vcl)->dy * (par);\
2270  (pto)->z = (ptl)->z + (vcl)->dz * (par);}
2271 
2272 
2277 #define u3d_LinComb2Pts(po,a1,p1,a2,p2){\
2278  (po)->x = a1 * (p1)->x + a2 * (p2)->x;\
2279  (po)->y = a1 * (p1)->y + a2 * (p2)->y;\
2280  (po)->z = a1 * (p1)->z + a2 * (p2)->z;}
2281 
2282 
2283 
2289 #define UT3D_vc_isFree(obj) (obj)->dx == UT_VAL_MAX
2290 
2291 
2293 #define UT3D_vc_setFree(obj) (obj)->dx = UT_VAL_MAX
2294 
2295 
2297 #define UT3D_vc_vc2(v3o,v2i){\
2298  (v3o)->dx = (v2i)->dx;\
2299  (v3o)->dy = (v2i)->dy;\
2300  (v3o)->dz = UT_DB_NULL;}
2301 
2303 #define UT3D_vc_3db(vc,x,y,z){\
2304  (vc)->dx = (x);\
2305  (vc)->dy = (y);\
2306  (vc)->dz = (z);}
2307 
2309 #define UT3D_vc_pt(vc,pt) (memcpy((vc), (pt), sizeof(Point)))
2310 // // v1 = UT3D_vc_pt (&pt);
2311 // #define UT3D_vc_pt__(pt) *((Vector*)pt)
2312 
2314 void UT3D_vc_pt3db (Vector*, Point*, double, double, double);
2315 #define UT3D_vc_pt3db(vc,p1,px,py,pz) {\
2316  (vc)->dx = (px) - (p1)->x;\
2317  (vc)->dy = (py) - (p1)->y;\
2318  (vc)->dz = (pz) - (p1)->z;}
2319 
2321 #define UT3D_vc_2pt(vc,p1,p2){\
2322  (vc)->dx = (p2)->x - (p1)->x;\
2323  (vc)->dy = (p2)->y - (p1)->y;\
2324  (vc)->dz = (p2)->z - (p1)->z;}
2325 
2327 #define UT3D_vc_perpTria(vn,tri)\
2328  UT3D_vc_perp3pt ((vn),(tri)->pa[0],(tri)->pa[1],(tri)->pa[2])
2329 
2331 #define UT3D_vc_invert(vio,vii){\
2332  (vio)->dx = -(vii)->dx;\
2333  (vio)->dy = -(vii)->dy;\
2334  (vio)->dz = -(vii)->dz;}
2335 
2337 #define UT3D_vc_addvc(vo,vi){\
2338  (vo)->dx += (vi)->dx;\
2339  (vo)->dy += (vi)->dy;\
2340  (vo)->dz += (vi)->dz;}
2341 
2343 #define UT3D_vc_add2vc(v3,v1,v2){\
2344  (v3)->dx = (v1)->dx + (v2)->dx;\
2345  (v3)->dy = (v1)->dy + (v2)->dy;\
2346  (v3)->dz = (v1)->dz + (v2)->dz;}
2347 
2349 #define UT3D_vc_addvc2pt(v3,v1,p1,p2){\
2350  (v3)->dx = (v1)->dx + (p2)->x - (p1)->x;\
2351  (v3)->dy = (v1)->dy + (p2)->y - (p1)->y;\
2352  (v3)->dz = (v1)->dz + (p2)->z - (p1)->z;}
2353 
2355 #define UT3D_vc_add3vc(vo,v1,v2,v3){\
2356  (vo)->dx = (v1)->dx + (v2)->dx + (v3)->dx;\
2357  (vo)->dy = (v1)->dy + (v2)->dy + (v3)->dy;\
2358  (vo)->dz = (v1)->dz + (v2)->dz + (v3)->dz;}
2359 
2361 #define UT3D_vc_sub2vc(v3,v1,v2){\
2362  (v3)->dx = (v1)->dx - (v2)->dx;\
2363  (v3)->dy = (v1)->dy - (v2)->dy;\
2364  (v3)->dz = (v1)->dz - (v2)->dz;}
2365 
2367 void UT3D_vc_div_d (Vector*, Vector*, double);
2368 #define UT3D_vc_div_d(vo,vi,d){\
2369  (vo)->dx = (vi)->dx / (d);\
2370  (vo)->dy = (vi)->dy / (d);\
2371  (vo)->dz = (vi)->dz / (d);}
2372 
2374 #define UT3D_vc_multvc(vo,vi,d){\
2375  (vo)->dx = (vi)->dx * (d);\
2376  (vo)->dy = (vi)->dy * (d);\
2377  (vo)->dz = (vi)->dz * (d);}
2378 
2380 #define UT3D_vc_merge2vc(vo,v1,v2){\
2381  (vo)->dx = ((v1)->dx + (v2)->dx) / 2.;\
2382  (vo)->dy = ((v1)->dy + (v2)->dy) / 2.;\
2383  (vo)->dz = ((v1)->dz + (v2)->dz) / 2.;}
2384 
2385 
2394 int UT3D_comp2pt (Point *, Point *, double);
2395 #define UT3D_comp2pt(p1,p2,tol)\
2396  ((fabs((p2)->x - (p1)->x) < tol) &&\
2397  (fabs((p2)->y - (p1)->y) < tol) &&\
2398  (fabs((p2)->z - (p1)->z) < tol))
2399 
2400 
2408 int UT3D_ck2D_equ_2pt (Point*, Point*, double);
2409 #define UT3D_ck2D_equ_2pt(p1,p2,tol)\
2410  ((fabs((p2)->x - (p1)->x) < tol) &&\
2411  (fabs((p2)->y - (p1)->y) < tol))
2412 
2413 
2415 #define UT3D_ln_inv(ln)\
2416  {Point _pt = (ln)->p1; (ln)->p1 = (ln)->p2; (ln)->p2 = _pt;}
2417 
2419 #define UT3D_ln_ptpt(ln1,pt1,pt2)\
2420  {(ln1)->p1 = *(pt1);\
2421  (ln1)->p2 = *(pt2);}
2422 
2424 #define UT3D_ln_ptvc(ln,pt,vc)\
2425  {(ln)->p1 = *(pt);\
2426  (ln)->p2.x = (pt)->x + (vc)->dx;\
2427  (ln)->p2.y = (pt)->y + (vc)->dy;\
2428  (ln)->p2.z = (pt)->z + (vc)->dz;}
2429 
2431 #define UT3D_ln_ln2(ln3,ln2)\
2432  {(ln3)->p1.x = (ln2)->p1.x;\
2433  (ln3)->p1.y = (ln2)->p1.y;\
2434  (ln3)->p1.z = UT_DB_NULL;\
2435  (ln3)->p2.x = (ln2)->p2.x;\
2436  (ln3)->p2.y = (ln2)->p2.y;\
2437  (ln3)->p2.z = UT_DB_NULL;}
2438 
2439 
2440 //----------------------------------------------------------------
2441 /*
2442 // ut_tria
2443 
2448 #define UT3D_ck_triaOrientI(i0,i1)\
2449  (((((i0)==0)&&((i1)==1))||(((i0)==1)&&((i1)==2))||(((i0)==2)&&((i1)==0))) ? CCW : CW)
2450 
2455 #define UT3D_ck_triaOrientV(i0,i1)\
2456  (((((i0)==1)&&((i1)==2))||(((i0)==2)&&((i1)==4))||(((i0)==4)&&((i1)==1))) ? CCW : CW)
2457 
2461 #define UT3D_ind3Tria_2ind(i1,i2) (IABS((i1)+(i2)-3))
2462 
2464 #define UT3D_tria_fac(tri,fac,pTab){\
2465  (tri)->pa[0] = &(pTab)[(fac)->i1];\
2466  (tri)->pa[1] = &(pTab)[(fac)->i2];\
2467  (tri)->pa[2] = &(pTab)[(fac)->i3];}
2468 */
2469 
2470 
2471 
2472 //----------------------------------------------------------------
2473 void ODB_set_odb (ObjDB *odb, int oTyp, long oDbi);
2474 #define ODB_set_odb(odb,oTyp,oDbi){\
2475  (odb)->dbInd = (oDbi);\
2476  (odb)->dlInd = 0L;\
2477  (odb)->typ = (oTyp);\
2478  (odb)->stat = 0;}
2479 
2480 
2481 
2482 
2483 //----------------------------------------------------------------
2485 #define TYP_IS_DBO(typ) ((typ>Typ_Error)&&(typ<Typ_Val))
2486 
2488 #define TYP_IS_CV(typ) ((typ>=Typ_CV)&&(typ<Typ_PLN))
2489 
2491 #define TYP_IS_OPM(typ) ((typ>=TYP_OpmPlus)&&(typ<Typ_FcmSQRT))
2492 
2494 #define TYP_IS_GEOMPAR(typ) ((typ>=Typ_Val)&&(typ<Typ_Typ))
2495 
2497 #define TYP_IS_FCM(typ) ((typ>=Typ_FcmSQRT)&&(typ<310))
2498 
2500 #define TYP_IS_MOD(typ) ((typ>=Typ_modif)&&(typ<TYP_FuncInit)||\
2501  (typ>=Typ_FncVAR1)&&(typ<Typ_EOT))
2502 
2503 
2504 //----------------------------------------------------------------
2506 #define TYP_IS_SELGRP(typ) ((typ>=Typ_goGeom)&&(typ<Typ_FncVAR1))
2507 // #define TYP_IS_SELGRP(typ) ((typ>=Typ_goGeom)&&(typ<Typ_FncVAR1)||\
2508  // (typ==Typ_lFig))
2509 
2510 // see also DL_typ_is_visTyp
2511 
2512 // EOF
int UT3D_pt_intptvcypln(Point *pti, Point *ptl, Point *ptpl, Vector *vcpl)
Definition: ut_geo3d.c:1770
char typ
Definition: ut_geo.h:367
int UT2D_2pt_intciptvc(Point2 *, Point2 *, Point2 *, double, Point2 *, Vector2 *)
Definition: ut_geo2d.c:4372
int typ
Definition: xa_tra.c:151
int UT3D_pt_intplnci(Point pa[], Plane *pl1, Circ *ci1, int ciLim)
Definition: ut_geo3d.c:17841
int UT3D_pt_ck_inCirc(Circ *ci1, Point *pt1, double tol)
Definition: ut_geo3d.c:7221
int UT2D_solvtri_abc(double *, double *, double, double, double)
Definition: ut_geo2d.c:1074
torus; Typ_TOR
Definition: ut_geo.h:876
int UT2D_pt_int4pt(Point2 *, double *, double *, double *, Point2 *, Point2 *, Point2 *, Point2 *)
Definition: ut_geo2d.c:3653
long ind
Definition: ut_geo.h:961
#define UT2D_vcPerpAppr_vc_len(vco, vci, len)
Definition: ut_geo.h:2022
char uu
Definition: ut_geo.h:895
double v1
Definition: ut_geo.h:496
int UT3D_ln_setLen(Line *lno, Point *pc, double lnlg, Line *lni)
Definition: ut_geo3d.c:17752
void UT2D_pt_traptvclen(Point2 *, Point2 *, Vector2 *, double)
Definition: ut_geo2d.c:3017
int UT2D_pt_ck_onLine(Point2 *po, Point2 *p1, Point2 *p2, Point2 *p3, double tol)
Definition: ut_geo2d.c:7472
3D-symbol; Typ_SymRef
Definition: ut_geo.h:917
int UT3D_pt_int2ln(Point *, Point *, double *, Line *, Line *)
Definition: ut_geo3d.c:18865
int UT3D_2angr_vc(double *az, double *ay, Vector *vc1)
Definition: ut_geo3d.c:812
int UT3D_minLen_4pt(double *, Point *, Point *, Point *, Point *)
Definition: ut_geo3d.c:4810
void UT2D_vc_rotangr(Vector2 *, Vector2 *, double)
Definition: ut_geo2d.c:5439
int UT3D_ci_2lnrd(Circ ca[], Line *ln1, Line *ln2, double rdc, int)
Definition: ut_geo3d.c:3422
double UT_DISP_cv
max deviation from curve (distance analyticalCurve -&gt; displayPolygon)
Definition: ut_tol_const.h:59
int UT3D_vc_perp3pt(Vector *vp, Point *ptc, Point *ptx, Point *pty)
Definition: ut_geo3d.c:10776
DisplayListRecord.
Definition: ut_geo.h:990
double UT2D_angr_ciSec(double hc, double radc)
Definition: ut_geo2d.c:5649
#define UT2D_swap2pt(p1, p2)
UT2D_swap2pt swap 2 2D-points.
Definition: ut_geo.h:1880
#define UT_RADIANS(angDeg)
UT_RADIANS radians from degrees.
Definition: ut_geo.h:1840
Clothoid curve Typ_CVCLOT ../ut/cvClot.c.
Definition: ut_geo.h:575
int UT3D_vc_rotvcvcangr(Vector *vo, Vector *va, Vector *vi, double angr)
Definition: ut_geo3d.c:11495
void UT3D_ln_2pt2(Line *ln1, Point2 *pta, Point2 *pte)
Definition: ut_geo3d.c:12250
int UT2D_pt_cknear_npt(Point2 *p0, Point2 *ptTab, int ptNr)
Definition: ut_geo2d.c:8114
void ODB_set_odb(ObjDB *odb, int oTyp, long oDbi)
double f
Definition: ut_geo.h:160
double UT_TOL_pt
identical Points-tolerence
Definition: ut_tol_const.h:50
char typi
Definition: ut_geo.h:227
void UT2D_cv_ci360(Point2 *cv, int ptNr, double rd, Point2 *ptCen)
Definition: ut_geo2d.c:6815
int UT3D_pt_ck_npt(Point *p0, Point *pTab, int pNr, double tol)
Definition: ut_geo3d.c:5796
int = short + short
Definition: ut_geo.h:141
int UT3D_lenq_PtLn(double *lenq, Point *p, Point *p1, Point *p2)
Definition: ut_geo3d.c:4686
void UT3D_pt_trapt2pt(Point *po, Point *pi, Point *p1, Point *p2)
Definition: ut_geo3d.c:7530
3D-weighted-point, Typ_WPT
Definition: ut_geo.h:200
UINT_32 iatt
Definition: ut_geo.h:962
int UT3D_minLen_3pt(double *, Point *, Point *, Point *)
Definition: ut_geo3d.c:4752
int UT3D_box_tria(Point *pb1, Point *pb2, Triangle *tr, double tol)
Definition: ut_box.c:627
int UT3D_cv3_linear(int *pNr, Point *pTab, double tol)
Definition: ut_geo3d.c:3976
long lNr
Definition: ut_geo.h:990
int UT2D_ci_2vc2ptrd(Point2 *, Point2 *, Vector2 *, Point2 *, Vector2 *, double)
short typ
Definition: ut_geo.h:827
long ID2
Definition: ut_geo.h:463
void UT3D_pt_txt(Point *, char *)
Definition: ut_geo3d.c:9925
#define UT2D_vc_2pt(vc, p1, p2)
UT2D_vc_2pt 2D-Vector = 2D-Point -&gt; 2D-Point.
Definition: ut_geo.h:2046
char * txt
Definition: ut_geo.h:748
void UT3D_m4_loadpl(Mat_4x4 m1, Plane *pl1)
Definition: ut_geo3d.c:16467
#define OBJ_SIZ_MAX
OBJ_SIZ_MAX max. obj-size (for get, copy ..)
Definition: ut_geo.h:124
void UT3D_m4_init_rot(Mat_4x4 ma, double angle, Vector *axis)
Definition: ut_geo3d.c:16361
void UT3D_m4_load_o(Mat_4x4 ma, Point *ori)
Definition: ut_geo3d.c:16499
int UT2D_void_obj2(void *memObj, unsigned long *oSiz, ObjG2 *og2)
Definition: ut_geo2d.c:6220
Area: Rat.B-Spline-Surf Typ_SURRBSP.
Definition: ut_geo.h:721
#define UT3D_lenq_vc(vc)
UT3D_lenq_vc quadr.length of 3D-vector.
Definition: ut_geo.h:2099
3D-plane, Typ_PLN
Definition: ut_geo.h:637
double UT3D_slen_ptpl(Point *pt, Plane *pl)
Definition: ut_geo3d.c:4578
Typ_ObjTXTSRC type of expression of sourceObject.
Definition: ut_geo.h:276
#define UT3D_len_vc(vc)
UT3D_len_vc length of 3D-vector.
Definition: ut_geo.h:2103
int UT3D_ln_pts_dmax(Line *ln, int np, Point *ptab, double tol)
Definition: ut_geo3d.c:17685
int UT3D_vc_perpvc2pt(Vector *vp, Vector *vx, Point *pc, Point *py)
Definition: ut_geo3d.c:10709
cone; Typ_CON
Definition: ut_geo.h:864
int UT3D_bplen_vc(double *lnv, Vector *vc1)
Definition: ut_geo3d.c:4474
void UT3D_pt_trapt2vc(Point *po, Point *pi, Vector *vc1, Vector *vc2)
Definition: ut_geo3d.c:7419
int UT2D_compPtOnAc(double, double, double, int)
Definition: ut_geo2d.c:5674
Point p2
Definition: ut_geo.h:343
int UT3D_vc_ck_std(Vector *vc1)
Definition: ut_geo3d.c:9808
int UT3D_el_projelpl(CurvElli *elo, Plane *pl, CurvElli *eli)
Definition: ut_elli.c:1628
void UT2D_pt_traptvc2len(Point2 *, Point2 *, Vector2 *, double, double)
Definition: ut_geo2d.c:3113
void UT3D_ci_setangr(Circ *ci1)
Definition: ut_geo3d.c:12552
Point * cpTab
Definition: ut_geo.h:723
void UT2D_vc_mid2vc(Vector2 *, Vector2 *, Vector2 *)
Definition: ut_geo2d.c:5387
int UT2D_sid_ptvc___tol(Point2 *, Point2 *, Vector2 *, double *)
void UT3D_m4_init_ori(Mat_4x4 ma, double px, double py, double pz)
Definition: ut_geo3d.c:16317
char uu2
Definition: ut_geo.h:425
int UT2D_sidPerp_ptvc(Point2 *pt, Point2 *pl, Vector2 *vl)
Definition: ut_geo2d.c:2670
float off
Definition: ut_geo.h:646
unsigned short is1
Definition: ut_geo.h:614
int UT3D_ci_3pt(Circ *cpo, Point *pp1, Point *pp2, Point *pp3)
Definition: ut_geo3d.c:12776
#define UT2D_ln_ptpt(ln1, pt1, pt2)
Definition: ut_geo.h:2059
void UT2D_pt_tra2pt3len(Point2 *, Point2 *, Point2 *, double, double, double)
Definition: ut_geo2d.c:2993
int UT3D_ck_el360(CurvElli *el1)
Definition: ut_elli.c:389
int UT2D_cv_ci(Point2[], int *, Point2 *, Point2 *, Point2 *, int)
Definition: ut_geo2d.c:6945
int UT3D_pt_ck_on_pta(Point *pTab, int ptNr, Point *pt1, double tol)
Definition: ut_geo3d.c:7163
const Vector UT3D_VECTOR_IX
int UT3D_ci_2ptvcrd(Circ *cia, Point *pp1, Point *pp2, Vector *vz, double rdc)
Definition: ut_geo3d.c:12899
int UT3D_ci_pt2vcr(Circ *ci1, Point *pc, Vector *vz, Vector *vx, double rc)
Definition: ut_geo3d.c:13217
double UT2D_crossprod_2vc(Vector2 *, Vector2 *)
int UT3D_rbox_loadxy(Point *pb1, double x1, double x2, double y1, double y2)
double r2
Definition: ut_geo.h:876
#define UT3D_swap2pt(p1, p2)
UT3D_swap2pt swap 2 3D-points.
Definition: ut_geo.h:2228
Definition: ut_geo.h:160
int UT3D_pta_plg(int *ptNr, Point *pta, CurvPoly *plg)
Definition: ut_npt.c:601
int UT2D_rect_pts(Point2 *pmin, Point2 *pmax, int nump, Point2 *ptab)
Definition: ut_box.c:350
double UT_TOL_min2
Definition: ut_tol_const.h:34
double v1V
Definition: ut_geo.h:709
int UT3D_sid_2vc(Vector *v1, Vector *v2)
Definition: ut_geo3d.c:5594
void UT2D_pt_tra3ptlen(Point2 *, Point2 *, Point2 *, Point2 *, double)
Definition: ut_geo2d.c:2922
void UT2D_vc_normalize(Vector2 *, Vector2 *)
Definition: ut_geo2d.c:5341
int UT3D_m3_inirot_angr(Mat_4x3 ma, Point *pa, Vector *va, double angr)
Definition: ut_geo3d.c:15654
double UT3D_lenB_vc(Vector *vc1)
Definition: ut_geo3d.c:4446
static Point pa[PT_MAX]
Definition: tst_gl1.c:108
double b
Definition: ut_geo.h:157
int UT3D_compptpl(Point *, Plane *)
ellipse, Typ_CVELL
Definition: ut_geo.h:456
int UT3D_vc_Zup(Vector *v2, Vector *v1)
Definition: ut_geo3d.c:10571
int UT3D_ipt_cknear_npt(Point *p0, Point *ptTab, int ptNr)
Definition: ut_geo3d.c:6898
void UT2D_m2_init_rot(Mat_3x2 ma, double angle, Point2 *cen)
Definition: ut_geo2d.c:8925
3D-dimension; Typ_Dim3
Definition: ut_geo.h:903
3D-line, Typ_LN
Definition: ut_geo.h:367
#define UT3D_vc_div_d(vo, vi, d)
Definition: ut_geo.h:2368
int UT3D_pl_ln(Plane *pln, Line *lna)
Definition: ut_geo3d.c:14769
Definition: ut_geo.h:157
int UT3D_pt_oppptptvc(Point *po, Point *pi, Point *pl, Vector *vl)
Definition: ut_geo3d.c:7325
double * wTab
Definition: ut_geo.h:722
int UT2D_angr_set(double *angr)
Definition: ut_geo2d.c:638
const double UT_VAL_MAX
Definition: ut_const.h:37
int UT3D_pt_intlnel__(int *np, Point xp[], Line *ln, CurvElli *el)
Definition: ut_elli.c:2237
Vector vz
Definition: ut_geo.h:1004
char mode
Definition: xa_tra.c:152
int UT3D_pt_intptvcply(Point *px, Point *pl, Vector *vl, double ply)
Definition: ut_geo3d.c:1584
int par
Definition: ut_geo.h:845
int UT2D_3len_ptln(double *, double *, double *, Point2 *, Point2 *, Point2 *)
Definition: ut_geo2d.c:1649
void UT3D_pt_3db(Point *, double, double, double)
Definition: ut_geo3d.c:6184
long cvID
Definition: ut_geo.h:686
int UT3D_pt_projptptnvc(Point *po, Point *pi, Point *plo, Vector *plz)
Definition: ut_geo3d.c:8083
int UT3D_pt_ipl_2ptpt2(Point *pi3, Point *p1, Point *p2, Point2 *pi2)
Definition: ut_geo3d.c:8565
3D-circle, Typ_CI
Definition: ut_geo.h:410
#define UT2D_len_cia(radius, ango)
UT2D_len_cia length arc (from rad &amp; angle)
Definition: ut_geo.h:2077
double UT3D_lenB_2pt(Point *p1, Point *p2)
Definition: ut_geo3d.c:4622
int UT2D_ln_pts_dmax(Line2 *ln, int np, Point2 *ptab, double tol)
Definition: ut_geo2d.c:9054
int UT3D_ptNr_ci(Circ *ci1, double tol)
Definition: ut_geo3d.c:12280
void UT3D_pl_pto_vcx_vcz(Plane *pl1, Point *po, Vector *vx, Vector *vz)
Definition: ut_geo3d.c:15131
int siz
Definition: ut_geo.h:591
Definition: ut_geo.h:328
ObjG UT3D_obj_ci(Circ *)
Definition: ut_geo3d.c:3937
int UT2D_pt_intlnx(Point2 *pto, Point2 *lp1, Point2 *lp2, double xVal, double tol)
Definition: ut_geo2d.c:3585
int UT2D_pt_projpt2pt(Point2 *pp, double *len, Point2 *pt, Point2 *p1, Point2 *p2)
Definition: ut_geo2d.c:3285
int UT3D_ci_cip3(Circ *ci1, Point *p1, Point *p2)
Definition: ut_geo3d.c:12509
double UT3D_angr_2vc__(Vector *, Vector *)
Definition: ut_geo3d.c:14311
int UT3D_ci_ptvcrd(Circ *ci, Point *ps, Vector *vs, double rd, Vector *vz, double a1)
Definition: ut_geo3d.c:12714
int UT2D_pt_projptci(Point2 *pp, Point2 *pt, Circ2 *ci1)
Definition: ut_geo2d.c:4323
int UT2D_sid_ptvc____(Point2 *, Point2 *, Vector2 *)
#define UT3D_ck2D_equ_2pt(p1, p2, tol)
Definition: ut_geo.h:2409
#define UT2D_vc_ln(vc, ln)
UT2D_vc_ln 2D-Vector from 2D-Line.
Definition: ut_geo.h:2051
#define UT3D_pt_vc(pt, vc)
UT3D_pt_vc Point = Vector.
Definition: ut_geo.h:2232
int UT3D_pta_ck_planar(int pNr, Point *pTab, Point *pPln, Vector *vc)
Definition: ut_geo3d.c:4266
StandardSurf (planar, conic, toroid) Typ_SUR.
Definition: ut_geo.h:686
Typ_ObjSRC sourceObject.
Definition: ut_geo.h:265
double rad
Definition: ut_geo.h:397
unsigned char use
Definition: ut_geo.h:344
int UT2D_obj_obj3(ObjGX *oo, ObjGX *oi, Memspc *memSeg)
Definition: ut_geo2d.c:5975
#define UT2D_len_vc(vc)
UT2D_len_vc length of 2D-vector.
Definition: ut_geo.h:1853
#define UT3D_pt_tra_pt_dy(po, pi, dy)
UT3D_pt_tra_pt_dy Point = Point + dy.
Definition: ut_geo.h:2242
int UT3D_cv_boxxy(Point *pb1, double x1, double x2, double y1, double y2)
Definition: ut_box.c:950
int UT3D_atan_vcpl(double *kvc, Vector *vci, Plane *pli)
Definition: ut_geo3d.c:992
void UT2D_pt_tra2pt2len(Point2 *, Point2 *, Point2 *, double, double)
Definition: ut_geo2d.c:2954
double * wTab
Definition: ut_geo.h:531
#define UT3D_pt_add_vc_par(pt, vc, lpar)
UT3D_pt_add_vc_par add (vector * lpar) po += (vc * lpar)
Definition: ut_geo.h:2193
#define UT2D_pt_2db(pt2, dx, dy)
UT2D_pt_2db 2D-Point &lt; 2 doubles (x, y)
Definition: ut_geo.h:1884
#define UT2D_lenS_vc(vc1)
UT2D_lenS_vc dx+dy-distance 2D-vector.
Definition: ut_geo.h:1859
void UT2D_pt_rotptangr(Point2 *, Point2 *, Point2 *, double)
Definition: ut_geo2d.c:3172
short us1
Definition: ut_geo.h:615
long siz
Definition: ut_geo.h:801
Vector vz
Definition: ut_geo.h:836
Vector vz
Definition: ut_geo.h:307
double UT3D_len_ci(Circ *ci1)
Definition: ut_geo3d.c:4534
int UT3D_ckBoxinBox1(Point *p1, Point *p2, Point *p3, Point *p4)
Definition: ut_box.c:428
double * val
Definition: ut_geo.h:290
Circ UT3D_ci_ci2(Circ2 *)
Definition: ut_geo3d.c:13247
double UT2D_angr_2ln(Line2 *, Line2 *)
Definition: ut_geo2d.c:1456
int UT3D_vc_mirvcpl(Vector *vco, Vector *vci, Plane *pln)
Definition: ut_geo3d.c:11804
int UT2D_ckBoxinBox2(Point2 *p1, Point2 *p2, Point2 *p3, Point2 *p4, double tol)
Definition: ut_box.c:301
int UT3D_pl_rotpt(Plane *plo, Plane *pli, Point *ptx)
Definition: ut_geo3d.c:15376
int UT2D_pt_int2vc2pt(Point2 *, Point2 *, Vector2 *, Point2 *, Vector2 *)
Definition: ut_geo2d.c:4226
int typ
Definition: ut_geo.h:306
short typ
Definition: ut_geo.h:253
int UT3D_pt_evparci(Point *pto, double lpar, Circ *ci1)
Definition: ut_geo3d.c:9043
Vector vz
Definition: ut_geo.h:637
int UT3D_ln_ck_on_ln(Point *, Point *, Point *, Point *, Point *, Point *, double tol)
Definition: ut_geo3d.c:11968
Definition: ut_geo.h:158
Typ_ObjGX.
Definition: ut_geo.h:242
int UT3D_rdc_3pt(double *rdc, Point *pp1, Point *pp2, Point *pp3)
Definition: ut_geo3d.c:12594
double Mat_4x3[3][4]
Typ_M4x3 size 96.
Definition: ut_geo.h:151
int UT3D_ci_ptptrd(Circ ca[], Point *pt1, Point *pt2, double radi)
Definition: ut_geo3d.c:2835
int UT3D_pt_projptbspl(int *nxp, Point *ptab, double *ttab, CurvBSpl *bspl, Point *pt)
Definition: ut_bspl.c:2268
int UT2D_2parvc_3vc(double *, double *, Vector2 *, Vector2 *, Vector2 *)
Definition: ut_geo2d.c:9120
#define UT2D_skp_vc2pt(v1, p1, p2)
Definition: ut_geo.h:1969
Circ UT3D_ci_obj2(ObjG2 *)
Definition: ut_geo3d.c:13281
Typ_Activ (&quot;I&quot;)
Definition: ut_geo.h:1013
#define UT2D_comp2pt(p1, p2, tol)
UT2D_comp2pt compare 2 points.
Definition: ut_geo.h:1872
double r2
Definition: ut_geo.h:864
int UT3D_pt_intlnpl(Point *, Plane *, Line *)
Definition: ut_geo3d.c:8184
int UT3D_ln_ck_parpl(double *dist, Line *ln, Plane *pl, double tol)
Definition: ut_geo3d.c:12100
int UT3D_vc_projvc2vc(Vector *vo, Vector *vi, Vector *v1, Vector *v2)
Definition: ut_geo3d.c:11673
double UT2D_angr_3ptdr(Point2 *, Point2 *, Point2 *, int)
Definition: ut_geo2d.c:1523
int ptVNr
Definition: ut_geo.h:699
void UT3D_m3_multm3(Mat_4x3 m3, Mat_4x3 m1, Mat_4x3 m2)
Definition: ut_geo3d.c:16147
int UT2D_cv3_linear(int *pNr, Point *pTab, double tol)
Definition: ut_geo2d.c:6271
void UT3D_m4_addrot(Mat_4x4 mo, Mat_4x4 ma, Mat_4x4 mb)
Definition: ut_geo3d.c:16516
dimension; Typ_Dimen
Definition: ut_geo.h:894
Vector vy
Definition: ut_geo.h:796
double UT_TOL_Ang2
tolerance for Angle 0.1 degree
Definition: ut_tol_const.h:39
int UT3D_pt_intptvcplx(Point *px, Point *pl, Vector *vl, double plx)
Definition: ut_geo3d.c:1545
polygonal_representation_of_curve CurvPrcv functions: PRCV
Definition: ut_geo.h:591
#define UT_DEGREES(angRad)
UT_DEGREES degrees from radians.
Definition: ut_geo.h:1842
text or image or tag or label; Typ_ATXT, Typ_Tag
Definition: ut_geo.h:769
color, Typ_Color
Definition: ut_geo.h:736
int UT3D_ipt_ckfar_npt(Point *p0, Point *ptTab, int ptNr)
Definition: ut_geo3d.c:6836
void UT3D_m3_load_o(Mat_4x3, Point *)
Definition: ut_geo3d.c:15866
int UT3D_ck_ci180(Circ *ci1)
Definition: ut_geo3d.c:12328
int UT3D_ln_parl2ln(Point *, Point *, Point *, Point *, Point *, Point *)
Definition: ut_geo3d.c:17511
char stat
Definition: xa_tra.c:152
sphere; Typ_SPH
Definition: ut_geo.h:853
int UT3D_vc_projvcnvc(Vector *vo, Vector *vi, Vector *vz)
Definition: ut_geo3d.c:11703
int UT2D_pt_ck_inplg(Point2 *pTab, int pNr, Point2 *ptx)
Definition: ut_geo2d.c:7612
Rational B-Spline-curve; Typ_CVRBSP.
Definition: ut_geo.h:531
double e
Definition: ut_geo.h:159
double UT3D_angr_vc2vc(Vector *vc1, Vector *vcx, Vector *vcy)
Definition: ut_geo3d.c:595
model reference; Typ_Model
Definition: ut_geo.h:835
int UT3D_vc_ck_parpl(Vector *vci, Plane *pli, double tol)
Definition: ut_geo3d.c:9680
int UT3D_compvc0(Vector *v1, double tol)
Definition: ut_geo3d.c:9364
double UT3D_slenq_projvcvc(Vector *vc1, Vector *vc2)
Definition: ut_geo3d.c:5086
Point2 p2
Definition: ut_geo.h:424
Definition: ut_geo.h:193
#define UT2D_vc_invert(vo, vi)
UT2D_vc_invert 2D-Vector invert (change direction)
Definition: ut_geo.h:1987
Point2 UT2D_pt_obj2(ObjG2 *obj1)
Definition: ut_geo2d.c:6198
int UT2D_slen_nor2vc(double *slen, Vector2 *v1, Vector2 *v2)
Definition: ut_geo2d.c:1928
int UT2D_pt_intptvcy(Point2 *pto, Point2 *ptl, Vector2 *vcl, double yVal)
Definition: ut_geo2d.c:3481
static Point pt1
Definition: DemoPlugin_Dialog.c:85
int UT3D_box_addTol(Point *pb1, Point *pb2, double tol)
Definition: ut_box.c:719
Vector vz
Definition: ut_geo.h:456
Vector stv
Definition: ut_geo.h:575
Typ_polynom_d3 Typ_CVPSP3.
Definition: ut_geo.h:163
int UT2D_srar_polc(double *aro, int ptNr, Point2 *pa)
Definition: ut_geo2d.c:6379
void UT3D_vc_travcm3(Vector *b, Mat_4x3 ma, Vector *a)
Definition: ut_geo3d.c:11860
int UT3D_vc_perppta(Vector *vcn, int pNr, Point *pa)
Definition: ut_geo3d.c:10990
void UT2D_pt_traptangrlen(Point2 *, Point2 *, double, double)
Definition: ut_geo2d.c:3043
Curve: polygon, Typ_CVPOL.
Definition: ut_geo.h:478
int UT2D_ci_ciptvcrd(Point2 *, Point2 *, double, int, Point2 *, Vector2 *, double)
int UT3D_sr_polc(int ptNr, Point *pa, Vector *vcn, int plMain)
Definition: ut_geo3d.c:4215
int UT3D_vc_projvcvc(Vector *v3, Vector *v1, Vector *v2)
Definition: ut_geo3d.c:11605
void UT3D_pt_trapt2vc2len(Point *, Point *, Vector *, double, Vector *, double)
Definition: ut_geo3d.c:7466
int UT3D_pt_intlnci_p(int *np, Point xp[], Line *ln, Circ *ci1)
Definition: ut_geo3d.c:17146
triangle, Typ_Tria
Definition: tessbug1.c:71
void UT3D_pl_invert(Plane *pl)
Definition: ut_geo3d.c:15303
int UT3D_pt_int2pt2vc(Point *ip1, Point *ip2, double *dist, Point *ptu, Vector *vcu, Point *ptv, Vector *vcv)
Definition: ut_geo3d.c:2168
void UT2D_pt_tranorptvclen(Point2 *, Point2 *, Vector2 *, double)
Definition: ut_geo2d.c:3087
int UT3D_pt_intperp2ln(Point *po, Point *p1, Vector *v1, Point *p2, Vector *v2)
Definition: ut_geo3d.c:8500
int UT2D_ptNr_ci(double rdc, double ao, double tol)
Definition: ut_geo2d.c:9176
basic texture description; Typ_TEXB
Definition: ut_geo.h:781
int UT3D_minLen_npt(Point *p0, Point *pa, int pNr)
Definition: ut_geo3d.c:4779
int UT3D_pt_tracirlen(Point *pto, Point *pti, Circ *cii, double clen)
Definition: ut_geo3d.c:7588
void UT3D_pl_pto_vcz_ptx(Plane *pl1, Point *po, Vector *vz, Point *ptx)
Definition: ut_geo3d.c:15267
short typPath
Definition: ut_geo.h:676
const Vector UT3D_VECTOR_NUL
int UT3D_ipt_cknearn_npt(Point *p0, Point *ptTab, int ptNr, int distNr)
Definition: ut_geo3d.c:6938
ObjG UT3D_obj_ln(Line *)
Definition: ut_geo3d.c:3887
short ySiz
Definition: ut_geo.h:782
int UT3D_ptvc_intbox(Point *pl, Vector *vl, Point *bp1, Point *bp2)
Definition: ut_box.c:1020
int UT2D_ci_ptrd(Circ2 *ci, Point2 *ptc, double rdc)
Definition: ut_geo2d.c:8670
int UT3D_ci_cip1(Circ *ci1, Point *p1)
Definition: ut_geo3d.c:12470
double UT2D_angr_ci(Point2 *pa, Point2 *pe, Point2 *pc, double rad_in)
Definition: ut_geo2d.c:2290
#define UT2D_ln_ptvc(ln, pt, vc)
UT2D_ln_ptvc 2D-Line from 2D-point and 2D-vector.
Definition: ut_geo.h:2064
int UT3D_pt_intlnsph(Line *ln1, Point *ps, double rs)
Definition: ut_geo3d.c:16682
double UT_DISP_ln
length of construction-lines
Definition: ut_tol_const.h:62
internal submodel (block); Typ_Ditto
Definition: ut_geo.h:801
int UT3D_ci_lncird(Circ ca[], Line *ln1, Circ *ci1, double rdc, int)
Definition: ut_geo3d.c:3118
#define UT3D_vc_invert(vio, vii)
UT3D_vc_invert invert Vector.
Definition: ut_geo.h:2331
Point po
Definition: ut_geo.h:826
double UT_TOL_min0
Definition: ut_tol_const.h:36
int UT3D_box_pts(Point *pmin, Point *pmax, int nump, Point *ptab)
Definition: ut_box.c:529
int UT3D_elcoe_el(polcoeff_d5 *ig, CurvElli *el)
Definition: ut_elli.c:2136
int UT3D_pt_ck_onel(Point *pt, CurvElli *el)
Definition: ut_elli.c:754
int UT3D_ci_ciptrd(Circ ca[], Circ *ci1, Point *pt1, double rdc)
Definition: ut_geo3d.c:2975
int UT3D_pl_pto_vcz_vcx(Plane *pl1, Point *po, Vector *vz, Vector *vx)
Definition: ut_geo3d.c:15091
int UT3D_m3_invm3(Mat_4x3, Mat_4x3)
Definition: ut_geo3d.c:16017
static int ptNr
Definition: tst_gl1.c:109
double UT2D_angd_invert(double *andi)
Definition: ut_geo2d.c:1317
double UT2D_len_cir(double *angOpe, Point2 *pa, Point2 *pe, Point2 *pc, double rad_in)
Definition: ut_geo2d.c:2439
double v1
Definition: ut_geo.h:613
int UT2D_pt_ck_inCv3(Point *ptx, int pNr, Point *pTab)
Definition: ut_geo2d.c:7980
int UT3D_ptDi_intptvcptvc(Point *ip, double *dist, Point *ptl, Vector *vcl, Point *ptp, Vector *vcp)
Definition: ut_geo3d.c:8233
int UT3D_plcoe_pl(polcoeff_d3 *co, Plane *pl)
Definition: ut_geo3d.c:18008
int UT2D_pt_ck_inAc(Point2 *pt, Circ2 *ci)
Definition: ut_geo2d.c:7868
double UT2D_slen_vc_vc__(Vector2 *vac, Vector2 *vab)
Definition: ut_geo2d.c:1820
atomicObjects Typ_ObjAto ATO_
Definition: ut_geo.h:290
int UT3D_ci_inv1(Circ *ci1)
Definition: ut_geo3d.c:13115
void UT3D_pl_ptpl(Plane *pl, Point *pt1)
Definition: ut_geo3d.c:15409
int UT2D_pt_int2ln(Point2 *, Line2 *, Line2 *)
Definition: ut_geo2d.c:4044
int UT2D_ckvc_in2vc(Vector2 *v1, Vector2 *v2, Vector2 *v3)
Definition: ut_geo2d.c:5086
void UT3D_pl_XYZ(Plane *pl1)
Definition: ut_geo3d.c:14984
#define UT3D_pt_tra_pt_dx(po, pi, dx)
UT3D_pt_tra_pt_dx Point = Point + dx.
Definition: ut_geo.h:2238
Typ_Group DB-Objects Typ_ObjDB.
Definition: ut_geo.h:253
int UT3D_ci_ptvcr(Circ *ci1, Point *pc, Vector *vz, double rc)
Definition: ut_geo3d.c:13187
const double UT_VAL_MIN
Definition: ut_const.h:36
void UT2D_m2_loadtravcm2(Mat_3x2 ma, Vector2 *vx, Vector2 *vy, Vector2 *vt)
Definition: ut_geo2d.c:8890
void UT3D_pt_opp2pt(Point *, Point *, Point *)
Definition: ut_geo3d.c:7297
int UT2D_pt_elangd(Point2 *pto, double lx, double ly, double angr)
Definition: ut_elli.c:629
int UT2D_2slen_2pt_vc__(double *dx, double *dy, Point2 *px, Point2 *pl, Vector2 *vl)
Definition: ut_geo2d.c:2077
#define UT3D_pt_sub_pt2(po, p1, p2)
UT3D_pt_sub_pt2 subtract 2D-point po = p1 - p2.
Definition: ut_geo.h:2220
double UT2D_angr_triri_ab(double, double)
Definition: ut_geo2d.c:1333
int UT3D_pt_intptvcpln(Point *pti, Point *ptl, Vector *vcl, Point *ptpl, Vector *vcpl)
Definition: ut_geo3d.c:8421
void UT2D_2pt_projptci(Point2 *, Point2 *, Point2 *, Point2 *, double)
Definition: ut_geo2d.c:4292
double UT3D_angr_vcpl_tilt(Plane *pl1, Vector *vc1)
Definition: ut_geo3d.c:644
int UT3D_ci_cipt360(Circ *ci1, Point *p1)
Definition: ut_geo3d.c:12443
void UT3D_ln_6db(Line *, double, double, double, double, double, double)
Definition: ut_geo3d.c:12215
char uu1
Definition: ut_geo.h:593
int UT3D_vc_perp4pt(Vector *vp, Point *p1, Point *p2, Point *p3, Point *p4)
Definition: ut_geo3d.c:10808
void UT3D_vc_perp1vc(Vector *vp, Vector *vi)
Definition: ut_geo3d.c:10589
int UT3D_pt_tangptci(Point *po1, Point *po2, Point *pt1, Circ *ci1)
Definition: ut_geo3d.c:8877
#define UT2D_pt_opp2pt(po, p1, p2)
UT2D_pt_opp2pt opposite point (p1 = center)
Definition: ut_geo.h:1911
int UT2D_comp2vc(Vector2 *, Vector2 *, double)
Definition: ut_geo2d.c:4804
int UT3D_pl_3pt(Plane *, Point *, Point *, Point *)
Definition: ut_geo3d.c:14739
int UT2D_2pt_int2ci(Point2 *ip1, Point2 *ip2, Circ2 *ci1, int ci1Mode, Circ2 *ci2, int ci2Mode)
Definition: ut_geo2d.c:4649
grafic text; Typ_GTXT
Definition: ut_geo.h:748
#define UT2D_slen_vc_vcNo
Definition: ut_geo.h:1950
double UT_TOL_PAR
tolerance for parallelism
Definition: ut_tol_const.h:37
Trimmed curve CurvCCV Typ_CVTRM.
Definition: ut_geo.h:613
double UT_TOL_min1
Definition: ut_tol_const.h:35
int UT2D_2pt_intcici(Point2 *, Point2 *, Point2 *, double, Point2 *, double)
Definition: ut_geo2d.c:4462
int UT3D_pt_intptvcsph(Point *pa, Point *pl, Vector *vl, Point *ps, double rs)
Definition: ut_geo3d.c:17960
double UT2D_par_nor_2vc(Vector2 *vc1, Vector2 *vc2)
Definition: ut_geo2d.c:10022
Circ UT3D_ci_obj(ObjG *ci_in)
Definition: ut_geo3d.c:13321
int UT2D_minLenB_4pt(double *dp, Point2 *, Point2 *, Point2 *, Point2 *)
Definition: ut_geo2d.c:7220
char uu2
Definition: ut_geo.h:441
Circ2 UT2D_ci_obj2(ObjG2 *)
Definition: ut_geo2d.c:5758
long ipt
Definition: ut_geo.h:903
polcoeff_d3 z
Definition: ut_geo.h:163
int UT3D_ci_ptptvcangr(Circ *ci, Point *pc, Point *p1, Vector *vz, double ao)
Definition: ut_geo3d.c:12569
#define UT2D_pt_traptvc(po, pi, vc)
UT2D_pt_traptvc 2D Point = Point + Vector.
Definition: ut_geo.h:1921
int UT3D_2pt_oppptvclen(Point *, Point *, Point *, Vector *, double)
Definition: ut_geo3d.c:6806
int UT3D_ptvc_int2pln(Point *pti, Vector *vci, Point *pl1pt, Vector *pl1vz, Point *pl2pt, Vector *pl2vz)
Definition: ut_geo3d.c:14006
double v1
Definition: ut_geo.h:675
double UT2D_angr_angd(double)
Definition: ut_geo2d.c:1275
int UT2D_pt_projptptvc(Point2 *, Point2 *, Point2 *, Vector2 *)
Definition: ut_geo2d.c:3401
#define UT2D_pt_addpt(po, p1)
UT2D_pt_addpt Add two points: po += p1.
Definition: ut_geo.h:1901
void UT3D_m3_load_povxvz(Mat_4x3 ma, Point *ori, Vector *vx, Vector *vz)
Definition: ut_geo3d.c:15926
#define UT3D_vc_pt3db(vc, p1, px, py, pz)
Definition: ut_geo.h:2315
int UT2D_npt_ci(Point2 *pa, int pNr, Circ2 *ci1)
Definition: ut_geo2d.c:6738
char trm
Definition: ut_geo.h:514
int UT3D_stru_dump(int typ, void *data, char *txt,...)
Definition: ut_dump.c:179
int UT2D_sid_3pt(Point2 *pt, Point2 *p1, Point2 *p2)
Definition: ut_geo2d.c:2554
Bezier curve Typ_CVBEZ.
Definition: ut_geo.h:546
int UT2D_pt_int2pt2vc(Point2 *ip, Point2 *pt1, Vector2 *vc1, Point2 *pt2, Vector2 *vc2)
Definition: ut_geo2d.c:4180
char * fnam
Definition: ut_geo.h:781
double UT3D_sru_ck_planar(ObjGX *ru1)
Definition: ut_sru.c:276
double pc
Definition: ut_geo.h:576
2D-circle in centerPosition, Typ_CI2C
Definition: ut_geo.h:397
void UT2D_ln_4db(Line2 *ln2, double xs, double ys, double xe, double ye)
Definition: ut_geo2d.c:4755
int UT3D_pt_ck_ptvc(Point *pt, Point *pl, Vector *vl, double tol)
Definition: ut_geo3d.c:5826
int UT2D_vc_2pt3_bp(Vector2 *vo, Point *p1, Point *p2, int bp)
Definition: ut_geo2d.c:5230
int polNr
Definition: ut_geo.h:173
int UT3D_ci_ptvcpt2angr(Circ *ci, Point *pc, Point *p1, Vector *vz, double a1, double a2)
Definition: ut_geo3d.c:12690
double dy
Definition: ut_geo.h:204
int UT3D_rMin_pta(double *rMin, int pNr, Point *pTab)
Definition: ut_geo3d.c:4319
int UT3D_bp_2pt(Point *pt1, Point *pt2)
Definition: ut_geo3d.c:18122
int UT3D_box_2pt(Point *pb1, Point *pb2, Point *pt1, Point *pt2)
Definition: ut_box.c:577
Point UT3D_pt_pt2(Point2 *)
Definition: ut_geo3d.c:6148
void UT3D_m4_addtra(Mat_4x4 ma, double px, double py, double pz)
Definition: ut_geo3d.c:16562
int UT3D_pt_elangd(Point *pto, Point *ptc, Vector *va, Vector *vb, double angr)
Definition: ut_elli.c:601
int UT1D_ndb_npt_bp(double *da, Point *pa, int pNr, int bp)
Definition: ut_geo2d.c:571
int UT2D_box_ini0(Point2 *pt1, Point2 *pt2)
Definition: ut_box.c:187
void UT3D_vc_perpvcplXY(Vector *, Vector *)
Definition: ut_geo3d.c:10833
int UT3D_pt_rotptptangr(Point *pto, Point *ptc, Point *pti, double *ar)
Definition: ut_geo3d.c:7705
grafic attribute; Typ_G_Att
Definition: ut_geo.h:933
Point * npt
Definition: ut_geo.h:592
double Mat_3x3[3][3]
Typ_M3x3.
Definition: ut_geo.h:150
#define UT3D_pt_add_3vc_3par(pt, v1, v2, v3, lp1, lp2, lp3)
see also UT3D_pt_traptmultvc
Definition: ut_geo.h:2201
int UT3D_cv_delia(int *pNr, Point *pTab, char *ptStat)
Definition: ut_geo3d.c:4045
void UT3D_pt_tra_pt_2vc_2par(Point *, Point *, Vector *, double, Vector *, double)
Definition: ut_geo3d.c:7435
float z
Definition: ut_geo.h:193
#define UT3D_ln_ln2(ln3, ln2)
UT3D_ln_ln2 3D-Line from 2D-Line (Z=0)
Definition: ut_geo.h:2431
Curve: B-spline Typ_CVBSP.
Definition: ut_geo.h:513
void UT3D_m3_load_povxvy(Mat_4x3 ma, Point *ori, Vector *vx, Vector *vy)
Definition: ut_geo3d.c:15884
const double UT_DB_NULL
Definition: ut_const.h:39
void UT3D_pt_traptm3(Point *, Mat_4x3, Point *)
Definition: ut_geo3d.c:9242
double UT2D_ar_3pt(Point2 *p1, Point2 *p2, Point2 *p3)
Definition: ut_geo2d.c:7449
int UT3D_ln_tng_ci_ci(Line *ln1, Circ *ci1, Circ *ci2, int sNr)
Definition: ut_geo3d.c:17272
void UT3D_m3_load(Mat_4x3, Vector *, Vector *, Vector *)
Definition: ut_geo3d.c:15748
int typ
Definition: ut_geo.h:265
int UT3D_vc_bp(Vector *vn, int bp)
Definition: ut_geo3d.c:9994
int UT2D_ckBoxinBox1(Point2 *p1, Point2 *p2, Point2 *p3, Point2 *p4)
Definition: ut_box.c:272
void UT3D_vc_2angr(Vector *, double, double)
Definition: ut_geo3d.c:10145
#define UT3D_vc_pt(vc, pt)
UT3D_vc_pt Vector = Point.
Definition: ut_geo.h:2309
double UT2D_slen_pt_pt_vc__(Point2 *pc, Point2 *pa, Vector2 *vab)
Definition: ut_geo2d.c:2489
double UT2D_angr_2vc(Vector2 *, Vector2 *)
Definition: ut_geo2d.c:1475
int UT2D_m2_invtravcm2(Mat_3x2 im1, Mat_3x2 m1)
Definition: ut_geo2d.c:8791
void UT3D_m3_loadpl(Mat_4x3, Plane *)
Definition: ut_geo3d.c:15971
const Vector2 UT2D_VECTOR_Y
#define UT2D_lenq_2pt(lq, p1, p2)
UT2D_lenq_2pt quadr. distance pt - pt.
Definition: ut_geo.h:1862
const int UT_INT_MAX
Definition: ut_const.h:35
double UT2D_angr_set_2angr(double as, double aa, int sr)
Definition: ut_geo2d.c:601
double v1
Definition: ut_geo.h:478
int UT3D_ci_inv3(Circ *ci1)
Definition: ut_geo3d.c:13171
int UT3D_box_ck_intpl(Plane *pln, Point *p1, Point *p2, double tol)
Definition: ut_box.c:899
double UT3D_par1_ci_pt(Circ *ci1, Point *pt1)
Definition: ut_geo3d.c:18599
int UT3D_vc_ckperp_2vc1(Vector *vc1, Vector *vc2, double tol)
Definition: ut_geo3d.c:9771
void UT2D_vc_angrlen(Vector2 *, double, double)
Definition: ut_geo2d.c:5175
void UT3D_vc_angr(Vector *vc, double angr)
Definition: ut_geo3d.c:10130
void UT3D_pt_projptpl(Point *, Plane *, Point *)
Definition: ut_geo3d.c:8112
double UT2D_len_ciSec(double hSec, double rCi)
Definition: ut_geo2d.c:5609
double UT2D_angr_2angr(double ang1, double ang2, int irot)
Definition: ut_geo2d.c:749
int UT3D_box_ck_intLn(Line *ln, Point *pmin, Point *pmax, double tol)
Definition: ut_box.c:793
Point pMin
Definition: ut_geo.h:1023
#define UT2D_vc_div_d(vo, vi, d)
UT2D_vc_div_d divide vector.
Definition: ut_geo.h:2003
int UT2D_pt_intlny(Point2 *pto, Point2 *lp1, Point2 *lp2, double yVal, double tol)
Definition: ut_geo2d.c:3517
int UT3D_sid_ptpl(Point *pt, Plane *pl)
Definition: ut_geo3d.c:5502
SweepSurf Typ_SURSWP.
Definition: ut_geo.h:675
int UT3D_pt_intlnci__(int *np, Point xp[], Line *ln, Circ *ci1)
Definition: ut_geo3d.c:17174
double v1
Definition: ut_geo.h:660
int typ
Definition: ut_geo.h:917
double UT3D_angr_ci__(Circ *ci1)
Definition: ut_geo3d.c:14601
#define UT3D_ln_ptpt(ln1, pt1, pt2)
UT3D_ln_ptpt Line = Point, Point.
Definition: ut_geo.h:2419
do not use; replaced by ObjGX
Definition: ut_geo.h:462
surface from group of stripes; stripe from 2 polygons.
Definition: ut_geo.h:699
2D-symbol; Typ_SymRef2 Typ_SymB Typ_SymV
Definition: ut_geo.h:911
void UT2D_pt_tracirlen(Point2 *, Point2 *, Point2 *, double, double)
Definition: ut_geo2d.c:3144
int typ
Definition: ut_geo.h:462
double UT3D_plg_lvTab(double *lvTab, Point *pta, int ptNr)
Definition: ut_plg.c:1635
double UT3D_nlen_projvcvc(Vector *vc1, Vector *vc2)
Definition: ut_geo3d.c:5177
double UT3D_angr_ci_p1_pt(Circ *ci1, Point *pti)
Definition: ut_geo3d.c:14484
GraficAttribute.
Definition: ut_geo.h:961
int UT2D_slen_nor_vc_vcNo(double *slen, Vector2 *v1, Vector2 *v2)
Definition: ut_geo2d.c:1982
double UT3D_len_2pt(Point *, Point *)
Definition: ut_geo3d.c:4644
int UT3D_ln_int2pl(Line *ln, Plane *pl1, Plane *pl2)
Definition: ut_geo3d.c:17601
short ySiz
Definition: ut_geo.h:769
Typ_Polynom3.
Definition: ut_geo.h:173
void UT3D_pt_trapt3vc3len(Point *po, Point *pi, Vector *vx, double dx, Vector *vy, double dy, Vector *vz, double dz)
Definition: ut_geo3d.c:7497
void UT3D_vc_rot3angr(Vector *, Vector *, double, double, double)
Definition: ut_geo3d.c:11458
int UT3D_ci_ptrd2vc2angr(Circ *ci, Point *pc, double rd, Vector *vz, Vector *vx, double a1, double a2)
Definition: ut_geo3d.c:12636
3D-point, Typ_PT
Definition: tessbug1.c:66
char uu3
Definition: ut_geo.h:291
int UT2D_sid_2vc__(Vector2 *v1, Vector2 *v2)
Definition: ut_geo2d.c:4857
double rad
Definition: ut_geo.h:853
int UT2D_solvtriri_bc(double *, double *, double, double)
Definition: ut_geo2d.c:930
void UT2D_vc_merge2vc(Vector2 *vm, Vector2 *v1, Vector2 *v2)
Definition: ut_geo2d.c:5425
#define UT2D_lenq_vc(vc)
UT2D_lenq_vc quadr.length of 2D-vector.
Definition: ut_geo.h:1850
int UT3D_parpt_3pt(double *pl, Point *ptx, Point *pl1, Point *pl2)
Definition: ut_geo3d.c:8740
int UT3D_ci_ptptvcrd(Circ *ci, Point *p1, Point *p2, double rd, Vector *vz, int sr, int iMod)
Definition: ut_geo3d.c:12991
#define UT3D_pt_add2pt(po, p1, p2)
see also UT3D_pt_trapt3vc3len
Definition: ut_geo.h:2208
double UT2D_slen_nor_2pt_vcNo(Vector2 *v1, Point2 *p1, Point2 *p2)
Definition: ut_geo2d.c:1889
double UT_TOL_ln
max deviation of a point from a line
Definition: ut_tol_const.h:53
double vb
Definition: ut_geo.h:537
int UT3D_ci_inv2(Circ *ci1)
Definition: ut_geo3d.c:13137
Typ_ModelNode.
Definition: ut_geo.h:845
Point * cpTab
Definition: ut_geo.h:710
const Mat_3x3 UT3D_MAT_3x3
double UT3D_angr_2pl(Plane *pl1, Plane *pl2)
Definition: ut_geo3d.c:715
int UT3D_pl_ci(Plane *pl1, Circ *ci1)
Definition: ut_geo3d.c:14876
double Mat_4x4[4][4]
Typ_M4x4.
Definition: ut_geo.h:152
int UT2D_pt_ck_inBoxTol(Point2 *p1, Point2 *p2, Point2 *p, double tol)
Definition: ut_box.c:461
double rad
Definition: ut_geo.h:387
int UT3D_sid_3pt(Point *p1, Point *p2, Point *p3)
Definition: ut_geo3d.c:5559
int UT3D_ptvc_int2pl(Point *pt, Vector *vc, Plane *pl1, Plane *pl2)
Definition: ut_geo3d.c:13902
int UT3D_vc_setLenLen(Vector *vco, Vector *vci, double newLen, double actLen)
Definition: ut_geo3d.c:11408
#define UT2D_acos_2vc
UT2D_skp_2vc cos of opening angle of 2 vecs (dot=scalarprod) DOT.
Definition: ut_geo.h:1952
quaternion
Definition: ut_geo.h:155
int UT2D_lncoe_ln(double *k, double *d, Line2 *ln)
Definition: ut_geo2d.c:9006
double UT3D_slen_2ptvc(Point *p1, Point *p2, Vector *vc)
Definition: ut_geo3d.c:5283
basic model description; Typ_SubModel
Definition: ut_geo.h:826
int UT3D_pt_ck_mid_2pt(Point *p1, Point *p2, Point *p3, double *tol)
Definition: ut_geo3d.c:7119
const Vector UT3D_VECTOR_IY
int UT3D_parpt_ptvc(double *pl, Point *ptx, Point *pt1, Vector *vc1)
Definition: ut_geo3d.c:8780
#define UT2D_vc_2db(vc, dx, dy)
UT2D_vc_2db 2D-Vector &lt; 2 doubles (x, y)
Definition: ut_geo.h:1982
void UT3D_pt_mid2pt(Point *, Point *, Point *)
Definition: ut_geo3d.c:6200
#define UT2D_vc_vc3(vc2, vc3)
UT2D_vc_vc3 2D-Vector from 3D-Vector.
Definition: ut_geo.h:1978
void UT3D_vc_travcm4(Vector *b, Mat_4x4 ma, Vector *a)
Definition: ut_geo3d.c:11900
3D-vector, Typ_VC
Definition: tst_glDrawElements1.c:58
void UT3D_vc_perp2vc(Vector *, Vector *, Vector *)
Definition: ut_geo3d.c:10637
int UT3D_pt_projptptvc(Point *pp, double *len, double *par, Point *pt, Point *pl, Vector *vl)
Definition: ut_geo3d.c:8003
double UT3D_angr_3vcn_CCW(Vector *vz, Vector *v1, Vector *v2)
Definition: ut_geo3d.c:14414
int UT3D_pt_intcici(Point pa[], Circ *ci1, int ci1Lim, Circ *ci2, int ci2Lim)
Definition: ut_geo3d.c:19015
Rational Bezier curve Typ_CVRBEZ.
Definition: ut_geo.h:557
int UT3D_ci_lnptrd(Circ ca[], Line *ln1, Point *pt1, Vector *vz, double rdc)
int UT2D_2slen_vc_vc__(double *dx, double *dy, Vector2 *vp, Vector2 *vl)
Definition: ut_geo2d.c:2023
int UT3D_ptvc_ox(Point *pta, Vector *vca, ObjGX *oxi)
Definition: ut_geo3d.c:14080
int UT2D_pt_ck_inLine(Point2 *p1, Point2 *p2, Point2 *p3, double tol)
Definition: ut_geo2d.c:7561
3D-vector, Typ_VC3F
Definition: tst_glDrawElements1.c:61
int UT2D_pt_projptln(Point2 *, Point2 *, Line2 *)
Definition: ut_geo2d.c:3461
Point2 p3
Definition: ut_geo.h:894
int UT3D_pt_intplnln(Point *ip, double *dist, Plane *pl, Line *ln)
Definition: ut_geo3d.c:8141
int typ
Definition: ut_geo.h:328
void UT3D_vc_setLength(Vector *, Vector *, double)
Definition: ut_geo3d.c:11372
int UT3D_pt_intptvczpln(Point *pti, Point *ptl, Point *ptpl, Vector *vcpl)
Definition: ut_geo3d.c:1662
int UT3D_pt_rotptm3(Point *p2, Point *p1, Mat_4x3 ma)
Definition: ut_geo3d.c:7681
int UT3D_pl_ptvc(Plane *, Point *, Vector *)
Definition: ut_geo3d.c:15216
DO NOT USE; replaced by ObjGX.
Definition: ut_geo.h:306
int UT2D_ptvc_ck_int2pt(int mode, Point2 *p1s, Vector2 *v1, Point2 *p2s, Point2 *p2e)
Definition: ut_geo2d.c:422
int = char[4] + char
Definition: ut_geo.h:144
const Vector UT3D_VECTOR_IZ
ContourCurve.
Definition: ut_geo.h:342
int UT3D_ci_pcvzpt180(Circ *ci1, Point *pc, Vector *vz, Point *p1, int dreh)
Definition: ut_geo3d.c:13090
double UT2D_angr_perpangr(double *)
Definition: ut_geo2d.c:2421
double UT_TOL_cv
max deviation from curve (distance analyticalCurve -&gt; Curvepoint)
Definition: ut_tol_const.h:56
int UT3D_pl_plcoe(Plane *pl, polcoeff_d3 *co)
Definition: ut_geo3d.c:18050
int UT3D_pl_bpdb(Plane *plo, int bp, double dbc)
Definition: ut_geo3d.c:14689
Typ_Polynom_.
Definition: ut_geo.h:180
void UT2D_vc_2ptlen(Vector2 *, Point2 *, Point2 *, double)
Definition: ut_geo2d.c:5253
char uu2
Definition: ut_geo.h:479
int UT3D_2parvc_3vcbp(double *, double *, int, Vector *, Vector *, Vector *)
Definition: ut_geo3d.c:18512
Typ_Polynom1.
Definition: ut_geo.h:168
int UT3D_pt_ck_inSph(Point *pt, Point *ps, double rs)
Definition: ut_geo3d.c:6119
Curve: B-spline Typ_CVBSP2.
Definition: ut_geo.h:496
2D-vector, Typ_VC2
Definition: ut_geo.h:204
OBJ_UNKNOWN get memoryspace for any type of object (has maximum size)
Definition: ut_geo.h:132
int UT2D_pt_ck_int4pt(Point2 *, Point2 *, Point2 *, Point2 *)
Definition: ut_geo2d.c:7264
void UT3D_vc_projvcpl(Vector *, Plane *, Vector *)
Definition: ut_geo3d.c:11775
int UT3D_ci_cicird(Circ ca[], Circ *ci1, Circ *ci2, double rdc, int)
Definition: ut_geo3d.c:2273
int UT2D_2angr_set(double *ang1, double *ang2, int irot)
Definition: ut_geo2d.c:700
#define UT2D_skp_2vc(v1, v2)
Definition: ut_geo.h:1954
2D-point, Typ_PT2
Definition: ut_geo.h:190
int UT3D_pt_evparln(Point *pto, double lpar, Line *ln1)
Definition: ut_geo3d.c:9026
Definition: ut_geo.h:159
const char UT_CHR_NULL
Definition: ut_const.h:40
int UT3D_ipt2_nptvc(Point *pt1, Point *pt2, int mode, Point *pta, int iNr, Vector *vc)
Definition: ut_geo3d.c:7027
#define UT2D_pt_mid2pt(po, p1, p2)
UT2D_pt_mid2pt midpoint between 2 points.
Definition: ut_geo.h:1916
#define UT3D_pt_add_vc__(pt, vc)
UT3D_pt_add_vc__ add vector: pt += vc.
Definition: ut_geo.h:2181
void UT3D_pt_traptm4(Point *p2, Mat_4x4 ma, Point *p1)
Definition: ut_geo3d.c:9289
int UT3D_pt_projptel(int *numpe, Point *pe, CurvElli *ell, Point *pt)
Definition: ut_elli.c:1792
short i21
Definition: ut_geo.h:141
int UT3D_pt_intptvcln(Point *ip1, Point *ip2, double *dist, Point *pt1, Vector *vc1, Line *ln2)
Definition: ut_geo3d.c:1034
double UT3D_nlen_2ptvc(Point *p1, Point *pv, Vector *vc)
Definition: ut_geo3d.c:4879
int UT3D_pl_ptvzpl(Plane *pl, Point *pt, Vector *vcz, Plane *basPln)
Definition: ut_geo3d.c:15001
int UT3D_bp_vc_(Vector *)
Definition: ut_geo3d.c:18144
Line2 UT2D_ln_obj2(ObjG2 *)
Definition: ut_geo2d.c:4770
char trm
Definition: ut_geo.h:532
int typ
Definition: ut_geo.h:1013
double UT2D_len_2pt(Point2 *, Point2 *)
Definition: ut_geo2d.c:1603
Vector vz
Definition: ut_geo.h:410
int UT3D_ck_ci360(Circ *ci1)
Definition: ut_geo3d.c:12354
void UT2D_pt_traptm3(Point2 *p2, Mat_4x3 mata, Point2 *p1)
Definition: ut_geo2d.c:9225
void UT2D_pt_sub_pt3(Point2 *, Point *)
void UT2D_vc_travcm2(Vector2 *vo, Mat_3x2 mata, Vector2 *vi)
Definition: ut_geo2d.c:5527
void UT3D_m4_init(Mat_4x4 ma)
Definition: ut_geo3d.c:16297
const Mat_4x3 UT3D_MAT_4x3
int UT3D_ci_ciangr(Circ *ci, double ao2)
Definition: ut_geo3d.c:12535
int UT2D_sid_2vc_tol(Vector2 *v1, Vector2 *v2, double *tol)
Definition: ut_geo2d.c:4893
int UT3D_pt_intlnel_p(int *np, Point xp[], Line *ln, CurvElli *el)
Definition: ut_elli.c:2303
int typ
Definition: ut_geo.h:911
void UT2D_pt_traPtPtPar(Point2 *po, Point2 *p1, Point2 *p2, double d1)
Definition: ut_geo2d.c:2899
char uu2
Definition: ut_geo.h:457
UINT_32 iatt
Definition: ut_geo.h:991
int UT3D_ci_cipt180(Circ *ci1, Point *p1)
Definition: ut_geo3d.c:12413
#define UT2D_acos_vc2pt
UT3D_acos_vc2pt cos of opening angle of vec-(pt-pt) (dot=scalarprod) DOT.
Definition: ut_geo.h:1968
int UT2D_cv_ln(Point2 *cv, int ptAnz, Point2 *p1, Point2 *p2)
Definition: ut_geo2d.c:6852
int UT3D_comp2ln(Line *pa1, Line *pa2, double tol)
Definition: ut_geo3d.c:11939
double * pol
Definition: ut_geo.h:180
const Vector UT3D_VECTOR_X
int UT3D_pt_intlnpl1(Point *, double *, Point *, Point *, double, double)
Definition: ut_geo3d.c:8371
double UT3D_slenq_2ptvc(Point *p1, Point *p2, Vector *vc)
Definition: ut_geo3d.c:5133
int UT3D_comp2vc_p(Vector *, Vector *, double)
Definition: ut_geo3d.c:9385
long ptVNr
Definition: ut_geo.h:708
int UT3D_ck_ptInBox(Point *p1, Point *p2, Point *px)
Definition: ut_box.c:742
const Point UT3D_PT_NUL
int UT3D_el_projcipl(CurvElli *el, Plane *pl, Circ *ci)
Definition: ut_elli.c:1695
double d
Definition: ut_geo.h:158
int UT3D_pt_pt2bp(Point *p3, Point2 *p2, int bp)
Definition: ut_geo3d.c:9897
int UT3D_pt_intptvcpl_(Point *, Plane *, Point *, Vector *)
Definition: ut_geo3d.c:8207
long i4
Definition: ut_geo.h:138
#define UT3D_pt_sub_pt3(pto, pti)
UT3D_pt_sub_pt3 subtract point po = p1 - p2.
Definition: ut_geo.h:2214
int UT3D_pt_intptvcplz(Point *px, Point *pl, Vector *vl, double plz)
Definition: ut_geo3d.c:1623
const Vector UT3D_VECTOR_Y
int UT3D_vc_mirvcln(Vector *vco, Vector *vci, Line *ln)
Definition: ut_geo3d.c:11834
#define UT2D_vc_perpvc(vo, vi)
UT2D_vc_perpvc vector = perpendic. to vector ( + 90 degrees)
Definition: ut_geo.h:2013
#define UT2D_sar_2vc(v1, v2)
Definition: ut_geo.h:1963
double UT2D_angr_vc(Vector2 *)
Definition: ut_geo2d.c:1389
char uu
Definition: ut_geo.h:943
#define UT2D_vc_angr(vc, angr)
UT2D_vc_angr 2DVector = angle (radians)
Definition: ut_geo.h:2035
int UT3D_parvc_2vcbp(double *dl, int mainPln, Vector *v1, Vector *v2)
Definition: ut_geo3d.c:18391
double y
Definition: ut_geo.h:190
int UT2D_ci_ci3(Circ2 *ci2, Circ *ci3)
Definition: ut_geo2d.c:8640
const Vector2 UT2D_VECTOR_NUL
int UT3D_pt_ck_inLine(Point *p1, Point *p2, Point *p3, double tol)
Definition: ut_geo3d.c:5899
double vb
Definition: ut_geo.h:546
double UT3D_angr_4pt(Point *p11, Point *p12, Point *p21, Point *p22)
Definition: ut_geo3d.c:14461
int polNr
Definition: ut_geo.h:168
int UT3D_pt_mirptpl(Point *pto, Point *pti, Plane *pln)
Definition: ut_geo3d.c:8625
double UT2D_len_ptln(Point2 *pt, Point2 *pa, Point2 *pe)
Definition: ut_geo2d.c:1621
int UT3D_ci_cip2(Circ *ci1, Point *p2)
Definition: ut_geo3d.c:12491
int UT2D_solvtriri_a(double *a, double b, double c)
Definition: ut_geo2d.c:836
double UT3D_slen_projvcvc(Vector *vc1, Vector *vc2)
Definition: ut_geo3d.c:5047
double UT3D_angr_vc2pt(Point *pz, Vector *vz, Point *p1, Point *p2)
Definition: ut_geo3d.c:542
long dli
Definition: xa_tra.c:150
double UT3D_nlen_3pt(Point *p1, Point *p2, Point *p3)
Definition: ut_geo3d.c:5009
int UT3D_box_2pttol(Point *pb1, Point *pb2, Point *pt1, Point *pt2, double tol)
Definition: ut_box.c:645
group of consecutive objects
Definition: ut_geo.h:352
const double UT_DB_LEER
Definition: ut_const.h:38
int UT3D_pt_projpt2pt(Point *pp, double *len, Point *pt, Point *p1, Point *p2)
Definition: ut_geo3d.c:7980
void UT3D_pt_tra_pt_vc_par(Point *po, Point *pi, Vector *vc, double dist)
Definition: ut_geo3d.c:7374
void UT3D_cv_ln(Point *cv, int *ptAnz, Point *p1, Point *p2)
Definition: ut_geo3d.c:13500
#define UT3D_pt_addpt(po, p1)
UT3D_pt_addpt Add point: po += p1.
Definition: ut_geo.h:2170
double UT2D_slen_nor3pt(Point2 *p1, Point2 *p2, Point2 *p3)
Definition: ut_geo2d.c:1850
int UT2D_2pt_intlnci(Point2 *ip1, Point2 *ip2, Line2 *ln, int lnMode, Circ2 *ci, int ciMode)
Definition: ut_geo2d.c:4550
int UT3D_pt_projptci(Point *ptn, Point *ptf, Point *pt1, Circ *ci1)
Definition: ut_geo3d.c:7928
int UT2D_slenq_ptptvc(double *qlen, Point2 *pa, Point2 *pb, Point2 *pc)
Definition: ut_geo2d.c:1752
int UT2D_pt_ck_inBox(Point2 *p1, Point2 *p2, Point2 *p)
Definition: ut_box.c:331
2D-circle, Typ_CI2, Typ_CI2
Definition: ut_geo.h:387
ObjG2 UT2D_obj_ci2(Circ2 *)
Definition: ut_geo2d.c:6075
2D-Bezier curve Typ_CVBEZ2
Definition: ut_geo.h:537
int UT3D_sid_ptptvc(Point *ptx, Point *pto, Vector *vz)
Definition: ut_geo3d.c:5453
Point UT3D_pt_pt2z(Point2 *pt20, double zVal)
Definition: ut_geo3d.c:6166
void UT3D_vc_2ptlen(Vector *, Point *, Point *, double)
Definition: ut_geo3d.c:10116
int UT3D_comp4pt(Point *p1a, Point *p1e, Point *p2a, Point *p2e, double tol)
Definition: ut_geo3d.c:5378
short typ
Definition: ut_geo.h:242
long ptVNr
Definition: ut_geo.h:721
double UT3D_slen_3pt(Point *pt, Point *p1, Point *p2)
Definition: ut_geo3d.c:4851
Definition: ut_geo.h:298
int UT3D_el_pt2vc2a(CurvElli *el, Point *ptc, Vector *vcx, Vector *vcy, double a1, double a2, int idir)
Definition: ut_elli.c:719
int UT3D_pt_intcidpln(int *np, Point xp[], Point *pc, Point *p1, Vector *vz, double dx)
Definition: ut_geo3d.c:17905
int UT3D_pt_projptln(Point *, double *, double *, Point *, Line *)
Definition: ut_geo3d.c:7869
const Mat_4x4 UT3D_MAT_4x4
int UT3D_pta_dbo(Point **pTab, int *pNr, int typ, long ind, double tol)
Definition: ut_geo3d.c:13429
#define UT2D_ln_inv(ln)
UT2D_ln_inv Invert 2D-Line.
Definition: ut_geo.h:2080
int UT3D_bp_vcz(Vector *)
Definition: ut_geo3d.c:18184
void UT3D_pl_p(Plane *pl)
Definition: ut_geo3d.c:15433
void UT3D_vc_2vc(Vector *, Vector *, Vector *)
Definition: ut_geo3d.c:10179
#define UINT_32
Definition: ut_types.h:28
float scl
Definition: ut_geo.h:770
int UT3D_el_elpt180(CurvElli *el1, Point *p1)
Definition: ut_elli.c:417
short typCov
Definition: ut_geo.h:661
double rad
Definition: ut_geo.h:299
short typ
Definition: ut_geo.h:276
double UT2D_slen_nor_2pt_vc__(Point2 *pt, Point2 *pl, Vector2 *vl)
Definition: ut_geo2d.c:2520
void UT2D_pt_traptm2(Point2 *, Mat_3x2, Point2 *)
Definition: ut_geo2d.c:8970
double UT3D_angr_vcpl_z(Plane *pl1, Vector *vc1)
Definition: ut_geo3d.c:673
#define UT3D_pt_setFree(obj)
UT3D_pt_setFree set point not valid (not initialized)
Definition: ut_geo.h:2139
ellipse, Typ_CVELL2
Definition: ut_geo.h:440
int typ
Definition: ut_geo.h:298
#define UT3D_vc_perpTria(vn, tri)
UT3D_vc_perpTria vector = perpendic. to Triangle (crossprod)
Definition: ut_geo.h:2327
void UT3D_pt_rotptptvcangr(Point *pto, Point *pti, Point *ptc, Vector *vz, double angr)
Definition: ut_geo3d.c:7736
double UT3D_len_ln(Line *)
Definition: ut_geo3d.c:4562
double z
Definition: ut_geo.h:200
double e3
Definition: ut_geo.h:155
int UT3D_pl_nobj(Plane *pl1, int oNr, ObjGX *oTab)
Definition: ut_geo3d.c:14903
int UT3D_ci_intplsph(Circ *cio, Plane *pli, Sphere *spi)
Definition: ut_geo3d.c:3584
#define UT3D_comp2pt(p1, p2, tol)
Definition: ut_geo.h:2395
2D-line, Typ_LN2
Definition: ut_geo.h:360
void UT3D_pt_midci(Point *, Circ *)
Definition: ut_geo3d.c:6257
int UT3D_pl_ptvxpl(Plane *pl, Point *pt, Vector *vcx, Plane *basPln)
Definition: ut_geo3d.c:15051
Point * pa
Definition: ut_geo.h:342
int UT3D_comp2vc_d(Vector *, Vector *, double)
Definition: ut_geo3d.c:9486
int UT3D_pt_intptvcxpln(Point *pti, Point *ptl, Point *ptpl, Vector *vcpl)
Definition: ut_geo3d.c:1716
int UT3D_pt_rotciangr(Point *pto, double angr, Circ *ci1)
Definition: ut_geo3d.c:7622
union long / short[2]
Definition: ut_geo.h:138
void UT2D_vc_2pt3(Vector2 *vc, Point *p1, Point *p2)
Definition: ut_geo2d.c:5214
#define UT2D_vc_pt(vc, pt)
Definition: ut_geo.h:1975
#define UT3D_ln_inv(ln)
UT3D_ln_inv Invert 3D-Line.
Definition: ut_geo.h:2415
int UT2D_comp4pt(Point2 *, Point2 *, Point2 *, Point2 *, double)
Definition: ut_geo2d.c:2752
void UT3D_cv_ci(Point cv[], int *ptanz, Circ *ci1, int ptmax, double tol)
Definition: ut_geo3d.c:13575
char * txt
Definition: ut_geo.h:904
void UT3D_pl_pto_vcx_vcy(Plane *pl1, Point *po, Vector *vx, Vector *vy)
Definition: ut_geo3d.c:15167
int UT3D_m3_tram3m3(Mat_4x3 m3, Mat_4x3 m1, Mat_4x3 m2)
Definition: ut_geo3d.c:16087
#define UT2D_ln_ln3(ln2, ln3)
UT2D_ln_ln3 2D-Line = 3D-Line.
Definition: ut_geo.h:2070
double UT3D_parpt_lnbp(Point *pti, Line *ln1, int bp)
Definition: ut_geo3d.c:8819
void UT2D_pt_tra2ptlen(Point2 *, Point2 *, Point2 *, double)
Definition: ut_geo2d.c:2868
void UT3D_pt_traptptlen(Point *po, Point *pi, Point *pDir, double lenv)
Definition: ut_geo3d.c:7543
double UT2D_angr_ptpt(Point2 *, Point2 *)
Definition: ut_geo2d.c:1372
char trm
Definition: ut_geo.h:497
void UT3D_pl_2ln(Plane *pl1, Line *ln1, Line *ln2)
Definition: ut_geo3d.c:14801
#define UT3D_pt_add_pt2(po, p1)
UT3D_pt_add_pt2 Add 2D-point: po += p1.
Definition: ut_geo.h:2176
Typ_GridBox _GRIDBOX_NUL.
Definition: ut_geo.h:1023
double UT3D_angr_ci_par1(Circ *ci1, double par1)
Definition: ut_geo3d.c:14575
int UT2D_box_extend(Point2 *pb1, Point2 *pb2, Point2 *pt1)
Definition: ut_box.c:222
void UT3D_vc_txt(Vector *vc, char *txt)
Definition: ut_geo3d.c:9961
double UT_TOL_Ang1
tolerance for Angle 0.01 degree
Definition: ut_tol_const.h:38
int UT2D_ci_ptvcpt(Point2 *, double *, Point2 *, Vector2 *, Point2 *)
Definition: ut_geo2d.c:8717
int UT2D_sidPerp_3pt(Point2 *p1, Point2 *p2, Point2 *p3)
Definition: ut_geo2d.c:1201
void UT2D_pt_tranor2ptlen(Point2 *, Point2 *, Point2 *, double)
Definition: ut_geo2d.c:3061
RevolvedSurf Typ_SURRV.
Definition: ut_geo.h:660
int ind
Definition: xa_tra.c:151
double v1
Definition: ut_geo.h:513
int UT3D_pt_mid_pta(Point *pto, Point *pTab, int ptNr)
Definition: ut_geo3d.c:6222
#define UT3D_pt_isFree(obj)
Definition: ut_geo.h:2146
int UT3D_pt_elfoc(Point *fp1, Point *fp2, CurvElli *el)
Definition: ut_elli.c:796
int UT3D_pt_ck_in2pt(Point *p1, Point *p2, Point *p3, double tol)
Definition: ut_geo3d.c:7194
void UT3D_vc_ln(Vector *, Line *)
Definition: ut_geo3d.c:10077
int UT3D_ptDi_intptvcpln(Point *ip, double *dist, Plane *pl, Point *pt, Vector *vln)
Definition: ut_geo3d.c:8291
void UT3D_vc_normalize(Vector *, Vector *)
Definition: ut_geo3d.c:11356
int UT3D_npt_ci(Point *pa, int pNr, Circ *ci1)
Definition: ut_geo3d.c:13704
int UT3D_vc_tng_ci_pt(Vector *vt, Point *p1, Circ *ci)
Definition: ut_geo3d.c:10533
void UT2D_vc_setLength(Vector2 *, Vector2 *, double)
Definition: ut_geo2d.c:5354
double UT2D_angd_angr(double)
Definition: ut_geo2d.c:1297
double UT3D_angr_3pt(Point *p1, Point *pc, Point *p2)
Definition: ut_geo3d.c:14288
double UT3D_angr_3vc__(Vector *vz, Vector *v1, Vector *v2)
Definition: ut_geo3d.c:14364
int UT3D_box_extend(Point *pb1, Point *pb2, Point *pt1)
Definition: ut_box.c:687
double * wtab
Definition: ut_geo.h:557
char typ
Definition: ut_geo.h:360
2D-ellipse in centerPosition Typ_CVELL2C
Definition: ut_geo.h:424
Index-table; Typ_IndTab; _INDTAB_NUL.
Definition: ut_geo.h:227
const Vector UT3D_VECTOR_Z
int UT3D_vc_rotangr(Vector *vco, Vector *vci, double *ar)
Definition: ut_geo3d.c:11432
short ySiz
Definition: ut_geo.h:749
int UT3D_pt_m3(Point *pto, Mat_4x3 ma)
Definition: ut_geo3d.c:9226
#define UT2D_vc_perp2pt(vo, p1, p2)
UT2D_vc_perp2pt vector = perpendic. to Line ( + 90 degrees)
Definition: ut_geo.h:2030
int UT3D_pt_mirptln(Point *pto, Point *pti, Line *ln)
Definition: ut_geo3d.c:8609
double UT3D_lenq_PtPt(Point *p1, Point *p2)
Definition: ut_geo3d.c:4666
int UT3D_pt_ck_onLine(Point *p1, Point *p2, Point *p3, double tol)
Definition: ut_geo3d.c:5959
grafic attribute for lines, curves; Typ_Ltyp
Definition: ut_geo.h:943
#define UT3D_pt_traptvc(po, pi, vc)
UT3D_pt_traptvc Point = Point + Vector.
Definition: ut_geo.h:2247
const Vector2 UT2D_VECTOR_X
Typ_TraRot:
Definition: ut_geo.h:1004
int UT3D_el_elcoe(CurvElli *obj, polcoeff_d5 *ec, Point2 *pa, Point2 *pe, double zt)
Definition: ut_elli.c:1985
#define UT2D_lenS_2pt(p1, p2)
UT2D_lenS_2pt dx+dy-distance point-point.
Definition: ut_geo.h:1856
int UT2D_parLn_pt2pt(double *d1, Point2 *p1, Point2 *p2, Point2 *px)
float uscy
Definition: ut_geo.h:795
int UT2D_comp2vc_p(Vector2 *, Vector2 *, double)
Definition: ut_geo2d.c:4837
Vector2 vb
Definition: ut_geo.h:440
void UT3D_pt_traptvclen(Point *po, Point *pi, Vector *vc, double dist)
Definition: ut_geo3d.c:7391
Hatch Typ_SURHAT.
Definition: ut_geo.h:646
int UT3D_ln_intbox(Line *ln1, Point *bp1, Point *bp2)
Definition: ut_box.c:974
const Point2 UT2D_PT_NUL
double UT3D_angr_elpt(Point *pti, Point *ptc, Vector *va, Vector *vb)
Definition: ut_elli.c:448
double Mat_3x2[2][3]
Typ_M3x2.
Definition: ut_geo.h:149
int UT2D_pt_ck_linear(int np, Point2 *ptab, double tol)
Definition: ut_geo2d.c:7690
Typ_Memspc (a class for variable-length-records in memory)
Definition: ut_umem.h:32
static Line ln1
Definition: DemoPlugin_Dialog.c:86
int UT2D_pt_ck_inTriangle(Point2 *p1, Point2 *p2, Point2 *p3, Point2 *p)
int UT3D_pt_ck_2pt(Point *pt, Point *pl1, Point *pl2, double tol)
Definition: ut_geo3d.c:5872
int UT2D_sidPerp_2vc(Vector *v1, Vector *v2)
Definition: ut_geo2d.c:5002
Area: B-Spline-Surf Typ_SURBSP.
Definition: ut_geo.h:708
double UT2D_lenB_2pt(Point2 *p1, Point2 *p2)
Definition: ut_geo2d.c:7203
double UT3D_par1_ci_angr(Circ *ci1, double angr)
Definition: ut_geo3d.c:18772
void UT2D_m2_load(Mat_3x2, Vector2 *, Point2 *)
Definition: ut_geo2d.c:8836
#define UT2D_pt_pt3(pt3)
UT2D_pt_pt3 2D-Point = 3D-Point.
Definition: ut_geo.h:1888
double scl
Definition: ut_geo.h:835
texture reference; Typ_TEXR
Definition: ut_geo.h:795
double UT3D_sbs_ck_planar(SurBSpl *su1)
Definition: ut_sbsp.c:674