gCAD3D 2.35
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_umem.h" // Memspc MemObj UME_*
45 // ../gui/gui_types.h
46 // ../ut/func_types.h // ATT_COL_. SYM_. Typ_Att_
47 // ../xa/xa_sele.h
48 
49 
50 /*
51 // NUR bei LINUX (ex math.h):
52 #define RAD_360 M_2_PI // 360 Grad
53 #define RAD_180 M_PI // 180 Grad
54 #define RAD_90 M_PI_2 // 90 Grad
55 #define RAD_45 M_PI_4 // 45 Grad
56 #define RAD_30 ?? // 30 Grad
57 */
58 
59 // angles ..
60 #define RAD_360 6.2831853071795862319
61 #define RAD_270 4.7123889803846896739
62 #define RAD_225 3.92699081698724151736
63 #define RAD_180 3.14159265358979323846
64 #define RAD_135 2.3561944901923448368
65 #define RAD_120 2.0943951023931953735
66 #define RAD_90 1.5707963267948965579
67 #define RAD_60 1.0471975511965976313
68 #define RAD_45 0.7853981633974482789
69 #define RAD_30 0.5235987755982988156
70 #define RAD_10 0.174532925199432954
71 #define RAD_1 0.0174532925199432954
72 #define RAD_01 0.0017453292519943295
73 #define RAD_1_360 0.15915494309189534561
74 #define SR_3 1.7320508075688772
75 #define SR_2 1.4142135623730951
76 #define SR_PI 1.7724538509055159
77 
78 
79 #define CCW 1
80 #define CW -1
81 
82 #define NOT !
83 
84 #define YES 0
85 #define NO 1
86 
87 #define ON 0
88 #define OFF 1
89 
90 #define LIMITED 0
91 #define UNLIMITED 1
92 
93 
94 
95 
96 
97 
98 #define UT_BEZDEG_MAX 50
99 
100 
101 
102 
103 
104 
105 
106 /*============== Belegung der att - Bitfelder ============================= */
108 #define ATT_BIT_ABS 1
109 /*
110 zB. Absolut-Bit setzen (mit OR): obj.att = obj.att | ATT_BIT_ABS;
111  Absolut-Bit filtern (mit AND; ergibt 0 oder ATT_BIT_ABS):
112  i1 = obj.att & ATT_BIT_ABS;
113  Achtung: entspricht NICHT ON/OFF!
114 */
115 
116 
118 #define ATT_BIT_LIM 2
119 
120 
122 // max = CurvElli; 160 = 6 Points + 16 byte | 20 doubles
123 #define OBJ_SIZ_MAX 160
124 
126 // Size of OBJ_UNKNOWN is OBJ_SIZ_MAX bytes.
127 // OBJ_SIZ_MAX (ou1); // gives "char ou1[OBJ_SIZ_MAX];"
128 // For curves with point-tables (polygon, spline) and value-arrays (splines)
129 // these additional memory-spaces cannot be allocated in OBJ_UNKNOWN.
130 // For this curves additional 'Memspc' is necessary.
131 typedef struct {char dat[OBJ_SIZ_MAX];} Obj_Geo_Unknown;
132 
133 
134 
135 //....................... aux. structs: ..................................
137 typedef union {long i4; short i2[2];} uni_i4i2;
138 
140 typedef struct {short i20, i21;} stru_2i2;
141 
143 typedef struct {unsigned b123:24, b4:8;} stru_c3c1;
144 
145 
146 
147 //....................... Math. Objects: ..................................
148 typedef double Mat_3x2[2][3];
149 typedef double Mat_3x3[3][3];
150 typedef double Mat_4x3[3][4];
151 typedef double Mat_4x4[4][4];
152 
154 typedef struct {double e0, e1, e2, e3;} Quat;
155 
156 typedef struct {double a, b;} dcomplex;
157 typedef struct {double a, b, c, d;} polcoeff_d3;
158 typedef struct {double a, b, c, d, e;} polcoeff_d4;
159 typedef struct {double a, b, c, d, e, f;} polcoeff_d5;
160 
162 typedef struct {double u; polcoeff_d3 x, y, z;} polynom_d3;
163 // size = 104
164 
165 
167 typedef struct {int polNr; double *pol;} Polynom1;
168 // Struktur von pol: double pol[polNr]
169 
170 
172 typedef struct {int polNr; double *pol[3];} Polynom3;
173 // pol: double pol[3][polNr]
174 
175 
177 // pol: double pol[dim1][dim2]
178 // Access: pol[ind1*dim2*ind2] = pol[ind1][ind2] !
179 typedef struct {int dim1, dim2; double *pol;} Polynom_;
180 
181 
182 
183 
184 
185 
186 //....................... Geom. Objects: ..................................
187 
189 typedef struct {double x, y;} Point2;
190 // size = 16
191 
192 typedef struct {float x, y, z;} Pointf;
193 
195 typedef struct {double x, y, z;} Point;
196 // size = 24
197 
199 typedef struct {double x, y, z, w;} wPoint;
200 // size = 32
201 
203 typedef struct {double dx, dy;} Vector2;
204 // size = 16
205 
206 // typedef struct {float dx, dy, dz;} Vectorf;
207 
209 typedef struct {double dx, dy, dz;} Vector;
210 // size = 24
211 
212 
213 
214 //....................... containerobjects: ................................
215 
225 typedef struct {int ibeg, iNr; char typi, typd, aux, stat;} IndTab;
226 // size = 12
227 
228 
229 
240 typedef struct {short typ, form; void *data;
241  unsigned siz:24, dir:1, aux:7;} ObjGX;
242 // size = 12
243 
244 
251 typedef struct {long dbInd, dlInd; short typ, stat;} ObjDB;
252 
253 
263 typedef struct {long dbi, dli, lnr; char *lPos; int iPar, typ, ll;} ObjSRC;
264 
265 
273 typedef struct {short typ, form, ilen, ipar; int ioff;} ObjTXTSRC;
274 
275 
284 typedef struct {int nr, siz, txsiz; int *typ; double *val; short *ilev;
285  char *txt;} ObjAto;
286 
287 
292 typedef struct {int typ, att, ID, ID1; Point2 p1, p2, pc;
293  double rad; long nam;} ObjG2;
294 
295 
300 typedef struct {int typ, att; long ID; void *data;
301  Point p1,p2,pc; Vector vz; double rad;} ObjG;
302 
303 
304 /* UNUSED
309 typedef union {Point *pt; Line *ln; Vector *vc;
310  Circ *ci; ObjGX *cv; CurvElli *el;
311  CurvPoly *plg; CurvBSpl *bsp;
312  void *vp;} ObjX;
313 // size = void* = 4
314 
315 
318 typedef union {Point pt; Vector vc; Line ln; Circ ci;} ObjUX;
319 */
320 
321 
322 typedef struct {int typ; char obj[OBJ_SIZ_MAX];} ObjBin;
323 
324 
336 typedef struct {Point *pa; Point *p2a; int iNr;
337  Point p1, p2;
338  unsigned char cTyp, use, dir, temp;} ContTab;
339 
340 
346 typedef struct {long ind; unsigned typ:8, oNr:24;} ObjRange;
347 
348 
349 
350 
351 //....................... Geom. Objects: ..................................
352 
354 typedef struct {Point2 p1, p2; char typ;} Line2;
359 
361 typedef struct {Point p1, p2; char typ;} Line;
366 
368 typedef struct {Point *pa[3];} Triangle;
369 // size = 12; 3 pointers !
370 
371 
381 typedef struct {Point2 p1, p2, pc; double rad, ango;} Circ2;
382 // size = 64
383 
384 
391 typedef struct {double rad, angs, ango;} Circ2C;
392 // size = 24
393 
394 
404 typedef struct {Point p1, p2, pc; Vector vz; double rad, ango;} Circ;
405 // size = 112
406 
407 
418 typedef struct {Point2 p1, p2; double a, b;
419  char srot, clo, trm, uu2;} CurvEll2C;
420 // size = ?
421 
434 typedef struct {Point2 p1, p2, pc; Vector2 va, vb;
435  char srot, clo, trm, uu2;} CurvEll2;
436 // size = ?
437 
450 typedef struct {Point p1, p2, pc; Vector vz, va, vb;
451  char srot, clo, trm, uu2;} CurvElli;
452 // size = 148
453 
454 
456 typedef struct {int typ, cvnr, ind1, ind2; Point p1, p2;
457  long ID1, ID2;} Curv;
458 // size =
459 
460 
472 typedef struct {int ptNr; double v0, v1, *lvTab; Point *cpTab;
473  char dir, clo, trm, uu2;} CurvPoly;
474 // dir: only necessary for closed, cyclic curve
475 // size = 28
476 
477 
490 typedef struct {int ptNr; double v0, v1, *kvTab;
491  Point2 *cpTab; char deg, dir, clo, trm;} CurvBSpl2;
492 // size = 32
493 
494 
507 typedef struct {int ptNr; double v0, v1, *kvTab;
508  Point *cpTab; char deg, dir, clo, trm;} CurvBSpl;
509 // size = 32
510 
511 
525 typedef struct {int ptNr; double v0, v1, *kvTab, *wTab;
526  Point *cpTab; char deg, dir, clo, trm;} CurvRBSpl;
527 // size = 36
528 
529 
531 typedef struct {int ptNr; Point2 *cptab; double va, vb;} CurvBez2;
532 
533 
540 typedef struct {int ptNr; Point *cptab; double va, vb;} CurvBez;
541 // size = 24
542 
543 
551 typedef struct {int ptNr;Point *cptab;double *wtab;double va, vb;} CurvRBez;
552 
553 
554 // // Typ_CVVC 2007-03-24 RF.
555 // // Curve with Vectors for all Curvepoints from Offsetcurve.
556 // typedef struct {void *cv1; void *cv2; int cTyp;} CurvVec;
557 
558 
569 typedef struct {Point stp; Vector stv, plv;
570  double pc, cs, ce; int lr;} CurvClot;
571 
572 
573 
585 typedef struct {long dbi; int mdli, ptNr, siz;
586  Point *npt; double *npar; long *nipt;
587  short typ; char fTmp, uu1;} CurvPrcv;
588 
589 
605 // trm trimmed; 0=yes, 1=not_trimmed, -1=undef; see INF_struct_closed
607 typedef struct {double v0, v1; long dbi, ip0, ip1;
608  unsigned short is0, is1;
609  short typ, us1; char dir, clo, trm, uc1;} CurvCCV;
610 // size = 36
611 
612 
613 
614 /*
621 typedef struct {long dbi;
622  unsigned char rev, clo, uu1, uu2;} CurvAssy;
623 */
624 
625 
626 
631 typedef struct {Point po; Vector vx, vy, vz; double p;} Plane;
632 // size = 104
633 
634 
640 typedef struct {long cvID; float off, dir; short cvTyp;} SurHat;
641 
642 
654 typedef struct {double ang1, ang2, v0, v1;
655  long indCen, indCov; short typCen, typCov;
656  unsigned dir:1;} SurRev;
657 
658 
669 typedef struct {double u0, u1, v0, v1;
670  long indPath, indCov; short typPath, typCov;
671  unsigned dir:1;} SurSwp;
672 
673 
680 typedef struct {long baseID, cvID;
681  unsigned typ:8, cvTyp:8;} SurStd;
682 
683 
693 typedef struct {int ptUNr, ptVNr; ObjGX *pTab;} SurStripe;
694 
695 
702 typedef struct {long ptUNr, ptVNr; int degU, degV;
703  double v0U, v1U, v0V, v1V, *kvTabU, *kvTabV;
705 // size = 60
706 
707 
715 typedef struct {long ptUNr, ptVNr; int degU, degV;
716  double v0U, v1U, v0V, v1V, *kvTabU, *kvTabV, *wTab;
718 // size = 64
719 
720 
730 typedef struct {unsigned cr:8, cg:8, cb:8,
731  unused:3, vtra:2, vsym:1, vtex:1, color:1;} ColRGB;
732 // size = 4
733 
734 
742 typedef struct {Point pt; float size, dir; char *txt;
743  short xSiz, ySiz;} GText;
744 // size = 36
745 
746 
763 typedef struct {Point p1, p2; char *txt; short xSiz, ySiz;
764  float scl; char aTyp, col, ltyp;} AText;
765 
766 
775 typedef struct {char *fnam;
776  short xSiz, ySiz, texNr, keep;} TexBas;
777 
778 
789 typedef struct {int ibas; float uscx, uscy, udx, udy, uar,
790  ssx, ssy, px, py, pz, fx, fy; Vector vx, vy;} TexRef;
791 
792 
793 
795 typedef struct {Point po; long ind, siz;} Ditto;
796 
797 
798 /* UNUSED
805 typedef struct {char *mnam; long ind, siz;
806  Point po; Vector vx, vz;} ModelMock;
807 */
808 
809 
820 typedef struct {char *mnam; Point po, pb1, pb2; long DLind, DLsiz;
821  short typ, seqNr;} ModelBas;
822 
823 
829 typedef struct {int modNr; double scl;
830  Point po; Vector vx, vz;} ModelRef;
831 
832 
839 typedef struct {int mod, par, ind;} ModelNode;
840 
841 
847 typedef struct {Point pc; double rad;} Sphere;
848 // siz = 32
849 
850 
858 typedef struct {Plane pl; double r1, r2, h;} Conus;
859 // siz = 128
860 
861 
870 typedef struct {Plane pl; double r1, r2;} Torus;
871 // siz = 120
872 
873 
874 // Typ_REV
875 
876 
888 typedef struct {Point2 p1, p2, p3; float a1, a2;
889  char dtyp, hd, ld, uu; char *txt;} Dimen;
890 
891 
897 typedef struct {long ip1, ip2, ipt;
898  char dtyp, hd, ld, bp; char *txt;} Dim3;
899 
900 
905 typedef struct {Point2 pt; float ang, scl; int typ;} SymRef2;
906 // GL_DrawSymV2
907 
908 
909 
911 typedef struct {Point pt; Vector dx, dy; float scl; int typ;} SymRef;
912 // GL_DrawSymV3
913 
914 
915 
916 
917 //....................... Geom. Attributes: ..................................
918 
927 typedef struct {unsigned dash:8, thick:8,
928  cr:4, cg:4, cb:4, uu:4;} Att_ln;
929 
937 typedef struct {short indAtt; char lim, uu;} Ind_Att_ln;
938 
939 // DO NOT USE:
940 // typedef struct {unsigned col:8, ltyp:8, lthick:8,
941  // unused:7, used:1;} GR_Att;
942 // size = 4
943 
944 
955 typedef struct {long ind;
957  unsigned lay:16, typ:8,
958  unused:7, disp:1;} ObjAtt;
959 // size = 12
960 
961 
984 typedef struct {long ind, ipcv, lNr, irs;
986  unsigned modInd:16, typ:8,
987  disp:1, pick:1, hili:1, dim:1,
988  grp_1:1, unvis:1, sChd:1, sPar:1;} DL_Att;
989 // size = 16
990 
991 
998 typedef struct {Mat_4x3 ma; Vector vz; double angr;} TraRot;
999 // size = 128
1000 
1001 
1007 typedef struct {int typ; long ind; char *data;} Activity;
1008 
1009 
1015 typedef struct {Point *p1; double dx, dy, dz; int ix, iy, iz;} GridBoxH;
1016 
1017 
1018 
1019 /*
1020 //....................... Tess. Objects: ..................................
1021 
1027 typedef struct {Point *pTab; int pNr; char *pTyp;} Verts;
1028 
1029 
1034 typedef struct {int *ipt; int *inf;} Face;
1035 
1036 
1041 typedef struct {int i1, i2, i3;} Fac3;
1042 
1043 
1050 typedef struct {void *fTab; int fNr; int fTyp;} Faces;
1051 
1052 
1064 typedef struct {int ip1, ip2, ip3, if1, if2, if3;} FacNf;
1065 
1066 
1068 typedef struct {int ipt[2];} Edge;
1069 
1070 
1072 typedef struct {int i1, i2;} Edg3;
1073 
1074 
1086 typedef struct {int *ia, iNr; char typ, aux, stat;} EdgeLine;
1087 
1088 
1097 typedef struct {Edge *eTab; int eNr; char *eTyp;} Edges;
1098 
1099 
1106 typedef struct {Verts *p; Faces *f; Edges *e; int mTyp;} Mesh;
1107 
1108 
1114 typedef struct {int ipt, nbsid;} SegBnd;
1115 
1116 
1117 // /// \brief Typ_EdgSur
1118 // /// \code
1119 // /// vxSt index to startPoint
1120 // /// vxNr nr of points following startPoint
1121 // /// surNb surfaceIndex of neighbourSurface (surf-record in BODY)
1122 // /// see also EdgeLine
1123 // /// \endcode
1124 // typedef struct {int vxSt, vxNr, vxMax, surNb;} EdgSur;
1125 
1126 
1127 
1141 typedef struct {int suID, contNr; char typb, typt, dir, stat;} BndSur;
1142 // ^
1143 */
1144 
1145 
1146 
1147 //.........................................................................
1148 
1149 // tolerances depending from Modelsize:
1151 extern double UT_TOL_pt;
1153 extern double UT_TOL_cv;
1155 extern double UT_TOL_ln;
1157 extern double UT_DISP_cv;
1159 extern double UT_DISP_ln;
1160 
1161 
1162 
1163 
1164 // ------------- constants defined in ../ut/ut_geo_const.h -------------
1165 extern double UT_TOL_min0;
1166 extern double UT_TOL_min1;
1167 extern double UT_TOL_min2;
1169 extern double UT_TOL_PAR;
1171 extern double UT_TOL_Ang1;
1173 extern double UT_TOL_Ang2;
1174 
1175 
1176 extern const double UT_VAL_MIN;
1177 extern const double UT_VAL_MAX;
1178 extern const double UT_DB_LEER;
1179 extern const double UT_DB_NULL;
1180 extern const int UT_INT_MAX;
1181 extern const char UT_CHR_NULL;
1182 
1183 
1184 extern const Point2 UT2D_PT_NUL;
1185 extern const Point UT3D_PT_NUL;
1186 
1187 extern const Vector2 UT2D_VECTOR_NUL;
1188 extern const Vector2 UT2D_VECTOR_X;
1189 extern const Vector2 UT2D_VECTOR_Y;
1190 
1191 extern const Vector UT3D_VECTOR_NUL;
1192 
1193 extern const Vector UT3D_VECTOR_X;
1194 extern const Vector UT3D_VECTOR_Y;
1195 extern const Vector UT3D_VECTOR_Z;
1196 
1197 extern const Vector UT3D_VECTOR_IX;
1198 extern const Vector UT3D_VECTOR_IY;
1199 extern const Vector UT3D_VECTOR_IZ;
1200 
1201 extern const Mat_3x3 UT3D_MAT_3x3;
1202 extern const Mat_4x3 UT3D_MAT_4x3;
1203 extern const Mat_4x4 UT3D_MAT_4x4;
1204 
1205 
1206 
1207 
1208 
1209 //================================================================
1210 // prototypes for gcad_ut_geo.c
1211 
1212 //----------------------------------------------------------------
1213  int UTP_comp_0 (double);
1214  int UTP_compdb0 (double, double);
1215  int UTP_comp2db (double, double, double);
1216  int UTP_comp2x2db (double d11,double d12,double d21,double d22,double tol);
1217  int UTP_db_ck_in2db (double v, double v1, double v2);
1218  int UTP_db_ck_in2dbTol (double v, double v1, double v2, double tol);
1219  int UTP_db_cknear_2db (double *db, double *d1, double *d2);
1220  int UTP_db_cknear_ndb (double db1, int dbNr, double *dbTab);
1221  double UTP_min_d3 (double *d1, double *d2, double *d3);
1222  double UTP_max_d3 (double *d1, double *d2, double *d3);
1223  double UTP_db_rnd1sig (double);
1224  double UTP_db_rnd2sig (double);
1225 
1226 
1227  int UT1D_ndb_npt_bp (double *da, Point *pa, int pNr, int bp);
1228 
1229  double UT_DEGREES (double);
1230  double UT_RADIANS (double);
1231 
1232  int UT2D_sidPerp_3pt (Point2 *p1, Point2 *p2, Point2 *p3);
1233 
1234  int UT2D_angr_set (double *angr);
1235  int UT2D_2angr_set (double *ang1, double *ang2, int irot);
1236  double UT2D_angr_2angr (double ang1, double ang2, int irot);
1237  double UT2D_angr_set_2angr (double as, double aa, int sr);
1238  int UT2D_ptNr_ci (double rdc, double ao, double tol);
1239 
1240  int UT2D_solvtriri_a (double *a, double b, double c);
1241  int UT2D_solvtriri_bc (double *,double *,double,double);
1242  int UT2D_solvtri_abc (double *,double *,double,double,double);
1243 
1244  int UT2D_ckBoxinBox1 (Point2 *p1, Point2 *p2, Point2 *p3, Point2 *p4);
1245  int UT2D_ckBoxinBox2 (Point2*, Point2*, Point2*, Point2*, double);
1246 
1247  double UT2D_slen_vc_vc__ (Vector2 *vac, Vector2 *vab);
1248  double UT2D_slen_vc_vcNo (Vector2 *vac, Vector2 *vnab);
1249  double UT2D_slen_pt_pt_vc__ (Point2 *pc, Point2 *pa, Vector2 *vab);
1250  double UT2D_skp_2vc (Vector2 *, Vector2 *);
1251  double UT2D_skp_vc2pt (Vector2 *, Point2 *, Point2 *);
1252  double UT2D_acos_2vc (Vector2 *, Vector2 *);
1253  double UT2D_sar_2vc (Vector2 *, Vector2 *);
1254  double UT2D_acos_vc2pt (Vector2 *, Point2 *, Point2 *);
1255  double UT2D_crossprod_2vc (Vector2 *, Vector2 *);
1256 
1257  double UT2D_angd_angr (double);
1258  double UT2D_angd_invert (double *andi);
1259  double UT2D_angr_angd (double);
1260  double UT2D_angr_triri_ab (double, double);
1261  double UT2D_angr_ptpt (Point2 *, Point2 *);
1262  double UT2D_angr_vc (Vector2 *);
1263  double UT2D_angr_2ln (Line2 *, Line2 *);
1264  double UT3D_angr_vc2pt (Point *pz, Vector *vz, Point *p1, Point *p2);
1265  double UT3D_angr_vcpl_z (Plane *pl1, Vector *vc1);
1266  double UT3D_angr_vcpl_tilt (Plane *pl1, Vector *vc1);
1267  double UT3D_angr_vc2vc (Vector *vc1, Vector *vcx, Vector *vcy);
1268  double UT3D_angr_2pl (Plane* pl1, Plane* pl2);
1269  double UT2D_angr_2vc (Vector2 *, Vector2 *);
1270  double UT2D_angr_3ptdr (Point2 *, Point2 *, Point2 *, int);
1271  double UT3D_angr_4pt (Point *p11, Point *p12, Point *p21, Point *p22);
1272  double UT2D_angr_ci (Point2 *pa,Point2 *pe,Point2 *pc,double rad_in);
1273  double UT3D_angr_ci_p1_pt (Circ *ci1, Point *pti);
1274  double UT2D_angr_perpangr (double*);
1275 
1276  double UT2D_len_vc (Vector2 *);
1277  double UT2D_lenq_vc (Vector2 *);
1278  void UT2D_lenq_2pt (double *lq, Point2 *p1, Point2 *p2);
1279  double UT2D_len_2pt (Point2 *,Point2 *);
1280  double UT2D_lenB_2pt (Point2 *p1, Point2 *p2);
1281  double UT2D_lenS_2pt (Point2 *p1, Point2 *p2);
1282  double UT2D_lenS_vc (Vector2 *vc1);
1283  int UT2D_minLenB_4pt (double *dp,Point2*,Point2*,Point2*,Point2*);
1284  int UT3D_minLen_3pt (double*,Point*,Point*,Point*);
1285  int UT3D_minLen_4pt (double*,Point*,Point*,Point*,Point*);
1286  int UT3D_minLen_npt (Point *p0, Point *pa, int pNr);
1287  double UT2D_len_ptln (Point2 *pt, Point2 *pa, Point2 *pe);
1288  int UT2D_3len_ptln (double*, double*, double*, Point2*, Point2*, Point2*);
1289  int UT2D_slenq_ptptvc (double *qlen, Point2 *pa, Point2 *pb, Point2 *pc);
1290  double UT2D_slen_nor3pt (Point2 *p1, Point2 *p2, Point2 *p3);
1291  int UT2D_slen_nor2vc (double *slen, Vector2 *v1, Vector2 *v2);
1292  int UT2D_slen_nor_vc_vcNo (double *slen, Vector2 *v1, Vector2 *v2);
1293  double UT2D_slen_nor_2pt_vc__ (Point2 *pt, Point2 *pl, Vector2 *vl);
1294  double UT2D_slen_nor_2pt_vcNo (Vector2 *v1, Point2 *p1, Point2 *p2);
1295  int UT2D_2slen_vc_vc__ (double *dx, double *dy, Vector2 *vp, Vector2 *vl);
1296  int UT2D_2slen_2pt_vc__ (double *dx, double *dy,
1297  Point2 *px, Point2 *pl, Vector2 *vl);
1298 
1299  int UT2D_sid_2vc (Vector2 *v1, Vector2 *v2, double tol);
1300  int UT2D_sidPerp_2vc (Vector *v1, Vector *v2);
1301  int UT2D_sid_3pt (Point2 *pt, Point2 *p1, Point2 *p2);
1302  int UT2D_sidPerp_3pt (Point2 *p1, Point2 *p2, Point2 *p3);
1303  int UT2D_sid_ptvc (Point2*, Point2*, Vector2*);
1304  int UT2D_sidPerp_ptvc (Point2 *pt, Point2 *pl, Vector2 *vl);
1305 
1306  int UT3D_sid_2vc (Vector *v1, Vector *v2);
1307  int UT3D_sid_3pt (Point *p1, Point *p2, Point *p3);
1308  int UT3D_sid_ptpl (Point *pt, Plane *pl);
1309  int UT3D_sid_ptptvc (Point *ptx, Point *pto, Vector *vz);
1310 
1311  int UT2D_parLn_pt2pt (double *d1, Point2 *p1, Point2 *p2, Point2 *px);
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  int UT2D_pt_int2pt2vc (Point2 *ip, Point2 *pt1, Vector2 *vc1,
1367  Point2 *pt2, Vector2 *vc2);
1368  int UT2D_pt_int2vc2pt (Point2 *, Point2 *, Vector2 *, Point2 *, Vector2 *);
1370  int UT2D_2pt_intlnci (Point2 *ip1, Point2 *ip2,
1371  Line2 *ln, int lnMode, Circ2 *ci, int ciMode);
1372  int UT2D_2pt_intcici (Point2*,Point2*,Point2*,double,Point2*,double);
1373  int UT2D_2pt_int2ci (Point2 *ip1, Point2 *ip2,
1374  Circ2 *ci1, int ci1Mode, Circ2 *ci2, int ci2Mode);
1375  void UT2D_pt_traptm2 (Point2 *, Mat_3x2, Point2 *);
1376  Point2 UT2D_pt_obj2 (ObjG2 *obj1);
1377 
1378  void UT2D_ln_ptpt (Line2*, Point2*, Point2*);
1379  void UT2D_ln_ptvc (Line2*, Point2*, Vector2*);
1380  void UT2D_ln_ln3 (Line2 *ln2, Line *ln3);
1381  void UT2D_ln_inv (Line2 *ln1);
1382  void UT2D_ln_4db (Line2 *ln2, double xs, double ys, double xe, double ye);
1384  int UT2D_lncoe_ln (double *k, double *d, Line2 *ln);
1385  int UT2D_ln_pts_dmax (Line2 *ln, int np, Point2 *ptab, double tol);
1386 
1387  int UT2D_comp2vc (Vector2*, Vector2*, double);
1388  int UT2D_comp2vc_p (Vector2*, Vector2*, double);
1389  int UT2D_ckvc_in2vc (Vector2 *v1, Vector2 *v2, Vector2 *v3);
1390  void UT2D_vc_vc3 (Vector2*, Vector*);
1391  int UT2D_2parvc_3vc(double*,double*,Vector2*,Vector2*,Vector2*);
1392  void UT2D_vc_2db (Vector2 *, double, double);
1393  void UT2D_vc_angr (Vector2 *, double);
1394  void UT2D_vc_angrlen (Vector2 *, double, double);
1395  void UT2D_vc_2pt (Vector2 *, Point2 *, Point2 *);
1396  void UT2D_vc_2pt3 (Vector2 *vc, Point *p1, Point *p2);
1397  int UT2D_vc_2pt3_bp (Vector2 *vo, Point *p1, Point *p2, int bp);
1398  void UT2D_vc_2ptlen (Vector2 *, Point2 *, Point2 *, double);
1399  void UT2D_vc_ln (Vector2 *, Line2 *);
1400  void UT2D_vc_invert (Vector2 *, Vector2 *);
1401  int UT3D_vc_Zup (Vector *v2, Vector *v1);
1402  void UT2D_vc_perpvc (Vector2 *, Vector2 *);
1403  void UT2D_vc_perp2pt (Vector2 *, Point2 *, Point2 *);
1405  void UT2D_vc_setLength (Vector2 *, Vector2 *, double);
1407  void UT2D_vc_merge2vc (Vector2 *vm, Vector2 *v1, Vector2 *v2);
1408  void UT2D_vc_rotangr (Vector2 *,Vector2 *,double);
1409  void UT2D_vc_travcm2 (Vector2 *vo, Mat_3x2 mata, Vector2 *vi);
1410 
1411  double UT2D_angr_ciSec (double hc, double radc);
1412  double UT2D_len_ciSec (double hSec, double rCi);
1413  double UT2D_len_cia (double rad, double ango);
1414  double UT2D_len_cir (double *angOpe,
1415  Point2 *pa,Point2 *pe,Point2 *pc,double rad_in);
1416  int UT2D_compPtOnAc (double, double, double, int);
1417  Circ2 UT2D_ci_obj2 (ObjG2 *);
1418  int UT2D_ci_ptrd (Circ2 *ci, Point2 *ptc, double rdc);
1419  int UT2D_ci_ci3 (Circ2 *ci2, Circ *ci3);
1420  int UT2D_ci_2vc2ptrd (Point2*,Point2*,Vector2*,Point2*,Vector2*,double);
1421  int UT2D_ci_ciptvcrd (Point2*,Point2*,double,int,Point2*,Vector2*,double);
1422  int UT2D_ci_ptvcpt (Point2 *,double *,Point2 *,Vector2 *,Point2 *);
1423 
1424  int UT2D_obj_obj3 (ObjGX *oo, ObjGX *oi, Memspc *memSeg);
1425 
1426  // ObjG2 UT2D_obj_pt3 (Point*);
1427  // ObjG2 UT2D_obj_ln3 (Line*);
1429  // ObjG2 UT2D_obj_ci3 (Circ*);
1430  // ObjG2 UT2D_obj_cv3 (Curv *);
1431 
1432  int UT2D_void_obj2 (void *memObj, unsigned long *oSiz, ObjG2 *og2);
1433 
1434  void UT2D_cv_ci360 (Point2 *cv, int ptNr, double rd, Point2 *ptCen);
1435  int UT2D_cv_ln (Point2 *cv, int ptAnz, Point2 *p1, Point2 *p2);
1436  int UT2D_npt_ci (Point2 *pa, int pNr, Circ2 *ci1);
1437  int UT2D_cv_ci (Point2[],int*,Point2*,Point2*,Point2*,int);
1438  int UT2D_cv3_linear (int *pNr, Point *pTab, double tol);
1439  int UT2D_srar_polc (double *aro, int ptNr, Point2 *pa);
1440 
1441 
1442 void UT2D_m2_load (Mat_3x2, Vector2 *, Point2 *);
1443 void UT2D_m2_loadtravcm2 (Mat_3x2 ma, Vector2 *vx, Vector2 *vy, Vector2 *vt);
1444 int UT2D_m2_invtravcm2 (Mat_3x2 im1, Mat_3x2 m1);
1445 void UT2D_m2_init_rot (Mat_3x2 ma, double angle, Point2 *cen);
1446 
1447 
1448 /*===============================================================*/
1449 
1450 
1451 int UT3D_stru_dump (int typ, void *data, char *txt, ...);
1452 
1453 
1454 double UT3D_len_vc (Vector *);
1455 double UT3D_lenq_vc (Vector *);
1456 int UT3D_bplen_vc (double *lnv, Vector *vc1);
1457 double UT3D_lenB_vc (Vector *vc1);
1458 double UT3D_lenB_2pt (Point *p1, Point *p2);
1459 double UT3D_len_2pt (Point*,Point*);
1460 double UT3D_lenq_PtPt (Point *p1, Point *p2);
1461 int UT3D_lenq_PtLn (double *lenq, Point *p, Point *p1, Point *p2);
1462 double UT3D_len_ln (Line *);
1463 double UT3D_len_ci (Circ *ci1);
1464 double UT3D_slen_3pt (Point *pt, Point *p1, Point *p2);
1465 double UT3D_slen_projvcvc (Vector *vc1, Vector *vc2);
1466 double UT3D_slenq_projvcvc (Vector *vc1, Vector *vc2);
1467 double UT3D_slenq_2ptvc (Point *p1, Point *p2, Vector *vc);
1468 double UT3D_nlen_projvcvc (Vector *vc1, Vector *vc2);
1469 double UT3D_slen_2ptvc (Point *p1, Point *p2, Vector *vc);
1470 double UT3D_slen_ptpl (Point *pt, Plane *pl);
1471 double UT3D_nlen_2ptvc (Point *p1, Point *pv, Vector *vc);
1472 double UT3D_nlen_3pt (Point *p1, Point *p2, Point *p3);
1473 int UT3D_parpt_3pt (double *pl, Point *ptx, Point *pl1, Point *pl2);
1474 int UT3D_parpt_ptvc (double *pl, Point *ptx, Point *pt1, Vector *vc1);
1475 double UT3D_parpt_lnbp (Point *pti, Line *ln1, int bp);
1476 double UT3D_par1_ci_angr (Circ *ci1, double angr);
1477 double UT3D_par1_ci_pt (Circ *ci1, Point *pt1);
1478 
1479 void UT3D_pt_setFree (Point*);
1480 int UT3D_pt_isFree (Point*);
1481 int UT3D_pt_ck_npt (Point *p0, Point *pTab, int pNr, double tol);
1482 int UT3D_ipt_cknear_npt (Point *p0, Point *ptTab, int ptNr);
1483 int UT3D_ipt_ckfar_npt (Point *p0, Point *ptTab, int ptNr);
1484 int UT3D_ipt_cknearn_npt (Point *p0, Point *ptTab, int ptNr, int distNr);
1485 int UT3D_ipt2_nptvc (Point *pt1, Point *pt2, int mode,
1486  Point *pta, int iNr, Vector *vc);
1487 int UT3D_pt_ck_onel (Point *pt, CurvElli *el);
1488 int UT3D_pt_ck_ptvc (Point *pt, Point *pl, Vector *vl, double tol);
1489 int UT3D_pt_ck_2pt (Point *pt, Point *pl1, Point *pl2, double tol);
1490 int UT3D_pt_ck_onLine (Point *p1, Point *p2, Point *p3, double tol);
1491 int UT3D_pt_ck_inLine (Point *p1, Point *p2, Point *p3, double tol);
1492 int UT3D_pt_ck_mid_2pt (Point *p1, Point *p2, Point *p3, double *tol);
1493 int UT3D_pt_ck_on_pta (Point *pTab, int ptNr, Point *pt1, double tol);
1494 int UT3D_pt_ck_in2pt (Point *p1,Point *p2,Point *p3, double tol);
1495 int UT3D_pt_ck_inCirc (Circ *ci1, Point *pt1, double tol);
1496 int UT3D_pt_ck_inSph (Point *pt, Point *ps, double rs);
1497 
1498 void UT3D_swap2pt (Point *p1, Point *p2);
1499 int UT3D_comp4pt (Point *p1a,Point *p1e,Point *p2a,Point *p2e,double tol);
1500 int UT3D_compptpl (Point*, Plane*);
1502 Point UT3D_pt_pt2z (Point2 *pt20, double zVal);
1503 void UT3D_pt_3db (Point *, double, double, double);
1504 void UT3D_pt_vc (Point*, Vector*);
1505 void UT3D_pt_txt (Point *, char *);
1506 void UT3D_pt_mid2pt (Point *, Point *, Point *);
1507 int UT3D_pt_mid_pta (Point *pto, Point *pTab, int ptNr);
1508 void UT3D_pt_midci (Point *, Circ *);
1509 // UT3D_pt_multvc(po,pi,vi,d); INLINE
1510 void UT3D_pt_opp2pt (Point *, Point *, Point *);
1511 int UT3D_pt_oppptptvc (Point *po, Point *pi, Point *pl, Vector *vl);
1512 int UT3D_2pt_oppptvclen (Point*,Point*,Point*,Vector*,double);
1513 void UT3D_pt_addpt (Point *, Point *);
1514 void UT3D_pt_add_vc__ (Point *, Vector *);
1515 void UT3D_pt_add_vc_par (Point *, Vector *, double);
1516 void UT3D_pt_add_3vc_3par (Point*,Vector*,Vector*,Vector*,double,double,double);
1517 void UT3D_pt_add_pt2 (Point *, Point2 *);
1518 void UT3D_pt_add2pt (Point *, Point *, Point *);
1519 void UT3D_pt_sub_pt2 (Point *, Point *, Point2 *);
1520 void UT3D_pt_sub_pt3 (Point *, Point2 *);
1521 void UT3D_pt_tra_pt_dx (Point*, Point*, double);
1522 void UT3D_pt_tra_pt_dy (Point*, Point*, double);
1523 // void UT3D_pt_traptvc (Point *, Point *, Vector *);
1524 void UT3D_pt_traptvclen (Point *po,Point *pi,Vector *vc,double dist);
1525 void UT3D_pt_tra_pt_vc_par (Point *po,Point *pi,Vector *vc,double dist);
1526 void UT3D_pt_trapt2vc (Point *po,Point *pi,Vector *vc1, Vector *vc2);
1527 void UT3D_pt_trapt2vc2len (Point *,Point *,Vector *,double,Vector *,double);
1528 void UT3D_pt_tra_pt_2vc_2par (Point *,Point *,Vector *,double,Vector *,double);
1529 void UT3D_pt_trapt3vc3len (Point *po,Point *pi,
1530  Vector *vx,double dx, Vector *vy,double dy, Vector *vz,double dz);
1531 void UT3D_pt_traptptlen (Point *po,Point *pi,Point *pDir,double lenv);
1532 void UT3D_pt_trapt2pt (Point *po, Point *pi, Point *p1, Point *p2);
1533 int UT3D_pt_tracirlen (Point *pto, Point *pti, Circ *cii, double clen);
1534 int UT3D_pt_rotptptangr (Point *pto, Point *ptc, Point *pti, double *ar);
1535 void UT3D_pt_rotptptvcangr (Point *pto,
1536  Point *pti,Point *ptc,Vector *vz,double angr);
1537 int UT3D_pt_rotptm3 (Point *p2, Point *p1, Mat_4x3 ma);
1538 int UT3D_pt_rotciangr (Point *pto, double angr, Circ *ci1);
1539 int UT3D_pt_projpt2pt (Point *pp,double *len,Point *pt,Point *p1,Point *p2);
1540 int UT3D_pt_projptln (Point*, double*, double*, Point*, Line*);
1541 int UT3D_pt_projptci (Point *ptn, Point *ptf, Point *pt1, Circ *ci1);
1542 int UT3D_pt_projptptvc(Point *pp,double *len,double *par,
1543  Point *pt,Point *pl,Vector *vl);
1544 int UT3D_pt_projptel (int *numpe, Point *pe, CurvElli *ell, Point *pt);
1545 int UT3D_pt_projptbspl (int *nxp, Point *ptab, double *ttab,
1546  CurvBSpl *bspl, Point *pt);
1547 int UT3D_pt_projptptnvc (Point *po, Point *pi, Point *plo, Vector *plz);
1548 void UT3D_pt_projptpl (Point *, Plane *, Point *);
1549 int UT3D_pt_int2pt2vc (Point *ip1, Point *ip2, double *dist,
1550  Point *ptu, Vector *vcu, Point *ptv, Vector *vcv);
1551 int UT3D_pt_intptvcplx (Point *px, Point *pl, Vector *vl, double plx);
1552 int UT3D_pt_intptvcply (Point *px, Point *pl, Vector *vl, double ply);
1553 int UT3D_pt_intptvcplz (Point *px, Point *pl, Vector *vl, double plz);
1554 int UT3D_pt_intptvcln (Point *ip1, Point *ip2, double *dist,
1555  Point *pt1, Vector *vc1, Line *ln2);
1556 int UT3D_pt_intptvcxpln (Point *pti, Point *ptl,
1557  Point *ptpl, Vector *vcpl);
1558 int UT3D_pt_intptvcypln (Point *pti, Point *ptl,
1559  Point *ptpl, Vector *vcpl);
1560 int UT3D_pt_intptvczpln (Point *pti, Point *ptl,
1561  Point *ptpl, Vector *vcpl);
1562 int UT3D_pt_intptvcsph (Point *pa, Point *pl, Vector *vl,
1563  Point *ps, double rs);
1564 int UT3D_pt_int2ln (Point*,Point*,double*,Line*,Line*);
1565 int UT3D_pt_intperp2ln (Point *po,Point *p1,Vector *v1,Point *p2,Vector *v2);
1566 int UT3D_pt_intlnci__ (int *np, Point xp[], Line *ln, Circ *ci1);
1567 int UT3D_pt_intlnci_p (int *np, Point xp[], Line *ln, Circ *ci1);
1568 int UT3D_pt_intlnsph (Line *ln1, Point *ps, double rs);
1569 int UT3D_pt_intcici (Point pa[], Circ *ci1,int ci1Lim, Circ *ci2,int ci2Lim);
1570 int UT3D_pt_intplnln (Point *ip, double *dist, Plane *pl, Line *ln);
1571 int UT3D_pt_intlnpl (Point *, Plane *, Line *);
1572 int UT3D_pt_intlnpl1 (Point*, double*, Point*, Point*, double, double);
1573 int UT3D_pt_intptvcpln (Point *pti,
1574  Point *ptl, Vector *vcl, Point *ptpl, Vector *vcpl);
1575 int UT3D_pt_intplnci (Point pa[], Plane *pl1, Circ *ci1, int ciLim);
1576 int UT3D_pt_intcidpln (int *np, Point xp[],
1577  Point *pc, Point *p1, Vector *vz, double dx);
1578 int UT3D_pt_intptvcpl_ (Point *, Plane *, Point *, Vector *);
1579 int UT3D_pt_intlnel__ (int *np, Point xp[], Line *ln, CurvElli *el);
1580 int UT3D_pt_intlnel_p (int *np, Point xp[], Line *ln, CurvElli *el);
1581 int UT3D_pt_ipl_2ptpt2 (Point *pi3, Point *p1, Point *p2, Point2 *pi2);
1582 int UT3D_pt_mirptpl (Point *pto, Point *pti, Plane *pln);
1583 int UT3D_pt_mirptln (Point *pto, Point *pti, Line *ln);
1584 int UT3D_pt_tangptci (Point *po1, Point *po2, Point *pt1, Circ *ci1);
1585 int UT3D_pt_elfoc (Point *fp1, Point *fp2, CurvElli *el);
1586 
1587 int UT3D_pt_evparln (Point *pto, double lpar, Line *ln1);
1588 int UT3D_pt_evparci (Point *pto, double lpar, Circ *ci1);
1589 
1590 int UT3D_pt_m3 (Point *pto, Mat_4x3 ma);
1591 void UT2D_pt_traptm3 (Point2 *p2, Mat_4x3 mata, Point2 *p1);
1592 void UT3D_pt_traptm3 (Point*, Mat_4x3, Point*);
1593 void UT3D_pt_traptm4 (Point *p2, Mat_4x4 ma, Point *p1);
1594 
1595 int UT2D_ptvc_ck_int2pt (int mode, Point2 *p1s, Vector2 *v1,
1596  Point2 *p2s, Point2 *p2e);
1597 int UT3D_ptvc_int2pl (Point *pt, Vector *vc, Plane *pl1, Plane *pl2);
1598 int UT3D_ptvc_int2pln (Point *pti, Vector *vci,
1599  Point *pl1pt, Vector *pl1vz, Point *pl2pt, Vector *pl2vz);
1600 int UT3D_ptvc_ox (Point *pta, Vector *vca, ObjGX *oxi);
1601 
1602 // double UT3D_acos_2vc (Vector*,Vector*);
1603 
1604 double UT3D_angr_3pt (Point *p1, Point *pc, Point *p2);
1605 double UT3D_angr_2vc__ (Vector*,Vector*);
1606 double UT3D_angr_3vc__ (Vector *vz, Vector *v1, Vector *v2);
1607 double UT3D_angr_3vcn_CCW (Vector *vz, Vector *v1, Vector *v2);
1608 double UT3D_angr_ci_par1 (Circ *ci1, double par1);
1609 double UT3D_angr_ci__ (Circ *ci1);
1610 int UT3D_2angr_vc (double *az, double *ay, Vector *vc1);
1611 int UT3D_atan_vcpl (double *kvc, Vector *vci, Plane *pli);
1612 
1613 int UT3D_compvc0 (Vector *v1, double tol);
1614 int UT3D_comp2vc_d (Vector *, Vector *, double);
1615 int UT3D_comp2vc_p (Vector *, Vector *, double);
1616 void UT3D_vc_pt (Vector*, Point*);
1617 int UT3D_vc_ck_parpl (Vector *vci, Plane *pli, double tol);
1618 int UT3D_vc_ckperp_2vc1 (Vector *vc1, Vector *vc2, double tol);
1619 int UT3D_vc_ck_std (Vector *vc1);
1620 int UT3D_parvc_2vcbp (double *dl, int mainPln, Vector *v1, Vector *v2);
1621 int UT3D_2parvc_3vcbp (double*,double*,int,Vector*,Vector*,Vector*);
1622 // int UT3D_vc_multvc (Vector *vo, Vector *vi, double d);
1623 // void UT3D_vc_3db (Vector *, double, double, double);
1624 // void UT3D_vc_pt (Vector *, Point *);
1625 void UT3D_vc_txt (Vector *vc, char *txt);
1626 // void UT3D_vc_2pt (Vector *, Point *, Point *);
1627 void UT3D_vc_2ptlen (Vector *, Point *, Point *, double);
1628 void UT3D_vc_angr (Vector *vc, double angr);
1629 void UT3D_vc_2angr (Vector *, double, double);
1630 void UT3D_vc_2vc (Vector *, Vector *, Vector *);
1631 void UT3D_vc_ln (Vector *, Line *);
1632 int UT3D_vc_bp (Vector *vn, int bp);
1633 void UT3D_vc_invert (Vector*, Vector*);
1634 // int UT3D_vc_add2vc (Vector *v3, Vector *v1, Vector *v2);
1635 // int UT3D_vc_sub2vc (Vector *v3, Vector *v1, Vector *v2);
1636 void UT3D_vc_perp1vc (Vector *vp, Vector *vi);
1637 void UT3D_vc_perp2vc (Vector *, Vector *, Vector *);
1638 int UT3D_vc_perpvc2pt (Vector *vp, Vector *vx, Point *pc, Point *py);
1639 int UT3D_vc_perp3pt (Vector *vp, Point *ptc, Point *ptx, Point *pty);
1640 int UT3D_vc_perp4pt (Vector *vp, Point *p1, Point *p2, Point *p3, Point *p4);
1641 void UT3D_vc_perpTria (Vector *vn, Triangle *tri);
1642 void UT3D_vc_perpvcplXY (Vector *, Vector *);
1643 int UT3D_vc_perppta (Vector *vcn, int pNr, Point *pa);
1645 void UT3D_vc_setLength (Vector *, Vector *, double);
1646 int UT3D_vc_setLenLen (Vector *vco,Vector *vci,double newLen,double actLen);
1647 int UT3D_vc_tng_ci_pt (Vector *vt, Point *p1, Circ *ci);
1648 int UT3D_vc_rotangr (Vector *vco, Vector *vci, double *ar);
1649 void UT3D_vc_rot3angr (Vector *,Vector *, double, double, double);
1650 int UT3D_vc_rotvcvcangr (Vector *vo, Vector *va, Vector *vi, double angr);
1651 int UT3D_vc_projvcvc (Vector *v3, Vector *v1, Vector *v2);
1652 int UT3D_vc_projvc2vc (Vector *vo, Vector *vi, Vector *v1, Vector *v2);
1653 int UT3D_vc_projvcnvc (Vector *vo, Vector *vi, Vector *vz);
1654 void UT3D_vc_projvcpl (Vector *, Plane *, Vector *);
1655 int UT3D_vc_mirvcpl (Vector *vco, Vector *vci, Plane *pln);
1656 int UT3D_vc_mirvcln (Vector *vco, Vector *vci, Line *ln);
1657 void UT3D_vc_travcm3 (Vector *b, Mat_4x3 ma, Vector *a);
1658 void UT3D_vc_travcm4 (Vector *b, Mat_4x4 ma, Vector *a);
1659 
1660 int UT3D_comp2ln (Line *pa1, Line *pa2, double tol);
1661 int UT3D_ln_ck_on_ln (Point*,Point*,Point*,Point*,Point*,Point*,double tol);
1662 int UT3D_ln_ck_parpl (double *dist, Line *ln, Plane *pl, double tol);
1663 void UT3D_ln_6db (Line*, double, double, double, double, double, double);
1664 void UT3D_ln_2pt (Line *ln1, Point *pta, Point *pte);
1665 void UT3D_ln_2pt2 (Line *ln1, Point2 *pta, Point2 *pte);
1666 int UT3D_ln_int2pl (Line *ln, Plane *pl1, Plane *pl2);
1667 int UT3D_ln_tng_ci_ci (Line *ln1, Circ *ci1, Circ *ci2, int sNr);
1668 int UT3D_ln_parl2ln (Point*, Point*, Point*, Point*, Point*, Point*);
1669 int UT3D_ln_pts_dmax (Line *ln, int np, Point *ptab, double tol);
1670 int UT3D_ln_setLen (Line *lno, Point *pc, double lnlg, Line *lni);
1671 void UT3D_ln_inv (Line *ln1);
1672 void UT3D_ln_ln2 (Line*, Line2*);
1673 
1674 int UT3D_rdc_3pt (double *rdc, Point *pp1, Point *pp2, Point *pp3);
1675 int UT3D_ck_ci180 (Circ *ci1);
1676 int UT3D_ck_ci360 (Circ *ci1);
1677 int UT3D_ci_cip1 (Circ *ci1, Point *p1);
1678 int UT3D_ci_ptvcr (Circ *ci1, Point *pc, Vector *vz, double rc);
1679 int UT3D_ci_pt2vcr (Circ *ci1, Point *pc, Vector *vz, Vector *vx, double rc);
1680 int UT3D_ci_cip2 (Circ *ci1, Point *p2);
1681 int UT3D_ci_cip3 (Circ *ci1, Point *p1, Point *p2);
1682 int UT3D_ci_ciangr (Circ *ci, double ao2);
1683 void UT3D_ci_setangr (Circ *ci1);
1684 int UT3D_ci_ptptvcangr (Circ *ci,Point *pc,Point *p1,Vector *vz,double ao);
1685 int UT3D_ci_ptptvcrd (Circ *ci, Point *p1,Point *p2,double rd,Vector *vz,
1686  int sr, int iMod);
1687 int UT3D_ci_cipt180 (Circ *ci1, Point *p1);
1688 int UT3D_ci_cipt360 (Circ *ci1, Point *p1);
1689 int UT3D_ci_pcvzpt180 (Circ *ci1,Point *pc,Vector *vz,Point *p1,int dreh);
1690 int UT3D_ptNr_ci (Circ *ci1, double tol);
1691 int UT3D_ci_inv1 (Circ *ci1);
1692 int UT3D_ci_inv2 (Circ *ci1);
1693 int UT3D_ci_inv3 (Circ *ci1);
1695 Circ UT3D_ci_obj2 (ObjG2 *);
1696 Circ UT3D_ci_obj (ObjG *ci_in);
1697 int UT3D_ci_ptvcrd (Circ *ci, Point *ps, Vector *vs, double rd,
1698  Vector *vz, double a1);
1699 int UT3D_ci_2ptvcrd (Circ *cia,Point *pp1,Point *pp2,Vector *vz,double rdc);
1700 int UT3D_ci_3pt (Circ *cpo, Point *pp1, Point *pp2, Point *pp3);
1701 int UT3D_ci_ptptrd (Circ ca[], Point *pt1, Point *pt2, double radi);
1702 int UT3D_ci_lnptrd (Circ ca[], Line *ln1,Point *pt1,Vector *vz,double rdc);
1703 int UT3D_ci_ciptrd (Circ ca[], Circ *ci1, Point *pt1, double rdc);
1704 int UT3D_ci_2lnrd (Circ ca[], Line *ln1, Line *ln2, double rdc, int);
1705 int UT3D_ci_cicird (Circ ca[], Circ *ci1, Circ *ci2, double rdc, int);
1706 int UT3D_ci_lncird (Circ ca[], Line *ln1, Circ *ci1, double rdc, int);
1707 int UT3D_ci_intplsph (Circ *cio, Plane *pli, Sphere *spi);
1708 int UT3D_ci_ptrd2vc2angr (Circ *ci, Point *pc, double rd,
1709  Vector *vz, Vector *vx,
1710  double a1, double a2);
1711 int UT3D_ci_ptvcpt2angr (Circ *ci,
1712  Point *pc, Point *p1, Vector *vz,
1713  double a1, double a2);
1714 
1715 // source ../ut/ut_elli.c
1716 int UT3D_ck_el360 (CurvElli *el1);
1717 int UT3D_el_elpt180 (CurvElli *el1, Point *p1);
1718 double UT3D_angr_elpt (Point *pti,Point *ptc,Vector *va,Vector *vb);
1719 int UT2D_pt_elangd (Point2 *pto, double lx, double ly, double angr);
1720 int UT3D_pt_elangd (Point *pto,Point *ptc,Vector *va,Vector *vb,double angr);
1721 int UT3D_el_pt2vc2a (CurvElli *el, Point *ptc, Vector *vcx, Vector *vcy,
1722  double a1, double a2, int idir);
1723 int UT3D_el_projcipl (CurvElli *el, Plane *pl, Circ *ci);
1724 int UT3D_el_projelpl (CurvElli *elo, Plane *pl, CurvElli *eli);
1725 int UT3D_el_elcoe(CurvElli *,polcoeff_d5 *,Point2 *pa,Point2 *pe,double zt);
1727 
1728 
1729 int UT3D_pta_ck_planar (int pNr, Point *pTab, Point *pPln, Vector *vc);
1730 int UT3D_rMin_pta (double *rMin, int pNr, Point *pTab);
1731 int UT3D_sr_polc (int ptNr, Point *pa, Vector *vcn, int plMain);
1732 int UT3D_pta_dbo (Point **pTab, int *pNr, int typ, long ind, double tol);
1733 // Curv UT3D_cv_obj2 (ObjG2 *);
1734 void UT3D_cv_ln (Point *cv, int *ptAnz, Point *p1, Point *p2);
1735 int UT3D_npt_ci (Point *pa, int pNr, Circ *ci1);
1736 void UT3D_cv_ci (Point cv[], int *ptanz, Circ *ci1, int ptmax, double tol);
1737 int UT3D_cv_delia (int *pNr, Point *pTab, char *ptStat);
1738 int UT3D_cv3_linear (int *pNr, Point *pTab, double tol);
1739 
1740 // ObjG UT3D_obj_pt (Point*);
1741 ObjG UT3D_obj_ln (Line*);
1742 // ObjG UT3D_obj_ci2 (Circ2 *ci1, double zVal);
1743 ObjG UT3D_obj_ci (Circ*);
1744 // ObjG UT3D_obj_obj2 (ObjG2 *o2);
1745 
1746 int UT3D_bp_2pt (Point *pt1, Point *pt2);
1747 int UT3D_bp_vc_ (Vector*);
1748 int UT3D_bp_vcz (Vector*);
1749 void UT3D_pl_XYZ (Plane *pl1);
1750 int UT3D_pl_bpdb (Plane *plo, int bp, double dbc);
1751 int UT3D_pl_3pt (Plane *, Point *, Point *, Point *);
1752 int UT3D_pl_ptvc (Plane *, Point *, Vector *);
1753 int UT3D_pl_ptvzpl (Plane *pl, Point *pt, Vector *vcz, Plane *basPln);
1754 int UT3D_pl_ptvxpl (Plane *pl, Point *pt, Vector *vcx, Plane *basPln);
1755 int UT3D_pl_pto_vcz_vcx (Plane *pl1, Point *po, Vector *vz, Vector *vx);
1756 void UT3D_pl_pto_vcx_vcz (Plane *pl1, Point *po, Vector *vx, Vector *vz);
1757 void UT3D_pl_pto_vcx_vcy (Plane *pl1, Point *po, Vector *vx, Vector *vy);
1758 void UT3D_pl_pto_vcz_ptx (Plane *pl1, Point *po, Vector *vz, Point *ptx);
1759 int UT3D_pl_ln (Plane *pln, Line *lna);
1760 void UT3D_pl_2ln (Plane *pl1, Line *ln1, Line *ln2);
1761 int UT3D_pl_ci (Plane *pl1, Circ *ci1);
1762 int UT3D_pl_nobj (Plane *pl1, int oNr, ObjGX *oTab);
1763 void UT3D_pl_invert (Plane *pl);
1764 int UT3D_pl_rotpt (Plane *plo, Plane *pli, Point *ptx);
1765 void UT3D_pl_ptpl (Plane *pl, Point *pt1);
1766 int UT3D_pl_plcoe (Plane *pl, polcoeff_d3 *co);
1767 int UT3D_plcoe_pl (polcoeff_d3 *co, Plane *pl);
1768 void UT3D_pl_p (Plane *pl);
1769 
1770 double UT3D_plg_lvTab (double *lvTab, Point *pta, int ptNr);
1771 int UT3D_pta_plg (int *ptNr, Point *pta, CurvPoly *plg);
1772 
1773 
1774 int UT2D_box_ini0 (Point2 *pt1, Point2 *pt2);
1775 int UT2D_box_extend (Point2 *pb1, Point2 *pb2, Point2 *pt1);
1776 int UT2D_rect_pts (Point2 *pmin, Point2 *pmax, int nump, Point2 *ptab);
1777 int UT2D_ckBoxinBox1 (Point2 *p1, Point2 *p2, Point2 *p3, Point2 *p4);
1778 int UT2D_ckBoxinBox2 (Point2 *p1, Point2 *p2,Point2 *p3, Point2 *p4, double tol);
1779 int UT2D_pt_ck_inBox (Point2 *p1, Point2 *p2, Point2 *p);
1780 int UT2D_pt_ck_inBoxTol (Point2 *p1, Point2 *p2, Point2 *p, double tol);
1781 
1782 int UT3D_cv_boxxy (Point* pb1,double x1,double x2,double y1,double y2);
1783 int UT2D_box_ini0 (Point2 *pt1, Point2 *pt2);
1784 int UT3D_box_extend (Point* pb1, Point* pb2, Point* pt1);
1785 int UT3D_box_2pt (Point *pb1, Point *pb2, Point *pt1, Point *pt2);
1786 int UT3D_box_2pttol (Point *pb1, Point *pb2, Point *pt1, Point *pt2,double tol);
1787 int UT3D_box_pts (Point *pmin, Point *pmax, int nump, Point *ptab);
1788 int UT3D_box_tria (Point *pb1, Point *pb2, Triangle *tr, double tol);
1789 int UT3D_box_addTol (Point *pb1, Point *pb2, double tol);
1790 int UT3D_ck_ptInBox (Point *p1, Point *p2, Point *px);
1791 int UT3D_ckBoxinBox1 (Point *p1, Point *p2, Point *p3, Point *p4);
1792 int UT3D_box_ck_intLn (Line *ln, Point *pmin, Point *pmax, double tol);
1793 int UT3D_box_ck_intpl (Plane *pln, Point *p1, Point *p2, double tol);
1794 int UT3D_rbox_loadxy (Point* pb1,double x1,double x2,double y1,double y2);
1795 int UT3D_ptvc_intbox (Point *pl, Vector *vl, Point *bp1, Point *bp2);
1796 int UT3D_ln_intbox (Line *ln1, Point *bp1, Point *bp2);
1797 
1798 
1799 // void UT3D_tria_pta_fac(Triangle*, Fac3*, Point*);
1800 
1801 int UT3D_m3_inirot_angr (Mat_4x3 ma, Point *pa, Vector *va, double angr);
1802 void UT3D_m3_loadpl (Mat_4x3, Plane *);
1803 void UT3D_m3_load (Mat_4x3, Vector *, Vector *, Vector *);
1804 void UT3D_m3_load_povxvy (Mat_4x3 ma, Point *ori, Vector *vx, Vector *vy);
1805 void UT3D_m3_load_povxvz (Mat_4x3 ma, Point *ori, Vector *vx, Vector *vz);
1806 void UT3D_m3_load_o (Mat_4x3, Point *);
1807 // int UT3D_m3_get (void *out, int mode, Mat_4x3 ma);
1808 // int UT3D_m3_set (Mat_4x3 ma, int mode, void *da);
1810 void UT3D_m3_multm3 (Mat_4x3 m3, Mat_4x3 m1, Mat_4x3 m2);
1811 int UT3D_m3_tram3m3 (Mat_4x3 m3, Mat_4x3 m1, Mat_4x3 m2);
1812 
1813 void UT3D_m4_init (Mat_4x4 ma);
1814 void UT3D_m4_init_ori (Mat_4x4 ma, double px, double py, double pz);
1815 void UT3D_m4_init_rot (Mat_4x4 ma, double angle, Vector *axis);
1816 void UT3D_m4_loadpl (Mat_4x4 m1, Plane *pl1);
1817 void UT3D_m4_load_o (Mat_4x4 ma, Point *ori);
1818 void UT3D_m4_addrot (Mat_4x4 mo, Mat_4x4 ma, Mat_4x4 mb);
1819 void UT3D_m4_addtra (Mat_4x4 ma, double px, double py, double pz );
1820 
1821 double UT3D_sbs_ck_planar (SurBSpl *su1);
1822 double UT3D_sru_ck_planar (ObjGX *ru1);
1823 
1824 
1825 //----------------------------------------------------------------
1826 // ../ut/ut_transform
1827 // Vector UTRA_vc_abs2rel__ (Vector *vcAbs);
1828 // Vector UTRA_vc_rel2abs__ (Vector *vcRel);
1829 // Point UTRA_pt_rel2abs__ (Point *pRel);
1830 // Point UTRA_pt_abs2rel__ (Point *pAbs);
1831 
1832 
1833 //================================================================
1834 // inline functions
1835 
1836 #define IABS(i) (((i)<0)?-(i):(i))
1837 #define ISIGN(i) ((i>=0)?(1):(-1))
1838 
1839 #define ICHG01(i) (((i)>0)?(0):(1))
1841 
1842 // ICHG0-1 change 0 > -1, 1 > -2, 2 > -3
1843 #define ICHG0x1(ii) ((ii * -1) - 1)
1844 
1845 
1848 #define IMIN(x,y) (((x)<(y))?(x):(y))
1849 
1852 #define IMAX(x,y) (((x)>(y))?(x):(y))
1853 
1854 
1856 #define ILIM01(ii) (((ii) > 0)?1:0)
1857 
1858 
1860 #define ILIMm10(ii) (((ii) < 0)?-1:0)
1861 
1862 
1864 #define ILIM0X(x,hi) (((x)>(hi))?(hi):(((x)<0)?0:(x)))
1865 
1870 
1872 #define ILIM2(x,lo,hi) (((x)>(hi))?(hi):(((x)<(lo))?(lo):(x)))
1873 
1878 
1884 #define ILIMCK1(x,lim) (((x)>(lim))?(1):(((x)<(0))?(1):(0)))
1885 
1886 
1893 #define ILIMCK2(x,lo,hi) (((x)>(hi))?(1):(((x)<(lo))?(1):(0)))
1894 
1895 
1903 #define I_XOR_2I(i1,i2)i1 ^ i2
1904 
1905 
1912 // ? for ascending; : for descending.
1913 #define UTN_LIMCK__(x,v1,v2) (((v1)<(v2))\
1914 ?(((x)>(v2))?(1):(((x)<(v1))?(1):(0)))\
1915 :(((x)>(v1))?(1):(((x)<(v2))?(1):(0))))
1916 
1917 
1920 #define ICHAR(x) ((x) & 15)
1921 
1922 
1927 #define UTI_iNr_chrNr(i1) (((i1) >> 2) + 1) // (((i1) + 4) / 4)
1928 
1930 #define FDABS(df) ((df>=0.f)?(df):(-df))
1931 
1932 #define DMIN(x,y) (((x)<(y))?(x):(y))
1933 #define DMAX(x,y) (((x)>(y))?(x):(y))
1934 
1936 #define DLIM01(dd) ((dd >= 0.)?0:1)
1937 
1943 #define DLIM2(x,lo,hi) (((x)>(hi))?(hi):(((x)<(lo))?(lo):(x)))
1944 
1949 #define DSIGN(d) ((d>=0.)?(1):(-1))
1950 #define DSIGTOL(d,t) ((d>t)?(1):((d<-(t))?(-1):(0)))
1951 
1952 #define ACOS(dCos) ((dCos>=1.)?(0.):((dCos<=-1.)?(RAD_180):acos(dCos)))
1953 
1955 #define UT_RADIANS(angDeg) ((angDeg)*(RAD_1))
1956 #define UT_DEGREES(angRad) ((angRad)/(RAD_1))
1958 
1959 #define UT3D_vc_crossprod2vc UT3D_vc_perp2vc
1960 #define UT2D_acos_innerprod2vc UT2D_acos_2vc
1961 
1962 
1963 //----------------------------------------------------------------
1972 #define UTP_comp_0(db) (fabs(db) < UT_TOL_min1)
1973 
1974 
1980 #define UTP_comp2db(d1,d2,tol) (fabs(d2-d1) < (tol))
1981 
1982 
1988 #define UTP_px_paramp0p1px(p0,p1,par)\
1989  ((p1) - (p0)) * (par) + (p0);
1990 
1991 
1992 double UTP_db_comp_0 (double);
1994 #define UTP_db_comp_0(d1) ((fabs(d1) < UT_TOL_min1) ? 0.0 : d1)
1995 
1996 
1997 
1998 //----------------------------------------------------------------
1999 // set/clr/get bits in byte|short|int|long; see also ../ut/ut_BitTab.h
2000 
2004 #define BIT_SET(i,b) (i)|=(b)
2005 
2010 #define BIT_CLR(i,b) (i)&=~(b)
2011 
2016 #define BIT_GET(i,b) ((i)&(b))
2017 
2018 
2019 //----------------------------------------------------------------
2021 #define UT2D_lenq_vc(vc) ((vc)->dx*(vc)->dx + (vc)->dy*(vc)->dy)
2022 
2024 #define UT2D_len_vc(vc) (sqrt((vc)->dx*(vc)->dx + (vc)->dy*(vc)->dy))
2025 
2027 #define UT2D_lenS_2pt(p1,p2) (fabs((p2)->x - (p1)->x) + fabs((p2)->y - (p1)->y))
2028 
2030 #define UT2D_lenS_vc(vc1) (fabs((vc1)->dx) + fabs((vc1)->dy))
2031 
2033 #define UT2D_lenq_2pt(lq,p1,p2){\
2034  double _dx = (p2)->x - (p1)->x;\
2035  double _dy = (p2)->y - (p1)->y;\
2036  *(lq) = _dx * _dx + _dy * _dy;}
2037 
2043 #define UT2D_comp2pt(p1,p2,tol)\
2044  ((fabs((p2)->x - (p1)->x) < tol) &&\
2045  (fabs((p2)->y - (p1)->y) < tol))
2046 
2051 #define UT2D_swap2pt(p1,p2){\
2052  Point2 p3 = *(p1); *(p1) = *(p2); *(p2) = p3;}
2053 
2055 #define UT2D_pt_2db(pt2,dx,dy){\
2056  (pt2)->x = dx; (pt2)->y = dy;}
2057 
2059 #define UT2D_pt_pt3(pt3)\
2060  (*(Point2*)pt3)
2061 
2063 #define UT2D_pt_pt(pt2,pt3) (memcpy((pt2), (pt3), sizeof(Point2)))
2064 
2066 #define UT2D_pt_pt3bp(p2o,p3i,bpi) {\
2067  if (bpi == BCKPLN_XY) {(p2o)->x = (p3i)->x; (p2o)->y = (p3i)->y;} \
2068  else if(bpi == BCKPLN_XZ) {(p2o)->x = (p3i)->x; (p2o)->y = (p3i)->z;} \
2069  else if(bpi == BCKPLN_YZ) {(p2o)->x = (p3i)->y; (p2o)->y = (p3i)->z;}}
2070 
2072 #define UT2D_pt_addpt(po,p1){\
2073  (po)->x = (po)->x + (p1)->x;\
2074  (po)->y = (po)->y + (p1)->y;}
2075 
2077 #define UT2D_pt_sub_pt(po,p1,p2){\
2078  (po)->x = (p1)->x - (p2)->x;\
2079  (po)->y = (p1)->y - (p2)->y;}
2080 
2082 #define UT2D_pt_opp2pt(po,p1,p2){\
2083  (po)->x = (p1)->x - ((p2)->x - (p1)->x);\
2084  (po)->y = (p1)->y - ((p2)->y - (p1)->y);}
2085 
2087 #define UT2D_pt_mid2pt(po,p1,p2){\
2088  (po)->x = ((p1)->x + (p2)->x) / 2.0;\
2089  (po)->y = ((p1)->y + (p2)->y) / 2.0;}
2090 
2092 #define UT2D_pt_traptvc(po,pi,vc){\
2093  (po)->x = (pi)->x + (vc)->dx;\
2094  (po)->y = (pi)->y + (vc)->dy;}
2095 
2097 #define UT3D_pt_multvc(po,pi,vi,d){\
2098  (po)->x = (vi)->dx * (d) + (pi)->x;\
2099  (po)->y = (vi)->dy * (d) + (pi)->y;\
2100  (po)->z = (vi)->dy * (d) + (pi)->z;}
2101 
2102 //----------------------------------------------------------------
2121 #define UT2D_slen_vc_vcNo UT2D_skp_2vc
2122 #define UT2D_acos_2vc UT2D_skp_2vc
2124 
2125 #define UT2D_skp_2vc(v1,v2)\
2126  ((v1)->dx * (v2)->dx + (v1)->dy * (v2)->dy)
2127 
2128 //----------------------------------------------------------------
2132 // see UT2D_sid_2vc (test if v2 is CCW (pos) or CW (neg) from v1)
2133 // #define UT2D_crossprod_2vc UT2D_sar_2vc
2134 #define UT2D_sar_2vc(v1,v2)\
2135  ((v1)->dx * (v2)->dy - (v1)->dy * (v2)->dx)
2136 
2137 //----------------------------------------------------------------
2139 #define UT2D_acos_vc2pt UT2D_skp_vc2pt
2140 #define UT2D_skp_vc2pt(v1,p1,p2)\
2141  ((v1)->dx * ((p2)->x - (p1)->x) +\
2142  (v1)->dy * ((p2)->y - (p1)->y))
2143 
2145 void UT2D_vc_pt (Vector2*, Point2*);
2146 #define UT2D_vc_pt(vc,pt) (memcpy((vc), (pt), sizeof(Point2)))
2147 
2149 #define UT2D_vc_vc3(vc2,vc3)\
2150  (memcpy((vc2), (vc3), sizeof(Vector2)))
2151 
2153 #define UT2D_vc_2db(vc,dx,dy){\
2154  (vc)->dx = (dx);\
2155  (vc)->dy = (dy);}
2156 
2158 #define UT2D_vc_invert(vo,vi){\
2159  (vo)->dx = -(vi)->dx;\
2160  (vo)->dy = -(vi)->dy;}
2161 
2163 #define UT2D_vc_add2vc(v3,v1,v2){\
2164  (v3)->dx = (v1)->dx + (v2)->dx;\
2165  (v3)->dy = (v1)->dy + (v2)->dy;}
2166 
2168 #define UT2D_vc_sub2vc(v3,v1,v2){\
2169  (v3)->dx = (v1)->dx - (v2)->dx;\
2170  (v3)->dy = (v1)->dy - (v2)->dy;}
2171 
2172 void UT2D_vc_div_d (Vector2*, Vector2*, double);
2174 #define UT2D_vc_div_d(vo,vi,d){\
2175  (vo)->dx = (vi)->dx / (d);\
2176  (vo)->dy = (vi)->dy / (d);}
2177 
2179 #define UT2D_vc_multvc(vo,vi,d){\
2180  (vo)->dx = (vi)->dx * (d);\
2181  (vo)->dy = (vi)->dy * (d);}
2182 
2184 #define UT2D_vc_perpvc(vo,vi){\
2185  double _dx = (vi)->dx; (vo)->dx = -(vi)->dy; (vo)->dy = _dx;}
2186 
2188 #define UT2D_vc_perp2pt(vo,p1,p2){\
2189  (vo)->dx = (p1)->y - (p2)->y;\
2190  (vo)->dy = (p2)->x - (p1)->x;}
2191 
2193 #define UT2D_vc_angr(vc,angr){\
2194  (vc)->dx = cos(angr);\
2195  (vc)->dy = sin(angr);}
2196 
2198 #define UT2D_vc_vc3bp(v2o,v3i,bpi) {\
2199  if (bpi == BCKPLN_XY) {(v2o)->dx = (v3i)->dx; (v2o)->dy = (v3i)->dy;} \
2200  else if(bpi == BCKPLN_XZ) {(v2o)->dx = (v3i)->dx; (v2o)->dy = (v3i)->dz;} \
2201  else if(bpi == BCKPLN_YZ) {(v2o)->dx = (v3i)->dy; (v2o)->dy = (v3i)->dz;}}
2202 
2204 #define UT2D_vc_2pt(vc,p1,p2){\
2205  (vc)->dx = (p2)->x - (p1)->x;\
2206  (vc)->dy = (p2)->y - (p1)->y;;}
2207 
2209 #define UT2D_vc_ln(vc,ln){\
2210  (vc)->dx = (ln)->p2.x - (ln)->p1.x;\
2211  (vc)->dy = (ln)->p2.y - (ln)->p1.y;}
2212 
2213 
2214 //----------------------------------------------------------------
2215 
2216 // UT2D_ln_ptpt 2D-Line from 2 2D-points
2217 #define UT2D_ln_ptpt(ln1,pt1,pt2){\
2218  (ln1)->p1 = *(pt1);\
2219  (ln1)->p2 = *(pt2);}
2220 
2222 #define UT2D_ln_ptvc(ln,pt,vc){\
2223  (ln)->p1 = *(pt);\
2224  (ln)->p2.x = (pt)->x + (vc)->dx;\
2225  (ln)->p2.y = (pt)->y + (vc)->dy;}
2226 
2228 #define UT2D_ln_ln3(ln2,ln3){\
2229  (ln2)->p1.x = (ln3)->p1.x;\
2230  (ln2)->p1.y = (ln3)->p1.y;\
2231  (ln2)->p2.x = (ln3)->p2.x;\
2232  (ln2)->p2.y = (ln3)->p2.y;}
2233 
2235 #define UT2D_len_cia(radius, ango) (fabs((radius)*(ango)))
2236 
2238 #define UT2D_ln_inv(ln){\
2239  Point2 _pt = (ln)->p1; (ln)->p1 = (ln)->p2; (ln)->p2 = _pt;}
2240 
2241 /*
2242 // UT2D_ci_ci3 2D-Circ = 3D-Circ
2243 #define UT2D_ci_ci3(ci2,ci3){\
2244  (ci2)->p1.x = (ci3)->p1.x;\
2245  (ci2)->p1.y = (ci3)->p1.y;\
2246  (ci2)->p2.x = (ci3)->p2.x;\
2247  (ci2)->p2.y = (ci3)->p2.y;\
2248  (ci2)->pc.x = (ci3)->pc.x;\
2249  (ci2)->pc.y = (ci3)->pc.y;\
2250  (ci2)->rad = (ci3)->rad;\
2251  (ci2)->ango = (ci3)->ango;}
2252 */
2253 
2254 
2255 //----------------------------------------------------------------
2257 #define UT3D_lenq_vc(vc)\
2258  ((vc)->dx*(vc)->dx + (vc)->dy*(vc)->dy + (vc)->dz*(vc)->dz)
2259 
2261 #define UT3D_len_vc(vc)\
2262  (sqrt((vc)->dx*(vc)->dx + (vc)->dy*(vc)->dy + (vc)->dz*(vc)->dz))
2263 
2278 // skp mit sich selbst = Laenge * Laenge
2279 #define UT3D_skp_2vc(v1,v2)\
2280  ((v1)->dx*(v2)->dx + (v1)->dy*(v2)->dy + (v1)->dz*(v2)->dz)
2281 
2282 #define UT3D_skp_2ptvc(p1,p2,v1)\
2283  ((v1)->dx * ((p2)->x - (p1)->x) +\
2284  (v1)->dy * ((p2)->y - (p1)->y) +\
2285  (v1)->dz * ((p2)->z - (p1)->z))
2286 
2288 #define UT3D_acos_2vc UT3D_skp_2vc
2289 #define UT3D_acos_vc2pt UT3D_skp_2ptvc
2290 
2291 
2292 //----------------------------------------------------------------
2294 #define UT3D_pt_NEW {UT_VAL_MAX, 0., 0.}
2295 
2297 #define UT3D_pt_setFree(obj) (obj)->x = UT_VAL_MAX
2298 
2304 #define UT3D_pt_isFree(obj) ((obj)->x == UT_VAL_MAX)
2305 
2306 
2307 
2309 #define UT3D_pt_pt(pt3,pt2,zVal){\
2310  memcpy((pt3), (pt2), sizeof(Point)); (pt3)->z = (zVal);}
2311 
2313 #define UT3D_pt_multpt(po,pi,d){\
2314  (po)->x = (pi)->x * (d);\
2315  (po)->y = (pi)->y * (d);\
2316  (po)->z = (pi)->z * (d);}
2317 
2322 #define UT3D_pt_LinComb2Pts(po,a1,p1,a2,p2){\
2323  (po)->x = a1 * (p1)->x + a2 * (p2)->x;\
2324  (po)->y = a1 * (p1)->y + a2 * (p2)->y;\
2325  (po)->z = a1 * (p1)->z + a2 * (p2)->z;}
2326 
2328 #define UT3D_pt_addpt(po,p1){\
2329  (po)->x += (p1)->x;\
2330  (po)->y += (p1)->y;\
2331  (po)->z += (p1)->z;}
2332 
2334 #define UT3D_pt_add_pt2(po,p1){\
2335  (po)->x += (p1)->x;\
2336  (po)->y += (p1)->y;}
2337 
2339 #define UT3D_pt_add_vc__(pt,vc){\
2340  (pt)->x += (vc)->dx;\
2341  (pt)->y += (vc)->dy;\
2342  (pt)->z += (vc)->dz;}
2343 
2345 #define UT3D_pt_add_vc_rev(pt,vc){\
2346  (pt)->x -= (vc)->dx;\
2347  (pt)->y -= (vc)->dy;\
2348  (pt)->z -= (vc)->dz;}
2349 
2351 #define UT3D_pt_add_vc_par(pt,vc,lpar){\
2352  (pt)->x += (vc)->dx * lpar;\
2353  (pt)->y += (vc)->dy * lpar;\
2354  (pt)->z += (vc)->dz * lpar;}
2355 
2359 #define UT3D_pt_add_3vc_3par(pt,v1,v2,v3,lp1,lp2,lp3){\
2360  (pt)->x += (v1)->dx * lp1 + (v2)->dx * lp2 + (v3)->dx * lp3;\
2361  (pt)->y += (v1)->dy * lp1 + (v2)->dy * lp2 + (v3)->dy * lp3;\
2362  (pt)->z += (v1)->dz * lp1 + (v2)->dz * lp2 + (v3)->dz * lp3;}
2363 
2366 #define UT3D_pt_add2pt(po,p1,p2){\
2367  (po)->x = (p1)->x + (p2)->x;\
2368  (po)->y = (p1)->y + (p2)->y;\
2369  (po)->z = (p1)->z + (p2)->z;}
2370 
2372 #define UT3D_pt_sub_pt3(pto,pti){\
2373  (pto)->x -= (pti)->x;\
2374  (pto)->y -= (pti)->y;\
2375  (pto)->z -= (pti)->z;}
2376 
2378 #define UT3D_pt_sub_pt2(po,p1,p2){\
2379  (po)->x = (p1)->x - (p2)->x;\
2380  (po)->y = (p1)->y - (p2)->y;}
2381 
2386 #define UT3D_swap2pt(p1,p2){\
2387  Point p3 = *(p1); *(p1) = *(p2); *(p2) = p3;}
2388 
2390 #define UT3D_pt_vc(pt,vc) (memcpy((pt), (vc), sizeof(Point)))
2391 // // p1 = UT3D_pt_vc (&vz);
2392 // #define UT3D_pt_vc__(vc) *((Point*)vc)
2393 
2394 
2396 #define UT3D_pt_tra_pt_dx(po,pi,dx)\
2397  *po = *pi; (po)->x += dx
2398 
2400 #define UT3D_pt_tra_pt_dy(po,pi,dy)\
2401  *po = *pi; (po)->y += dy
2402 
2403 
2405 #define UT3D_pt_traptvc(po,pi,vc){\
2406  (po)->x = (pi)->x + (vc)->dx;\
2407  (po)->y = (pi)->y + (vc)->dy;\
2408  (po)->z = (pi)->z + (vc)->dz;}
2409 
2411 #define UT3D_pt_traptivc(po,pi,vc){\
2412  (po)->x = (pi)->x - (vc)->dx;\
2413  (po)->y = (pi)->y - (vc)->dy;\
2414  (po)->z = (pi)->z - (vc)->dz;}
2415 
2416 
2418 #define UT3D_pt_traptmultvc(po,pi,vc,fac){\
2419  (po)->x = (pi)->x + (vc)->dx * fac; \
2420  (po)->y = (pi)->y + (vc)->dy * fac;\
2421  (po)->z = (pi)->z + (vc)->dz * fac;}
2422 
2423 
2425 #define UT3D_pt_evparptcv(pto,par,ptl,vcl){\
2426  (pto)->x = (ptl)->x + (vcl)->dx * (par);\
2427  (pto)->y = (ptl)->y + (vcl)->dy * (par);\
2428  (pto)->z = (ptl)->z + (vcl)->dz * (par);}
2429 
2430 
2435 #define u3d_LinComb2Pts(po,a1,p1,a2,p2){\
2436  (po)->x = a1 * (p1)->x + a2 * (p2)->x;\
2437  (po)->y = a1 * (p1)->y + a2 * (p2)->y;\
2438  (po)->z = a1 * (p1)->z + a2 * (p2)->z;}
2439 
2440 
2441 
2447 #define UT3D_vc_isFree(obj) (obj)->dx == UT_VAL_MAX
2448 
2449 
2451 #define UT3D_vc_setFree(obj) (obj)->dx = UT_VAL_MAX
2452 
2453 
2455 #define UT3D_vc_vc2(v3o,v2i){\
2456  (v3o)->dx = (v2i)->dx;\
2457  (v3o)->dy = (v2i)->dy;\
2458  (v3o)->dz = UT_DB_NULL;}
2459 
2461 #define UT3D_vc_3db(vc,x,y,z){\
2462  (vc)->dx = (x);\
2463  (vc)->dy = (y);\
2464  (vc)->dz = (z);}
2465 
2467 #define UT3D_vc_pt(vc,pt) (memcpy((vc), (pt), sizeof(Point)))
2468 // // v1 = UT3D_vc_pt (&pt);
2469 // #define UT3D_vc_pt__(pt) *((Vector*)pt)
2470 
2472 void UT3D_vc_pt3db (Vector*, Point*, double, double, double);
2473 #define UT3D_vc_pt3db(vc,p1,px,py,pz) {\
2474  (vc)->dx = (px) - (p1)->x;\
2475  (vc)->dy = (py) - (p1)->y;\
2476  (vc)->dz = (pz) - (p1)->z;}
2477 
2479 #define UT3D_vc_2pt(vc,p1,p2){\
2480  (vc)->dx = (p2)->x - (p1)->x;\
2481  (vc)->dy = (p2)->y - (p1)->y;\
2482  (vc)->dz = (p2)->z - (p1)->z;}
2483 
2485 #define UT3D_vc_perpTria(vn,tri)\
2486  UT3D_vc_perp3pt ((vn),(tri)->pa[0],(tri)->pa[1],(tri)->pa[2])
2487 
2489 #define UT3D_vc_invert(vio,vii){\
2490  (vio)->dx = -(vii)->dx;\
2491  (vio)->dy = -(vii)->dy;\
2492  (vio)->dz = -(vii)->dz;}
2493 
2495 #define UT3D_vc_addvc(vo,vi){\
2496  (vo)->dx += (vi)->dx;\
2497  (vo)->dy += (vi)->dy;\
2498  (vo)->dz += (vi)->dz;}
2499 
2501 #define UT3D_vc_add2vc(v3,v1,v2){\
2502  (v3)->dx = (v1)->dx + (v2)->dx;\
2503  (v3)->dy = (v1)->dy + (v2)->dy;\
2504  (v3)->dz = (v1)->dz + (v2)->dz;}
2505 
2507 #define UT3D_vc_addvc2pt(v3,v1,p1,p2){\
2508  (v3)->dx = (v1)->dx + (p2)->x - (p1)->x;\
2509  (v3)->dy = (v1)->dy + (p2)->y - (p1)->y;\
2510  (v3)->dz = (v1)->dz + (p2)->z - (p1)->z;}
2511 
2513 #define UT3D_vc_add3vc(vo,v1,v2,v3){\
2514  (vo)->dx = (v1)->dx + (v2)->dx + (v3)->dx;\
2515  (vo)->dy = (v1)->dy + (v2)->dy + (v3)->dy;\
2516  (vo)->dz = (v1)->dz + (v2)->dz + (v3)->dz;}
2517 
2519 #define UT3D_vc_sub2vc(v3,v1,v2){\
2520  (v3)->dx = (v1)->dx - (v2)->dx;\
2521  (v3)->dy = (v1)->dy - (v2)->dy;\
2522  (v3)->dz = (v1)->dz - (v2)->dz;}
2523 
2525 void UT3D_vc_div_d (Vector*, Vector*, double);
2526 #define UT3D_vc_div_d(vo,vi,d){\
2527  (vo)->dx = (vi)->dx / (d);\
2528  (vo)->dy = (vi)->dy / (d);\
2529  (vo)->dz = (vi)->dz / (d);}
2530 
2532 #define UT3D_vc_multvc(vo,vi,d){\
2533  (vo)->dx = (vi)->dx * (d);\
2534  (vo)->dy = (vi)->dy * (d);\
2535  (vo)->dz = (vi)->dz * (d);}
2536 
2538 #define UT3D_vc_merge2vc(vo,v1,v2){\
2539  (vo)->dx = ((v1)->dx + (v2)->dx) / 2.;\
2540  (vo)->dy = ((v1)->dy + (v2)->dy) / 2.;\
2541  (vo)->dz = ((v1)->dz + (v2)->dz) / 2.;}
2542 
2550 int UT3D_comp2pt (Point *, Point *, double);
2551 #define UT3D_comp2pt(p1,p2,tol)\
2552  ((fabs((p2)->x - (p1)->x) < tol) &&\
2553  (fabs((p2)->y - (p1)->y) < tol) &&\
2554  (fabs((p2)->z - (p1)->z) < tol))
2555  // ((UTP_comp2db((p1)->x,(p2)->x,(tol))) &&\
2556  // (UTP_comp2db((p1)->y,(p2)->y,(tol))) &&\
2557  // (UTP_comp2db((p1)->z,(p2)->z,(tol))))
2558 
2559 
2561 #define UT3D_ln_inv(ln)\
2562  {Point _pt = (ln)->p1; (ln)->p1 = (ln)->p2; (ln)->p2 = _pt;}
2563 
2565 #define UT3D_ln_ptpt(ln1,pt1,pt2)\
2566  {(ln1)->p1 = *(pt1);\
2567  (ln1)->p2 = *(pt2);}
2568 
2570 #define UT3D_ln_ptvc(ln,pt,vc)\
2571  {(ln)->p1 = *(pt);\
2572  (ln)->p2.x = (pt)->x + (vc)->dx;\
2573  (ln)->p2.y = (pt)->y + (vc)->dy;\
2574  (ln)->p2.z = (pt)->z + (vc)->dz;}
2575 
2577 #define UT3D_ln_ln2(ln3,ln2)\
2578  {(ln3)->p1.x = (ln2)->p1.x;\
2579  (ln3)->p1.y = (ln2)->p1.y;\
2580  (ln3)->p1.z = UT_DB_NULL;\
2581  (ln3)->p2.x = (ln2)->p2.x;\
2582  (ln3)->p2.y = (ln2)->p2.y;\
2583  (ln3)->p2.z = UT_DB_NULL;}
2584 
2585 
2586 //----------------------------------------------------------------
2587 /*
2588 // ut_tria
2589 
2594 #define UT3D_ck_triaOrientI(i0,i1)\
2595  (((((i0)==0)&&((i1)==1))||(((i0)==1)&&((i1)==2))||(((i0)==2)&&((i1)==0))) ? CCW : CW)
2596 
2601 #define UT3D_ck_triaOrientV(i0,i1)\
2602  (((((i0)==1)&&((i1)==2))||(((i0)==2)&&((i1)==4))||(((i0)==4)&&((i1)==1))) ? CCW : CW)
2603 
2607 #define UT3D_ind3Tria_2ind(i1,i2) (IABS((i1)+(i2)-3))
2608 
2610 #define UT3D_tria_pta_fac(tri,fac,pTab){\
2611  (tri)->pa[0] = &(pTab)[(fac)->i1];\
2612  (tri)->pa[1] = &(pTab)[(fac)->i2];\
2613  (tri)->pa[2] = &(pTab)[(fac)->i3];}
2614 */
2615 
2616 
2617 
2618 //----------------------------------------------------------------
2619 void ODB_set_odb (ObjDB *odb, int oTyp, long oDbi);
2620 #define ODB_set_odb(odb,oTyp,oDbi){\
2621  (odb)->dbInd = (oDbi);\
2622  (odb)->dlInd = 0L;\
2623  (odb)->typ = (oTyp);\
2624  (odb)->stat = 0;}
2625 
2626 
2627 
2628 
2629 //----------------------------------------------------------------
2631 #define TYP_IS_OPM(typ) ((typ>=TYP_OpmPlus)&&(typ<Typ_FcmSQRT))
2632 
2634 #define TYP_IS_GEOMPAR(typ) ((typ>=Typ_Val)&&(typ<Typ_Typ))
2635 
2637 #define TYP_IS_FCM(typ) ((typ>=Typ_FcmSQRT)&&(typ<310))
2638 
2640 #define TYP_IS_MOD(typ) ((typ>=Typ_modif)&&(typ<TYP_FuncInit)||\
2641  (typ>=Typ_FncVAR1)&&(typ<Typ_EOT))
2642 
2644 #define TYP_IS_SELGRP(typ) ((typ>=Typ_goGeom)&&(typ<Typ_FncVAR1))
2645 // #define TYP_IS_SELGRP(typ) ((typ>=Typ_goGeom)&&(typ<Typ_FncVAR1)||\
2646  // (typ==Typ_lFig))
2647 
2648 
2649 
2650 //=============== EOF ============================================
int UT3D_pt_intptvcypln(Point *pti, Point *ptl, Point *ptpl, Vector *vcpl)
Definition: ut_geo3d.c:1677
char typ
Definition: ut_geo.h:361
int UT2D_2pt_intciptvc(Point2 *, Point2 *, Point2 *, double, Point2 *, Vector2 *)
Definition: ut_geo2d.c:4255
int typ
Definition: xa_tra.c:151
int UT3D_pt_intplnci(Point pa[], Plane *pl1, Circ *ci1, int ciLim)
Definition: ut_geo3d.c:17733
int UT3D_pt_ck_inCirc(Circ *ci1, Point *pt1, double tol)
Definition: ut_geo3d.c:7124
int UT2D_solvtri_abc(double *, double *, double, double, double)
Definition: ut_geo2d.c:1016
torus; Typ_TOR
Definition: ut_geo.h:870
int UT2D_pt_int4pt(Point2 *, double *, double *, double *, Point2 *, Point2 *, Point2 *, Point2 *)
Definition: ut_geo2d.c:3536
long ind
Definition: ut_geo.h:955
char uu
Definition: ut_geo.h:889
double v1
Definition: ut_geo.h:490
int UT3D_ln_setLen(Line *lno, Point *pc, double lnlg, Line *lni)
Definition: ut_geo3d.c:17644
void UT2D_pt_traptvclen(Point2 *, Point2 *, Vector2 *, double)
Definition: ut_geo2d.c:2944
const int UT_INT_MAX
Definition: ut_const.h:35
int UT2D_pt_ck_onLine(Point2 *po, Point2 *p1, Point2 *p2, Point2 *p3, double tol)
Definition: ut_geo2d.c:7258
3D-symbol; Typ_SymRef
Definition: ut_geo.h:911
int UT3D_pt_int2ln(Point *, Point *, double *, Line *, Line *)
Definition: ut_geo3d.c:18757
int UT3D_2angr_vc(double *az, double *ay, Vector *vc1)
Definition: ut_geo3d.c:721
int UT3D_minLen_4pt(double *, Point *, Point *, Point *, Point *)
Definition: ut_geo3d.c:4714
double UTP_min_d3(double *d1, double *d2, double *d3)
Definition: ut_uti.c:1268
void UT2D_vc_rotangr(Vector2 *, Vector2 *, double)
Definition: ut_geo2d.c:5226
int UT3D_ci_2lnrd(Circ ca[], Line *ln1, Line *ln2, double rdc, int)
Definition: ut_geo3d.c:3329
double UT_DISP_cv
max deviation from curve (distance analyticalCurve -> displayPolygon)
Definition: ut_tol_const.h:59
int UT3D_vc_perp3pt(Vector *vp, Point *ptc, Point *ptx, Point *pty)
Definition: ut_geo3d.c:10679
DisplayListRecord.
Definition: ut_geo.h:984
double UT2D_angr_ciSec(double hc, double radc)
Definition: ut_geo2d.c:5436
#define UT2D_swap2pt(p1, p2)
UT2D_swap2pt swap 2 2D-points.
Definition: ut_geo.h:2051
#define UT_RADIANS(angDeg)
UT_RADIANS radians from degrees.
Definition: ut_geo.h:1955
Clothoid curve Typ_CVCLOT.
Definition: ut_geo.h:569
int UT3D_vc_rotvcvcangr(Vector *vo, Vector *va, Vector *vi, double angr)
Definition: ut_geo3d.c:11398
void UT3D_ln_2pt2(Line *ln1, Point2 *pta, Point2 *pte)
Definition: ut_geo3d.c:12151
int UT2D_pt_cknear_npt(Point2 *p0, Point2 *ptTab, int ptNr)
Definition: ut_geo2d.c:7900
void ODB_set_odb(ObjDB *odb, int oTyp, long oDbi)
double f
Definition: ut_geo.h:159
double UT_TOL_pt
identical Points-tolerence
Definition: ut_tol_const.h:50
char typi
Definition: ut_geo.h:225
int UT2D_pt_ck_inBox(Point2 *p1, Point2 *p2, Point2 *p)
Definition: ut_box.c:277
void UT2D_cv_ci360(Point2 *cv, int ptNr, double rd, Point2 *ptCen)
Definition: ut_geo2d.c:6601
int UT3D_pt_ck_npt(Point *p0, Point *pTab, int pNr, double tol)
Definition: ut_geo3d.c:5700
int = short + short
Definition: ut_geo.h:140
int UT3D_lenq_PtLn(double *lenq, Point *p, Point *p1, Point *p2)
Definition: ut_geo3d.c:4590
void UT3D_pt_trapt2pt(Point *po, Point *pi, Point *p1, Point *p2)
Definition: ut_geo3d.c:7433
3D-weighted-point, Typ_WPT
Definition: ut_geo.h:199
UINT_32 iatt
Definition: ut_geo.h:956
int UT3D_minLen_3pt(double *, Point *, Point *, Point *)
Definition: ut_geo3d.c:4656
int UT3D_cv3_linear(int *pNr, Point *pTab, double tol)
Definition: ut_geo3d.c:3883
long lNr
Definition: ut_geo.h:984
int UT2D_ci_2vc2ptrd(Point2 *, Point2 *, Vector2 *, Point2 *, Vector2 *, double)
short typ
Definition: ut_geo.h:821
long ID2
Definition: ut_geo.h:457
void UT3D_pt_txt(Point *, char *)
Definition: ut_geo3d.c:9828
#define UT2D_vc_2pt(vc, p1, p2)
UT2D_vc_2pt 2D-Vector = 2D-Point -> 2D-Point.
Definition: ut_geo.h:2204
char * txt
Definition: ut_geo.h:742
void UT3D_m4_loadpl(Mat_4x4 m1, Plane *pl1)
Definition: ut_geo3d.c:16359
#define OBJ_SIZ_MAX
OBJ_SIZ_MAX max. obj-size (for get, copy ..)
Definition: ut_geo.h:123
void UT3D_m4_init_rot(Mat_4x4 ma, double angle, Vector *axis)
Definition: ut_geo3d.c:16253
int UTP_compdb0(double, double)
Definition: ut_uti.c:651
void UT3D_m4_load_o(Mat_4x4 ma, Point *ori)
Definition: ut_geo3d.c:16391
int UT2D_void_obj2(void *memObj, unsigned long *oSiz, ObjG2 *og2)
Definition: ut_geo2d.c:6007
Area: Rat.B-Spline-Surf Typ_SURRBSP.
Definition: ut_geo.h:715
#define UT3D_lenq_vc(vc)
UT3D_lenq_vc quadr.length of 3D-vector.
Definition: ut_geo.h:2257
3D-plane, Typ_PLN
Definition: ut_geo.h:631
double UT3D_slen_ptpl(Point *pt, Plane *pl)
Definition: ut_geo3d.c:4482
int UTP_db_cknear_ndb(double db1, int dbNr, double *dbTab)
Definition: ut_uti.c:1202
ObjTXTSRC type of expression of sourceObject.
Definition: ut_geo.h:273
#define UT3D_len_vc(vc)
UT3D_len_vc length of 3D-vector.
Definition: ut_geo.h:2261
int UT3D_ln_pts_dmax(Line *ln, int np, Point *ptab, double tol)
Definition: ut_geo3d.c:17577
int UT3D_vc_perpvc2pt(Vector *vp, Vector *vx, Point *pc, Point *py)
Definition: ut_geo3d.c:10612
cone; Typ_CON
Definition: ut_geo.h:858
int UT3D_bplen_vc(double *lnv, Vector *vc1)
Definition: ut_geo3d.c:4378
void UT3D_pt_trapt2vc(Point *po, Point *pi, Vector *vc1, Vector *vc2)
Definition: ut_geo3d.c:7322
int UT2D_compPtOnAc(double, double, double, int)
Definition: ut_geo2d.c:5461
Point p2
Definition: ut_geo.h:337
int UT3D_vc_ck_std(Vector *vc1)
Definition: ut_geo3d.c:9711
void UT2D_pt_traptvc2len(Point2 *, Point2 *, Vector2 *, double, double)
Definition: ut_geo2d.c:3040
void UT3D_ci_setangr(Circ *ci1)
Definition: ut_geo3d.c:12453
Point * cpTab
Definition: ut_geo.h:717
void UT2D_vc_mid2vc(Vector2 *, Vector2 *, Vector2 *)
Definition: ut_geo2d.c:5174
void UT3D_m4_init_ori(Mat_4x4 ma, double px, double py, double pz)
Definition: ut_geo3d.c:16209
char uu2
Definition: ut_geo.h:419
int UT2D_sidPerp_ptvc(Point2 *pt, Point2 *pl, Vector2 *vl)
Definition: ut_geo2d.c:2596
float off
Definition: ut_geo.h:640
const double UT_VAL_MIN
Definition: ut_const.h:36
unsigned short is1
Definition: ut_geo.h:608
int UT3D_ci_3pt(Circ *cpo, Point *pp1, Point *pp2, Point *pp3)
Definition: ut_geo3d.c:12677
#define UT2D_ln_ptpt(ln1, pt1, pt2)
Definition: ut_geo.h:2217
void UT2D_pt_tra2pt3len(Point2 *, Point2 *, Point2 *, double, double, double)
Definition: ut_geo2d.c:2920
int UT2D_cv_ci(Point2[], int *, Point2 *, Point2 *, Point2 *, int)
Definition: ut_geo2d.c:6731
int UT3D_pt_ck_on_pta(Point *pTab, int ptNr, Point *pt1, double tol)
Definition: ut_geo3d.c:7066
const Vector UT3D_VECTOR_IX
int UT3D_ci_2ptvcrd(Circ *cia, Point *pp1, Point *pp2, Vector *vz, double rdc)
Definition: ut_geo3d.c:12800
int UT3D_ci_pt2vcr(Circ *ci1, Point *pc, Vector *vz, Vector *vx, double rc)
Definition: ut_geo3d.c:13118
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:870
#define UT3D_swap2pt(p1, p2)
UT3D_swap2pt swap 2 3D-points.
Definition: ut_geo.h:2386
Definition: ut_geo.h:159
int UT3D_pta_plg(int *ptNr, Point *pta, CurvPoly *plg)
Definition: ut_npt.c:525
int UT3D_pt_intlnel_p(int *np, Point xp[], Line *ln, CurvElli *el)
Definition: ut_elli.c:2303
double UT_TOL_min2
Definition: ut_tol_const.h:34
double v1V
Definition: ut_geo.h:703
int UT3D_sid_2vc(Vector *v1, Vector *v2)
Definition: ut_geo3d.c:5498
void UT2D_pt_tra3ptlen(Point2 *, Point2 *, Point2 *, Point2 *, double)
Definition: ut_geo2d.c:2849
void UT2D_vc_normalize(Vector2 *, Vector2 *)
Definition: ut_geo2d.c:5128
int UT3D_m3_inirot_angr(Mat_4x3 ma, Point *pa, Vector *va, double angr)
Definition: ut_geo3d.c:15546
double UT3D_lenB_vc(Vector *vc1)
Definition: ut_geo3d.c:4350
double b
Definition: ut_geo.h:156
int UT3D_compptpl(Point *, Plane *)
ellipse, Typ_CVELL
Definition: ut_geo.h:450
int UT3D_vc_Zup(Vector *v2, Vector *v1)
Definition: ut_geo3d.c:10474
int UT3D_ipt_cknear_npt(Point *p0, Point *ptTab, int ptNr)
Definition: ut_geo3d.c:6801
void UT2D_m2_init_rot(Mat_3x2 ma, double angle, Point2 *cen)
Definition: ut_geo2d.c:8711
3D-dimension; Typ_Dim3
Definition: ut_geo.h:897
3D-line, Typ_LN
Definition: ut_geo.h:361
#define UT3D_vc_div_d(vo, vi, d)
Definition: ut_geo.h:2526
int UT3D_pl_ln(Plane *pln, Line *lna)
Definition: ut_geo3d.c:14661
Definition: ut_geo.h:156
int UT3D_pt_oppptptvc(Point *po, Point *pi, Point *pl, Vector *vl)
Definition: ut_geo3d.c:7228
double * wTab
Definition: ut_geo.h:716
int UT2D_angr_set(double *angr)
Definition: ut_geo2d.c:580
int UT3D_ln_intbox(Line *ln1, Point *bp1, Point *bp2)
Definition: ut_box.c:920
Vector vz
Definition: ut_geo.h:998
char mode
Definition: xa_tra.c:152
int UT2D_box_ini0(Point2 *pt1, Point2 *pt2)
Definition: ut_box.c:132
int UT3D_pt_intptvcply(Point *px, Point *pl, Vector *vl, double ply)
Definition: ut_geo3d.c:1491
int par
Definition: ut_geo.h:839
int UT2D_3len_ptln(double *, double *, double *, Point2 *, Point2 *, Point2 *)
Definition: ut_geo2d.c:1593
void UT3D_pt_3db(Point *, double, double, double)
Definition: ut_geo3d.c:6087
long cvID
Definition: ut_geo.h:680
int UT3D_pt_projptptnvc(Point *po, Point *pi, Point *plo, Vector *plz)
Definition: ut_geo3d.c:7986
int UT3D_pt_ipl_2ptpt2(Point *pi3, Point *p1, Point *p2, Point2 *pi2)
Definition: ut_geo3d.c:8468
3D-circle, Typ_CI
Definition: ut_geo.h:404
#define UT2D_len_cia(radius, ango)
UT2D_len_cia length arc (from rad & angle)
Definition: ut_geo.h:2235
double UT3D_lenB_2pt(Point *p1, Point *p2)
Definition: ut_geo3d.c:4526
int UT2D_ln_pts_dmax(Line2 *ln, int np, Point2 *ptab, double tol)
Definition: ut_geo2d.c:8840
int UT3D_ptNr_ci(Circ *ci1, double tol)
Definition: ut_geo3d.c:12181
void UT3D_pl_pto_vcx_vcz(Plane *pl1, Point *po, Vector *vx, Vector *vz)
Definition: ut_geo3d.c:15023
int siz
Definition: ut_geo.h:585
Definition: ut_geo.h:322
ObjG UT3D_obj_ci(Circ *)
Definition: ut_geo3d.c:3844
int UT2D_pt_projpt2pt(Point2 *pp, double *len, Point2 *pt, Point2 *p1, Point2 *p2)
Definition: ut_geo2d.c:3212
int UT3D_ci_cip3(Circ *ci1, Point *p1, Point *p2)
Definition: ut_geo3d.c:12410
double UT3D_angr_2vc__(Vector *, Vector *)
Definition: ut_geo3d.c:14203
int UT3D_ci_ptvcrd(Circ *ci, Point *ps, Vector *vs, double rd, Vector *vz, double a1)
Definition: ut_geo3d.c:12615
int UT2D_pt_projptci(Point2 *pp, Point2 *pt, Circ2 *ci1)
Definition: ut_geo2d.c:4206
#define UT2D_vc_ln(vc, ln)
UT2D_vc_ln 2D-Vector from 2D-Line.
Definition: ut_geo.h:2209
#define UT3D_pt_vc(pt, vc)
UT3D_pt_vc Point = Vector.
Definition: ut_geo.h:2390
int UT3D_pta_ck_planar(int pNr, Point *pTab, Point *pPln, Vector *vc)
Definition: ut_geo3d.c:4170
StandardSurf (planar, conic, toroid) Typ_SUR.
Definition: ut_geo.h:680
Typ_ObjSRC sourceObject.
Definition: ut_geo.h:263
int UT3D_ptvc_intbox(Point *pl, Vector *vl, Point *bp1, Point *bp2)
Definition: ut_box.c:966
double rad
Definition: ut_geo.h:391
unsigned char use
Definition: ut_geo.h:338
int UT2D_obj_obj3(ObjGX *oo, ObjGX *oi, Memspc *memSeg)
Definition: ut_geo2d.c:5762
#define UT2D_len_vc(vc)
UT2D_len_vc length of 2D-vector.
Definition: ut_geo.h:2024
#define UT3D_pt_tra_pt_dy(po, pi, dy)
UT3D_pt_tra_pt_dy Point = Point + dy.
Definition: ut_geo.h:2400
int UT3D_atan_vcpl(double *kvc, Vector *vci, Plane *pli)
Definition: ut_geo3d.c:899
void UT2D_pt_tra2pt2len(Point2 *, Point2 *, Point2 *, double, double)
Definition: ut_geo2d.c:2881
double * wTab
Definition: ut_geo.h:525
#define UT3D_pt_add_vc_par(pt, vc, lpar)
UT3D_pt_add_vc_par add (vector * lpar) po += (vc * lpar)
Definition: ut_geo.h:2351
#define UT2D_pt_2db(pt2, dx, dy)
UT2D_pt_2db 2D-Point < 2 doubles (x, y)
Definition: ut_geo.h:2055
#define UT2D_lenS_vc(vc1)
UT2D_lenS_vc dx+dy-distance 2D-vector.
Definition: ut_geo.h:2030
void UT2D_pt_rotptangr(Point2 *, Point2 *, Point2 *, double)
Definition: ut_geo2d.c:3099
short us1
Definition: ut_geo.h:609
long siz
Definition: ut_geo.h:795
Vector vz
Definition: ut_geo.h:830
Vector vz
Definition: ut_geo.h:301
double UT3D_len_ci(Circ *ci1)
Definition: ut_geo3d.c:4438
#define UTP_comp2db(d1, d2, tol)
UTP_comp2db compare 2 doubles (with tolerance)
Definition: ut_geo.h:1980
double * val
Definition: ut_geo.h:284
Circ UT3D_ci_ci2(Circ2 *)
Definition: ut_geo3d.c:13148
double UT2D_angr_2ln(Line2 *, Line2 *)
Definition: ut_geo2d.c:1400
int UT3D_vc_mirvcpl(Vector *vco, Vector *vci, Plane *pln)
Definition: ut_geo3d.c:11707
int UT3D_pl_rotpt(Plane *plo, Plane *pli, Point *ptx)
Definition: ut_geo3d.c:15268
int UT2D_pt_int2vc2pt(Point2 *, Point2 *, Vector2 *, Point2 *, Vector2 *)
Definition: ut_geo2d.c:4109
int typ
Definition: ut_geo.h:300
short typ
Definition: ut_geo.h:251
int UT3D_pt_evparci(Point *pto, double lpar, Circ *ci1)
Definition: ut_geo3d.c:8946
Vector vz
Definition: ut_geo.h:631
int UT3D_ln_ck_on_ln(Point *, Point *, Point *, Point *, Point *, Point *, double tol)
Definition: ut_geo3d.c:11871
Definition: ut_geo.h:157
Typ_ObjGX.
Definition: ut_geo.h:240
int UT3D_rdc_3pt(double *rdc, Point *pp1, Point *pp2, Point *pp3)
Definition: ut_geo3d.c:12495
double Mat_4x3[3][4]
Typ_M4x3 size 96.
Definition: ut_geo.h:150
int UT3D_ci_ptptrd(Circ ca[], Point *pt1, Point *pt2, double radi)
Definition: ut_geo3d.c:2742
int UT2D_2parvc_3vc(double *, double *, Vector2 *, Vector2 *, Vector2 *)
Definition: ut_geo2d.c:8906
#define UT2D_skp_vc2pt(v1, p1, p2)
Definition: ut_geo.h:2140
Circ UT3D_ci_obj2(ObjG2 *)
Definition: ut_geo3d.c:13182
Typ_Activ ("I")
Definition: ut_geo.h:1007
#define UT2D_comp2pt(p1, p2, tol)
UT2D_comp2pt compare 2 points.
Definition: ut_geo.h:2043
double r2
Definition: ut_geo.h:858
int UT3D_pt_intlnpl(Point *, Plane *, Line *)
Definition: ut_geo3d.c:8087
int UT3D_ln_ck_parpl(double *dist, Line *ln, Plane *pl, double tol)
Definition: ut_geo3d.c:12003
int UT3D_vc_projvc2vc(Vector *vo, Vector *vi, Vector *v1, Vector *v2)
Definition: ut_geo3d.c:11576
double UT2D_angr_3ptdr(Point2 *, Point2 *, Point2 *, int)
Definition: ut_geo2d.c:1467
int ptVNr
Definition: ut_geo.h:693
void UT3D_m3_multm3(Mat_4x3 m3, Mat_4x3 m1, Mat_4x3 m2)
Definition: ut_geo3d.c:16039
int UT2D_cv3_linear(int *pNr, Point *pTab, double tol)
Definition: ut_geo2d.c:6058
void UT3D_m4_addrot(Mat_4x4 mo, Mat_4x4 ma, Mat_4x4 mb)
Definition: ut_geo3d.c:16408
dimension; Typ_Dimen
Definition: ut_geo.h:888
Vector vy
Definition: ut_geo.h:790
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:1452
polygonal_representation_of_curve CurvPrcv
Definition: ut_geo.h:585
#define UT_DEGREES(angRad)
UT_DEGREES degrees from radians.
Definition: ut_geo.h:1957
text or image or tag or label; Typ_ATXT, Typ_Tag
Definition: ut_geo.h:763
color, Typ_Color
Definition: ut_geo.h:730
int UT3D_ipt_ckfar_npt(Point *p0, Point *ptTab, int ptNr)
Definition: ut_geo3d.c:6739
void UT3D_m3_load_o(Mat_4x3, Point *)
Definition: ut_geo3d.c:15758
int UT3D_ck_ci180(Circ *ci1)
Definition: ut_geo3d.c:12229
int UT3D_ln_parl2ln(Point *, Point *, Point *, Point *, Point *, Point *)
Definition: ut_geo3d.c:17403
char stat
Definition: xa_tra.c:152
sphere; Typ_SPH
Definition: ut_geo.h:847
int UT3D_vc_projvcnvc(Vector *vo, Vector *vi, Vector *vz)
Definition: ut_geo3d.c:11606
double UTP_db_rnd2sig(double)
Definition: ut_uti.c:1027
int UT2D_pt_ck_inplg(Point2 *pTab, int pNr, Point2 *ptx)
Definition: ut_geo2d.c:7398
Rational B-Spline-curve; Typ_CVRBSP.
Definition: ut_geo.h:525
double e
Definition: ut_geo.h:158
double UT3D_angr_vc2vc(Vector *vc1, Vector *vcx, Vector *vcy)
Definition: ut_geo3d.c:591
model reference; Typ_Model
Definition: ut_geo.h:829
int UT3D_vc_ck_parpl(Vector *vci, Plane *pli, double tol)
Definition: ut_geo3d.c:9583
int UT3D_compvc0(Vector *v1, double tol)
Definition: ut_geo3d.c:9267
double UT3D_slenq_projvcvc(Vector *vc1, Vector *vc2)
Definition: ut_geo3d.c:4990
int UT3D_box_2pttol(Point *pb1, Point *pb2, Point *pt1, Point *pt2, double tol)
Definition: ut_box.c:591
Point2 p2
Definition: ut_geo.h:418
Definition: ut_geo.h:192
#define UT2D_vc_invert(vo, vi)
UT2D_vc_invert 2D-Vector invert (change direction)
Definition: ut_geo.h:2158
Point2 UT2D_pt_obj2(ObjG2 *obj1)
Definition: ut_geo2d.c:5985
int UT2D_slen_nor2vc(double *slen, Vector2 *v1, Vector2 *v2)
Definition: ut_geo2d.c:1872
int UT2D_pt_intptvcy(Point2 *pto, Point2 *ptl, Vector2 *vcl, double yVal)
Definition: ut_geo2d.c:3408
double z
Definition: ut_geo.h:195
static Point pt1
Definition: DemoPlugin_Dialog.c:85
Vector vz
Definition: ut_geo.h:450
Vector stv
Definition: ut_geo.h:569
Typ_polynom_d3 Typ_CVPSP3.
Definition: ut_geo.h:162
int UT2D_srar_polc(double *aro, int ptNr, Point2 *pa)
Definition: ut_geo2d.c:6166
void UT3D_vc_travcm3(Vector *b, Mat_4x3 ma, Vector *a)
Definition: ut_geo3d.c:11763
int UT3D_vc_perppta(Vector *vcn, int pNr, Point *pa)
Definition: ut_geo3d.c:10893
void UT2D_pt_traptangrlen(Point2 *, Point2 *, double, double)
Definition: ut_geo2d.c:2970
Curve: polygon, Typ_CVPOL.
Definition: ut_geo.h:472
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:4122
int UT3D_vc_projvcvc(Vector *v3, Vector *v1, Vector *v2)
Definition: ut_geo3d.c:11508
void UT3D_pt_trapt2vc2len(Point *, Point *, Vector *, double, Vector *, double)
Definition: ut_geo3d.c:7369
int UT3D_pt_intlnci_p(int *np, Point xp[], Line *ln, Circ *ci1)
Definition: ut_geo3d.c:17038
triangle, Typ_Tria
Definition: ut_geo.h:368
void UT3D_pl_invert(Plane *pl)
Definition: ut_geo3d.c:15195
int UT3D_pt_int2pt2vc(Point *ip1, Point *ip2, double *dist, Point *ptu, Vector *vcu, Point *ptv, Vector *vcv)
Definition: ut_geo3d.c:2075
#define UTP_comp_0(db)
UTP_comp_0 compare double (double == 0.0 + - UT_TOL_min1)
Definition: ut_geo.h:1972
void UT2D_pt_tranorptvclen(Point2 *, Point2 *, Vector2 *, double)
Definition: ut_geo2d.c:3014
int UT3D_pt_intperp2ln(Point *po, Point *p1, Vector *v1, Point *p2, Vector *v2)
Definition: ut_geo3d.c:8403
int UT2D_ptNr_ci(double rdc, double ao, double tol)
Definition: ut_geo2d.c:8962
basic texture description; Typ_TEXB
Definition: ut_geo.h:775
int UT3D_el_elpt180(CurvElli *el1, Point *p1)
Definition: ut_elli.c:417
int UT3D_minLen_npt(Point *p0, Point *pa, int pNr)
Definition: ut_geo3d.c:4683
int UT3D_pt_tracirlen(Point *pto, Point *pti, Circ *cii, double clen)
Definition: ut_geo3d.c:7491
int UT3D_el_projelpl(CurvElli *elo, Plane *pl, CurvElli *eli)
Definition: ut_elli.c:1628
void UT3D_pl_pto_vcz_ptx(Plane *pl1, Point *po, Vector *vz, Point *ptx)
Definition: ut_geo3d.c:15159
short typPath
Definition: ut_geo.h:670
const Vector UT3D_VECTOR_NUL
int UT3D_ipt_cknearn_npt(Point *p0, Point *ptTab, int ptNr, int distNr)
Definition: ut_geo3d.c:6841
ObjG UT3D_obj_ln(Line *)
Definition: ut_geo3d.c:3794
short ySiz
Definition: ut_geo.h:776
int UT2D_ci_ptrd(Circ2 *ci, Point2 *ptc, double rdc)
Definition: ut_geo2d.c:8456
int UT3D_ci_cip1(Circ *ci1, Point *p1)
Definition: ut_geo3d.c:12371
double UT2D_angr_ci(Point2 *pa, Point2 *pe, Point2 *pc, double rad_in)
Definition: ut_geo2d.c:2234
#define UT2D_ln_ptvc(ln, pt, vc)
UT2D_ln_ptvc 2D-Line from 2D-point and 2D-vector.
Definition: ut_geo.h:2222
int UT3D_pt_intlnsph(Line *ln1, Point *ps, double rs)
Definition: ut_geo3d.c:16574
double UT_DISP_ln
length of construction-lines
Definition: ut_tol_const.h:62
internal submodel (block); Typ_Ditto
Definition: ut_geo.h:795
int UT3D_ci_lncird(Circ ca[], Line *ln1, Circ *ci1, double rdc, int)
Definition: ut_geo3d.c:3025
#define UT3D_vc_invert(vio, vii)
UT3D_vc_invert invert Vector.
Definition: ut_geo.h:2489
Point po
Definition: ut_geo.h:820
double UT_TOL_min0
Definition: ut_tol_const.h:36
int UT3D_ci_ciptrd(Circ ca[], Circ *ci1, Point *pt1, double rdc)
Definition: ut_geo3d.c:2882
int UT3D_pl_pto_vcz_vcx(Plane *pl1, Point *po, Vector *vz, Vector *vx)
Definition: ut_geo3d.c:14983
int UT3D_m3_invm3(Mat_4x3, Mat_4x3)
Definition: ut_geo3d.c:15909
int UT3D_elcoe_el(polcoeff_d5 *, CurvElli *)
Definition: ut_elli.c:2136
double UT2D_angd_invert(double *andi)
Definition: ut_geo2d.c:1261
double UT2D_len_cir(double *angOpe, Point2 *pa, Point2 *pe, Point2 *pc, double rad_in)
Definition: ut_geo2d.c:2383
double v1
Definition: ut_geo.h:607
int UT2D_pt_ck_inCv3(Point *ptx, int pNr, Point *pTab)
Definition: ut_geo2d.c:7766
int UT3D_ptDi_intptvcptvc(Point *ip, double *dist, Point *ptl, Vector *vcl, Point *ptp, Vector *vcp)
Definition: ut_geo3d.c:8136
int UT3D_plcoe_pl(polcoeff_d3 *co, Plane *pl)
Definition: ut_geo3d.c:17900
int UT2D_pt_ck_inAc(Point2 *pt, Circ2 *ci)
Definition: ut_geo2d.c:7654
double UT2D_slen_vc_vc__(Vector2 *vac, Vector2 *vab)
Definition: ut_geo2d.c:1764
atomicObjects
Definition: ut_geo.h:284
int UT3D_ci_inv1(Circ *ci1)
Definition: ut_geo3d.c:13016
void UT3D_pl_ptpl(Plane *pl, Point *pt1)
Definition: ut_geo3d.c:15301
int UT2D_pt_int2ln(Point2 *, Line2 *, Line2 *)
Definition: ut_geo2d.c:3927
int UT2D_ckvc_in2vc(Vector2 *v1, Vector2 *v2, Vector2 *v3)
Definition: ut_geo2d.c:4873
void UT3D_pl_XYZ(Plane *pl1)
Definition: ut_geo3d.c:14876
#define UT3D_pt_tra_pt_dx(po, pi, dx)
UT3D_pt_tra_pt_dx Point = Point + dx.
Definition: ut_geo.h:2396
Typ_Group DB-Objects Typ_ObjDB.
Definition: ut_geo.h:251
int UT3D_ci_ptvcr(Circ *ci1, Point *pc, Vector *vz, double rc)
Definition: ut_geo3d.c:13088
void UT2D_m2_loadtravcm2(Mat_3x2 ma, Vector2 *vx, Vector2 *vy, Vector2 *vt)
Definition: ut_geo2d.c:8676
void UT3D_pt_opp2pt(Point *, Point *, Point *)
Definition: ut_geo3d.c:7200
int UT2D_2slen_2pt_vc__(double *dx, double *dy, Point2 *px, Point2 *pl, Vector2 *vl)
Definition: ut_geo2d.c:2021
#define UT3D_pt_sub_pt2(po, p1, p2)
UT3D_pt_sub_pt2 subtract 2D-point po = p1 - p2.
Definition: ut_geo.h:2378
double UT2D_angr_triri_ab(double, double)
Definition: ut_geo2d.c:1277
int UT3D_pt_intptvcpln(Point *pti, Point *ptl, Vector *vcl, Point *ptpl, Vector *vcpl)
Definition: ut_geo3d.c:8324
void UT2D_2pt_projptci(Point2 *, Point2 *, Point2 *, Point2 *, double)
Definition: ut_geo2d.c:4175
double UT3D_angr_vcpl_tilt(Plane *pl1, Vector *vc1)
Definition: ut_geo3d.c:640
int UT3D_ci_cipt360(Circ *ci1, Point *p1)
Definition: ut_geo3d.c:12344
void UT3D_ln_6db(Line *, double, double, double, double, double, double)
Definition: ut_geo3d.c:12118
char uu1
Definition: ut_geo.h:587
int UT3D_pt_elfoc(Point *fp1, Point *fp2, CurvElli *el)
Definition: ut_elli.c:796
int UT3D_vc_perp4pt(Vector *vp, Point *p1, Point *p2, Point *p3, Point *p4)
Definition: ut_geo3d.c:10711
void UT3D_vc_perp1vc(Vector *vp, Vector *vi)
Definition: ut_geo3d.c:10492
int UT3D_pt_tangptci(Point *po1, Point *po2, Point *pt1, Circ *ci1)
Definition: ut_geo3d.c:8780
#define UT2D_pt_opp2pt(po, p1, p2)
UT2D_pt_opp2pt opposite point (p1 = center)
Definition: ut_geo.h:2082
int UT2D_comp2vc(Vector2 *, Vector2 *, double)
Definition: ut_geo2d.c:4687
int UT3D_pl_3pt(Plane *, Point *, Point *, Point *)
Definition: ut_geo3d.c:14631
int UT2D_2pt_int2ci(Point2 *ip1, Point2 *ip2, Circ2 *ci1, int ci1Mode, Circ2 *ci2, int ci2Mode)
Definition: ut_geo2d.c:4532
grafic text; Typ_GTXT
Definition: ut_geo.h:742
#define UT2D_slen_vc_vcNo
Definition: ut_geo.h:2121
double UT_TOL_PAR
tolerance for parallelism
Definition: ut_tol_const.h:37
Trimmed curve CurvCCV Typ_CVTRM.
Definition: ut_geo.h:607
double UT_TOL_min1
Definition: ut_tol_const.h:35
int UT2D_2pt_intcici(Point2 *, Point2 *, Point2 *, double, Point2 *, double)
Definition: ut_geo2d.c:4345
int UT3D_pt_intptvcsph(Point *pa, Point *pl, Vector *vl, Point *ps, double rs)
Definition: ut_geo3d.c:17852
Circ UT3D_ci_obj(ObjG *ci_in)
Definition: ut_geo3d.c:13222
int UT2D_minLenB_4pt(double *dp, Point2 *, Point2 *, Point2 *, Point2 *)
Definition: ut_geo2d.c:7006
char uu2
Definition: ut_geo.h:435
Circ2 UT2D_ci_obj2(ObjG2 *)
Definition: ut_geo2d.c:5545
long ipt
Definition: ut_geo.h:897
polcoeff_d3 z
Definition: ut_geo.h:162
int UT3D_ci_ptptvcangr(Circ *ci, Point *pc, Point *p1, Vector *vz, double ao)
Definition: ut_geo3d.c:12470
#define UT2D_pt_traptvc(po, pi, vc)
UT2D_pt_traptvc 2D Point = Point + Vector.
Definition: ut_geo.h:2092
const double UT_VAL_MAX
Definition: ut_const.h:37
int UT3D_2pt_oppptvclen(Point *, Point *, Point *, Vector *, double)
Definition: ut_geo3d.c:6709
int UT3D_ptvc_int2pln(Point *pti, Vector *vci, Point *pl1pt, Vector *pl1vz, Point *pl2pt, Vector *pl2vz)
Definition: ut_geo3d.c:13907
double v1
Definition: ut_geo.h:669
double UT2D_angr_angd(double)
Definition: ut_geo2d.c:1219
int UT2D_pt_projptptvc(Point2 *, Point2 *, Point2 *, Vector2 *)
Definition: ut_geo2d.c:3328
#define UT2D_pt_addpt(po, p1)
UT2D_pt_addpt Add two points: po += p1.
Definition: ut_geo.h:2072
void UT3D_m3_load_povxvz(Mat_4x3 ma, Point *ori, Vector *vx, Vector *vz)
Definition: ut_geo3d.c:15818
#define UT3D_vc_pt3db(vc, p1, px, py, pz)
Definition: ut_geo.h:2473
int UT2D_npt_ci(Point2 *pa, int pNr, Circ2 *ci1)
Definition: ut_geo2d.c:6524
char trm
Definition: ut_geo.h:508
int UT2D_sid_3pt(Point2 *pt, Point2 *p1, Point2 *p2)
Definition: ut_geo2d.c:2498
Bezier curve Typ_CVBEZ.
Definition: ut_geo.h:540
int UT2D_pt_int2pt2vc(Point2 *ip, Point2 *pt1, Vector2 *vc1, Point2 *pt2, Vector2 *vc2)
Definition: ut_geo2d.c:4063
char * fnam
Definition: ut_geo.h:775
double UT3D_sru_ck_planar(ObjGX *ru1)
Definition: ut_sru.c:276
double UTP_db_rnd1sig(double)
Definition: ut_uti.c:975
double pc
Definition: ut_geo.h:570
2D-circle in centerPosition, Typ_CI2C
Definition: ut_geo.h:391
void UT2D_ln_4db(Line2 *ln2, double xs, double ys, double xe, double ye)
Definition: ut_geo2d.c:4638
int UT3D_pt_ck_ptvc(Point *pt, Point *pl, Vector *vl, double tol)
Definition: ut_geo3d.c:5730
int UT2D_vc_2pt3_bp(Vector2 *vo, Point *p1, Point *p2, int bp)
Definition: ut_geo2d.c:5017
int UT2D_sid_ptvc(Point2 *, Point2 *, Vector2 *)
Definition: ut_geo2d.c:2545
int polNr
Definition: ut_geo.h:172
int UT3D_ci_ptvcpt2angr(Circ *ci, Point *pc, Point *p1, Vector *vz, double a1, double a2)
Definition: ut_geo3d.c:12591
double dy
Definition: ut_geo.h:203
int UT3D_rMin_pta(double *rMin, int pNr, Point *pTab)
Definition: ut_geo3d.c:4223
int UT3D_bp_2pt(Point *pt1, Point *pt2)
Definition: ut_geo3d.c:18014
Point UT3D_pt_pt2(Point2 *)
Definition: ut_geo3d.c:6052
void UT3D_m4_addtra(Mat_4x4 ma, double px, double py, double pz)
Definition: ut_geo3d.c:16454
int UT1D_ndb_npt_bp(double *da, Point *pa, int pNr, int bp)
Definition: ut_geo2d.c:513
int UT2D_pt_elangd(Point2 *pto, double lx, double ly, double angr)
Definition: ut_elli.c:629
void UT3D_ln_2pt(Line *ln1, Point *pta, Point *pte)
Definition: ut_geo3d.c:12137
void UT3D_vc_perpvcplXY(Vector *, Vector *)
Definition: ut_geo3d.c:10736
int UT3D_pt_rotptptangr(Point *pto, Point *ptc, Point *pti, double *ar)
Definition: ut_geo3d.c:7608
grafic attribute; Typ_G_Att
Definition: ut_geo.h:927
Point * npt
Definition: ut_geo.h:586
double Mat_3x3[3][3]
Typ_M3x3.
Definition: ut_geo.h:149
#define UT3D_pt_add_3vc_3par(pt, v1, v2, v3, lp1, lp2, lp3)
see also UT3D_pt_traptmultvc
Definition: ut_geo.h:2359
const char UT_CHR_NULL
Definition: ut_const.h:40
int UT3D_cv_delia(int *pNr, Point *pTab, char *ptStat)
Definition: ut_geo3d.c:3952
void UT3D_pt_tra_pt_2vc_2par(Point *, Point *, Vector *, double, Vector *, double)
Definition: ut_geo3d.c:7338
float z
Definition: ut_geo.h:192
double UT3D_angr_elpt(Point *pti, Point *ptc, Vector *va, Vector *vb)
Definition: ut_elli.c:448
#define UT3D_ln_ln2(ln3, ln2)
UT3D_ln_ln2 3D-Line from 2D-Line (Z=0)
Definition: ut_geo.h:2577
Curve: B-spline Typ_CVBSP.
Definition: ut_geo.h:507
void UT3D_m3_load_povxvy(Mat_4x3 ma, Point *ori, Vector *vx, Vector *vy)
Definition: ut_geo3d.c:15776
void UT3D_pt_traptm3(Point *, Mat_4x3, Point *)
Definition: ut_geo3d.c:9145
double UT2D_ar_3pt(Point2 *p1, Point2 *p2, Point2 *p3)
Definition: ut_geo2d.c:7235
int UT3D_ln_tng_ci_ci(Line *ln1, Circ *ci1, Circ *ci2, int sNr)
Definition: ut_geo3d.c:17164
void UT3D_m3_load(Mat_4x3, Vector *, Vector *, Vector *)
Definition: ut_geo3d.c:15640
int typ
Definition: ut_geo.h:263
int UT3D_vc_bp(Vector *vn, int bp)
Definition: ut_geo3d.c:9897
void UT3D_vc_2angr(Vector *, double, double)
Definition: ut_geo3d.c:10048
#define UT3D_vc_pt(vc, pt)
UT3D_vc_pt Vector = Point.
Definition: ut_geo.h:2467
double UT2D_slen_pt_pt_vc__(Point2 *pc, Point2 *pa, Vector2 *vab)
Definition: ut_geo2d.c:2433
double UT2D_angr_2vc(Vector2 *, Vector2 *)
Definition: ut_geo2d.c:1419
int UT2D_m2_invtravcm2(Mat_3x2 im1, Mat_3x2 m1)
Definition: ut_geo2d.c:8577
void UT3D_m3_loadpl(Mat_4x3, Plane *)
Definition: ut_geo3d.c:15863
const Vector2 UT2D_VECTOR_Y
#define UT2D_lenq_2pt(lq, p1, p2)
UT2D_lenq_2pt quadr. distance pt - pt.
Definition: ut_geo.h:2033
double UT2D_angr_set_2angr(double as, double aa, int sr)
Definition: ut_geo2d.c:543
double v1
Definition: ut_geo.h:472
int UT3D_ci_inv3(Circ *ci1)
Definition: ut_geo3d.c:13072
double UT3D_par1_ci_pt(Circ *ci1, Point *pt1)
Definition: ut_geo3d.c:18491
int UT3D_vc_ckperp_2vc1(Vector *vc1, Vector *vc2, double tol)
Definition: ut_geo3d.c:9674
void UT2D_vc_angrlen(Vector2 *, double, double)
Definition: ut_geo2d.c:4962
void UT3D_vc_angr(Vector *vc, double angr)
Definition: ut_geo3d.c:10033
void UT3D_pt_projptpl(Point *, Plane *, Point *)
Definition: ut_geo3d.c:8015
double UT2D_len_ciSec(double hSec, double rCi)
Definition: ut_geo2d.c:5396
double UT2D_angr_2angr(double ang1, double ang2, int irot)
Definition: ut_geo2d.c:691
#define UT2D_vc_div_d(vo, vi, d)
UT2D_vc_div_d divide vector.
Definition: ut_geo.h:2174
int UT3D_el_elcoe(CurvElli *, polcoeff_d5 *, Point2 *pa, Point2 *pe, double zt)
Definition: ut_elli.c:1985
int UT3D_sid_ptpl(Point *pt, Plane *pl)
Definition: ut_geo3d.c:5406
SweepSurf Typ_SURSWP.
Definition: ut_geo.h:669
int UT3D_pt_intlnci__(int *np, Point xp[], Line *ln, Circ *ci1)
Definition: ut_geo3d.c:17066
double v1
Definition: ut_geo.h:654
int typ
Definition: ut_geo.h:911
double UT3D_angr_ci__(Circ *ci1)
Definition: ut_geo3d.c:14493
do not use; replaced by ObjGX
Definition: ut_geo.h:456
int UT2D_pt_ck_inBoxTol(Point2 *p1, Point2 *p2, Point2 *p, double tol)
Definition: ut_box.c:407
surface from group of stripes; stripe from 2 polygons.
Definition: ut_geo.h:693
int UT2D_pt_intlny(Point2 *pto, Point2 *lp1, Point2 *lp2, double yVal)
Definition: ut_geo2d.c:3444
int UT3D_pt_elangd(Point *pto, Point *ptc, Vector *va, Vector *vb, double angr)
Definition: ut_elli.c:601
2D-symbol; Typ_SymRef2 Typ_SymB Typ_SymV
Definition: ut_geo.h:905
int UT3D_box_ck_intpl(Plane *pln, Point *p1, Point *p2, double tol)
Definition: ut_box.c:845
void UT2D_pt_tracirlen(Point2 *, Point2 *, Point2 *, double, double)
Definition: ut_geo2d.c:3071
int typ
Definition: ut_geo.h:456
double UT3D_plg_lvTab(double *lvTab, Point *pta, int ptNr)
Definition: ut_plg.c:1631
double UT3D_nlen_projvcvc(Vector *vc1, Vector *vc2)
Definition: ut_geo3d.c:5081
double UT3D_angr_ci_p1_pt(Circ *ci1, Point *pti)
Definition: ut_geo3d.c:14376
GraficAttribute.
Definition: ut_geo.h:955
int UT2D_slen_nor_vc_vcNo(double *slen, Vector2 *v1, Vector2 *v2)
Definition: ut_geo2d.c:1926
double UT3D_len_2pt(Point *, Point *)
Definition: ut_geo3d.c:4548
int UT3D_ln_int2pl(Line *ln, Plane *pl1, Plane *pl2)
Definition: ut_geo3d.c:17493
int UT2D_rect_pts(Point2 *pmin, Point2 *pmax, int nump, Point2 *ptab)
Definition: ut_box.c:296
int UTP_comp2x2db(double d11, double d12, double d21, double d22, double tol)
Definition: ut_uti.c:1228
short ySiz
Definition: ut_geo.h:763
Typ_Polynom3.
Definition: ut_geo.h:172
void UT3D_pt_trapt3vc3len(Point *po, Point *pi, Vector *vx, double dx, Vector *vy, double dy, Vector *vz, double dz)
Definition: ut_geo3d.c:7400
void UT3D_vc_rot3angr(Vector *, Vector *, double, double, double)
Definition: ut_geo3d.c:11361
int UT3D_ci_ptrd2vc2angr(Circ *ci, Point *pc, double rd, Vector *vz, Vector *vx, double a1, double a2)
Definition: ut_geo3d.c:12537
3D-point, Typ_PT
Definition: ut_geo.h:195
double rad
Definition: ut_geo.h:847
int UT2D_solvtriri_bc(double *, double *, double, double)
Definition: ut_geo2d.c:872
void UT2D_vc_merge2vc(Vector2 *vm, Vector2 *v1, Vector2 *v2)
Definition: ut_geo2d.c:5212
#define UT2D_lenq_vc(vc)
UT2D_lenq_vc quadr.length of 2D-vector.
Definition: ut_geo.h:2021
int UT3D_parpt_3pt(double *pl, Point *ptx, Point *pl1, Point *pl2)
Definition: ut_geo3d.c:8643
const double UT_DB_LEER
Definition: ut_const.h:38
int UT3D_ci_ptptvcrd(Circ *ci, Point *p1, Point *p2, double rd, Vector *vz, int sr, int iMod)
Definition: ut_geo3d.c:12892
#define UT3D_pt_add2pt(po, p1, p2)
see also UT3D_pt_trapt3vc3len
Definition: ut_geo.h:2366
double UT2D_slen_nor_2pt_vcNo(Vector2 *v1, Point2 *p1, Point2 *p2)
Definition: ut_geo2d.c:1833
double UT_TOL_ln
max deviation of a point from a line
Definition: ut_tol_const.h:53
double vb
Definition: ut_geo.h:531
int UT3D_ci_inv2(Circ *ci1)
Definition: ut_geo3d.c:13038
Typ_ModelNode.
Definition: ut_geo.h:839
Point * cpTab
Definition: ut_geo.h:704
const Mat_3x3 UT3D_MAT_3x3
double UT3D_angr_2pl(Plane *pl1, Plane *pl2)
Definition: ut_geo3d.c:711
int UT2D_ckBoxinBox1(Point2 *p1, Point2 *p2, Point2 *p3, Point2 *p4)
Definition: ut_box.c:218
int UT3D_pl_ci(Plane *pl1, Circ *ci1)
Definition: ut_geo3d.c:14768
Point * p1
Definition: ut_geo.h:1015
double Mat_4x4[4][4]
Typ_M4x4.
Definition: ut_geo.h:151
#define UTP_db_comp_0(d1)
UTP_db_comp_0 if fabs(d1) < UT_TOL_min1) d1 = 0.;.
Definition: ut_geo.h:1994
double rad
Definition: ut_geo.h:381
int UT3D_sid_3pt(Point *p1, Point *p2, Point *p3)
Definition: ut_geo3d.c:5463
int UT3D_ptvc_int2pl(Point *pt, Vector *vc, Plane *pl1, Plane *pl2)
Definition: ut_geo3d.c:13803
int UT3D_vc_setLenLen(Vector *vco, Vector *vci, double newLen, double actLen)
Definition: ut_geo3d.c:11311
#define UT2D_acos_2vc
UT2D_skp_2vc cos of opening angle of 2 vecs (dot=scalarprod) DOT.
Definition: ut_geo.h:2123
quaternion
Definition: ut_geo.h:154
int UT2D_lncoe_ln(double *k, double *d, Line2 *ln)
Definition: ut_geo2d.c:8792
double UT3D_slen_2ptvc(Point *p1, Point *p2, Vector *vc)
Definition: ut_geo3d.c:5187
basic model description; Typ_SubModel
Definition: ut_geo.h:820
int UT3D_pt_ck_mid_2pt(Point *p1, Point *p2, Point *p3, double *tol)
Definition: ut_geo3d.c:7022
const Vector UT3D_VECTOR_IY
int UT3D_parpt_ptvc(double *pl, Point *ptx, Point *pt1, Vector *vc1)
Definition: ut_geo3d.c:8683
int UT3D_ckBoxinBox1(Point *p1, Point *p2, Point *p3, Point *p4)
Definition: ut_box.c:374
#define UT2D_vc_2db(vc, dx, dy)
UT2D_vc_2db 2D-Vector < 2 doubles (x, y)
Definition: ut_geo.h:2153
void UT3D_pt_mid2pt(Point *, Point *, Point *)
Definition: ut_geo3d.c:6103
#define UT2D_vc_vc3(vc2, vc3)
UT2D_vc_vc3 2D-Vector from 3D-Vector.
Definition: ut_geo.h:2149
void UT3D_vc_travcm4(Vector *b, Mat_4x4 ma, Vector *a)
Definition: ut_geo3d.c:11803
3D-vector, Typ_VC
Definition: ut_geo.h:209
void UT3D_vc_perp2vc(Vector *, Vector *, Vector *)
Definition: ut_geo3d.c:10540
int UT3D_pt_projptptvc(Point *pp, double *len, double *par, Point *pt, Point *pl, Vector *vl)
Definition: ut_geo3d.c:7906
double UT3D_angr_3vcn_CCW(Vector *vz, Vector *v1, Vector *v2)
Definition: ut_geo3d.c:14306
int UT3D_pt_intcici(Point pa[], Circ *ci1, int ci1Lim, Circ *ci2, int ci2Lim)
Definition: ut_geo3d.c:18907
Rational Bezier curve Typ_CVRBEZ.
Definition: ut_geo.h:551
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:1967
int UT3D_ptvc_ox(Point *pta, Vector *vca, ObjGX *oxi)
Definition: ut_geo3d.c:13981
int UT2D_pt_ck_inLine(Point2 *p1, Point2 *p2, Point2 *p3, double tol)
Definition: ut_geo2d.c:7347
int UT3D_el_pt2vc2a(CurvElli *el, Point *ptc, Vector *vcx, Vector *vcy, double a1, double a2, int idir)
Definition: ut_elli.c:719
int UT2D_pt_projptln(Point2 *, Point2 *, Line2 *)
Definition: ut_geo2d.c:3388
int UT3D_el_projcipl(CurvElli *el, Plane *pl, Circ *ci)
Definition: ut_elli.c:1695
Point2 p3
Definition: ut_geo.h:888
double UTP_max_d3(double *d1, double *d2, double *d3)
Definition: ut_uti.c:1436
int UT3D_pt_intplnln(Point *ip, double *dist, Plane *pl, Line *ln)
Definition: ut_geo3d.c:8044
int typ
Definition: ut_geo.h:322
void UT3D_vc_setLength(Vector *, Vector *, double)
Definition: ut_geo3d.c:11275
int UT3D_pt_intptvczpln(Point *pti, Point *ptl, Point *ptpl, Vector *vcpl)
Definition: ut_geo3d.c:1569
int UT3D_pt_rotptm3(Point *p2, Point *p1, Mat_4x3 ma)
Definition: ut_geo3d.c:7584
int UT3D_pt_ck_onel(Point *pt, CurvElli *el)
Definition: ut_elli.c:754
int UT3D_pl_ptvc(Plane *, Point *, Vector *)
Definition: ut_geo3d.c:15108
DO NOT USE; replaced by ObjGX.
Definition: ut_geo.h:300
int UT2D_ptvc_ck_int2pt(int mode, Point2 *p1s, Vector2 *v1, Point2 *p2s, Point2 *p2e)
Definition: ut_geo2d.c:365
int = char[4] + char
Definition: ut_geo.h:143
const Vector UT3D_VECTOR_IZ
ContourCurve.
Definition: ut_geo.h:336
int UT3D_ci_pcvzpt180(Circ *ci1, Point *pc, Vector *vz, Point *p1, int dreh)
Definition: ut_geo3d.c:12991
double UT2D_angr_perpangr(double *)
Definition: ut_geo2d.c:2365
double UT_TOL_cv
max deviation from curve (distance analyticalCurve -> Curvepoint)
Definition: ut_tol_const.h:56
int UT3D_pl_plcoe(Plane *pl, polcoeff_d3 *co)
Definition: ut_geo3d.c:17942
int UT3D_pl_bpdb(Plane *plo, int bp, double dbc)
Definition: ut_geo3d.c:14581
Typ_Polynom_.
Definition: ut_geo.h:179
void UT2D_vc_2ptlen(Vector2 *, Point2 *, Point2 *, double)
Definition: ut_geo2d.c:5040
char uu2
Definition: ut_geo.h:473
int UT3D_2parvc_3vcbp(double *, double *, int, Vector *, Vector *, Vector *)
Definition: ut_geo3d.c:18404
Typ_Polynom1.
Definition: ut_geo.h:167
int UT3D_pt_ck_inSph(Point *pt, Point *ps, double rs)
Definition: ut_geo3d.c:6023
Curve: B-spline Typ_CVBSP2.
Definition: ut_geo.h:490
2D-vector, Typ_VC2
Definition: ut_geo.h:203
OBJ_UNKNOWN get memoryspace for any type of object (has maximum size)
Definition: ut_geo.h:131
int UT2D_pt_ck_int4pt(Point2 *, Point2 *, Point2 *, Point2 *)
Definition: ut_geo2d.c:7050
void UT3D_vc_projvcpl(Vector *, Plane *, Vector *)
Definition: ut_geo3d.c:11678
int UT3D_ci_cicird(Circ ca[], Circ *ci1, Circ *ci2, double rdc, int)
Definition: ut_geo3d.c:2180
int UT2D_2angr_set(double *ang1, double *ang2, int irot)
Definition: ut_geo2d.c:642
#define UT2D_skp_2vc(v1, v2)
Definition: ut_geo.h:2125
int UTP_db_cknear_2db(double *db, double *d1, double *d2)
Definition: ut_uti.c:1186
int UTP_db_ck_in2db(double v, double v1, double v2)
Definition: ut_uti.c:674
2D-point, Typ_PT2
Definition: ut_geo.h:189
int UT3D_pt_evparln(Point *pto, double lpar, Line *ln1)
Definition: ut_geo3d.c:8929
Definition: ut_geo.h:158
int UT3D_ipt2_nptvc(Point *pt1, Point *pt2, int mode, Point *pta, int iNr, Vector *vc)
Definition: ut_geo3d.c:6930
#define UT2D_pt_mid2pt(po, p1, p2)
UT2D_pt_mid2pt midpoint between 2 points.
Definition: ut_geo.h:2087
#define UT3D_pt_add_vc__(pt, vc)
UT3D_pt_add_vc__ add vector: pt += vc.
Definition: ut_geo.h:2339
void UT3D_pt_traptm4(Point *p2, Mat_4x4 ma, Point *p1)
Definition: ut_geo3d.c:9192
short i21
Definition: ut_geo.h:140
int UT3D_pt_intptvcln(Point *ip1, Point *ip2, double *dist, Point *pt1, Vector *vc1, Line *ln2)
Definition: ut_geo3d.c:941
double UT3D_nlen_2ptvc(Point *p1, Point *pv, Vector *vc)
Definition: ut_geo3d.c:4783
int UT3D_pl_ptvzpl(Plane *pl, Point *pt, Vector *vcz, Plane *basPln)
Definition: ut_geo3d.c:14893
int UT3D_bp_vc_(Vector *)
Definition: ut_geo3d.c:18036
Line2 UT2D_ln_obj2(ObjG2 *)
Definition: ut_geo2d.c:4653
char trm
Definition: ut_geo.h:526
int typ
Definition: ut_geo.h:1007
double UT2D_len_2pt(Point2 *, Point2 *)
Definition: ut_geo2d.c:1547
Vector vz
Definition: ut_geo.h:404
int UT3D_ck_ci360(Circ *ci1)
Definition: ut_geo3d.c:12255
void UT2D_pt_traptm3(Point2 *p2, Mat_4x3 mata, Point2 *p1)
Definition: ut_geo2d.c:9011
void UT2D_pt_sub_pt3(Point2 *, Point *)
void UT2D_vc_travcm2(Vector2 *vo, Mat_3x2 mata, Vector2 *vi)
Definition: ut_geo2d.c:5314
int UT3D_box_ck_intLn(Line *ln, Point *pmin, Point *pmax, double tol)
Definition: ut_box.c:739
void UT3D_m4_init(Mat_4x4 ma)
Definition: ut_geo3d.c:16189
const Mat_4x3 UT3D_MAT_4x3
int UT3D_ci_ciangr(Circ *ci, double ao2)
Definition: ut_geo3d.c:12436
int typ
Definition: ut_geo.h:905
void UT2D_pt_traPtPtPar(Point2 *po, Point2 *p1, Point2 *p2, double d1)
Definition: ut_geo2d.c:2826
int UT3D_box_pts(Point *pmin, Point *pmax, int nump, Point *ptab)
Definition: ut_box.c:475
char uu2
Definition: ut_geo.h:451
UINT_32 iatt
Definition: ut_geo.h:985
int UT3D_ci_cipt180(Circ *ci1, Point *p1)
Definition: ut_geo3d.c:12314
#define UT2D_acos_vc2pt
UT3D_acos_vc2pt cos of opening angle of vec-(pt-pt) (dot=scalarprod) DOT.
Definition: ut_geo.h:2139
int UT2D_cv_ln(Point2 *cv, int ptAnz, Point2 *p1, Point2 *p2)
Definition: ut_geo2d.c:6638
int UT3D_comp2ln(Line *pa1, Line *pa2, double tol)
Definition: ut_geo3d.c:11842
double * pol
Definition: ut_geo.h:179
const Vector UT3D_VECTOR_X
int UT3D_pt_intlnpl1(Point *, double *, Point *, Point *, double, double)
Definition: ut_geo3d.c:8274
double UT3D_slenq_2ptvc(Point *p1, Point *p2, Vector *vc)
Definition: ut_geo3d.c:5037
int UT3D_comp2vc_p(Vector *, Vector *, double)
Definition: ut_geo3d.c:9288
long ptVNr
Definition: ut_geo.h:702
const Point UT3D_PT_NUL
double d
Definition: ut_geo.h:157
int UT3D_pt_pt2bp(Point *p3, Point2 *p2, int bp)
Definition: ut_geo3d.c:9800
int UT3D_pt_intptvcpl_(Point *, Plane *, Point *, Vector *)
Definition: ut_geo3d.c:8110
long i4
Definition: ut_geo.h:137
#define UT3D_pt_sub_pt3(pto, pti)
UT3D_pt_sub_pt3 subtract point po = p1 - p2.
Definition: ut_geo.h:2372
int UT3D_pt_intptvcplz(Point *px, Point *pl, Vector *vl, double plz)
Definition: ut_geo3d.c:1530
const Vector UT3D_VECTOR_Y
int UT3D_vc_mirvcln(Vector *vco, Vector *vci, Line *ln)
Definition: ut_geo3d.c:11737
#define UT2D_vc_perpvc(vo, vi)
UT2D_vc_perpvc vector = perpendic. to vector ( + 90 degrees)
Definition: ut_geo.h:2184
#define UT2D_sar_2vc(v1, v2)
Definition: ut_geo.h:2134
double UT2D_angr_vc(Vector2 *)
Definition: ut_geo2d.c:1333
char uu
Definition: ut_geo.h:937
#define UT2D_vc_angr(vc, angr)
UT2D_vc_angr 2DVector = angle (radians)
Definition: ut_geo.h:2193
int UT3D_parvc_2vcbp(double *dl, int mainPln, Vector *v1, Vector *v2)
Definition: ut_geo3d.c:18283
int UT2D_ckBoxinBox2(Point2 *, Point2 *, Point2 *, Point2 *, double)
Definition: ut_box.c:247
double y
Definition: ut_geo.h:189
int UT2D_ci_ci3(Circ2 *ci2, Circ *ci3)
Definition: ut_geo2d.c:8426
const Vector2 UT2D_VECTOR_NUL
int UT3D_pt_ck_inLine(Point *p1, Point *p2, Point *p3, double tol)
Definition: ut_geo3d.c:5803
double vb
Definition: ut_geo.h:540
double UT3D_angr_4pt(Point *p11, Point *p12, Point *p21, Point *p22)
Definition: ut_geo3d.c:14353
int UT3D_pt_projptbspl(int *nxp, Point *ptab, double *ttab, CurvBSpl *bspl, Point *pt)
Definition: ut_bspl.c:2267
int polNr
Definition: ut_geo.h:167
int UT3D_pt_mirptpl(Point *pto, Point *pti, Plane *pln)
Definition: ut_geo3d.c:8528
double UT2D_len_ptln(Point2 *pt, Point2 *pa, Point2 *pe)
Definition: ut_geo2d.c:1565
int UT3D_ci_cip2(Circ *ci1, Point *p2)
Definition: ut_geo3d.c:12392
int UT2D_solvtriri_a(double *a, double b, double c)
Definition: ut_geo2d.c:778
double UT3D_slen_projvcvc(Vector *vc1, Vector *vc2)
Definition: ut_geo3d.c:4951
double UT3D_angr_vc2pt(Point *pz, Vector *vz, Point *p1, Point *p2)
Definition: ut_geo3d.c:538
long dli
Definition: xa_tra.c:150
int UT2D_box_extend(Point2 *pb1, Point2 *pb2, Point2 *pt1)
Definition: ut_box.c:167
double UT3D_nlen_3pt(Point *p1, Point *p2, Point *p3)
Definition: ut_geo3d.c:4913
group of consecutive objects
Definition: ut_geo.h:346
int UT3D_pt_projptel(int *numpe, Point *pe, CurvElli *ell, Point *pt)
Definition: ut_elli.c:1792
int UT3D_pt_projpt2pt(Point *pp, double *len, Point *pt, Point *p1, Point *p2)
Definition: ut_geo3d.c:7883
void UT3D_pt_tra_pt_vc_par(Point *po, Point *pi, Vector *vc, double dist)
Definition: ut_geo3d.c:7277
void UT3D_cv_ln(Point *cv, int *ptAnz, Point *p1, Point *p2)
Definition: ut_geo3d.c:13401
#define UT3D_pt_addpt(po, p1)
UT3D_pt_addpt Add point: po += p1.
Definition: ut_geo.h:2328
double UT2D_slen_nor3pt(Point2 *p1, Point2 *p2, Point2 *p3)
Definition: ut_geo2d.c:1794
int UT2D_2pt_intlnci(Point2 *ip1, Point2 *ip2, Line2 *ln, int lnMode, Circ2 *ci, int ciMode)
Definition: ut_geo2d.c:4433
int UT3D_pt_projptci(Point *ptn, Point *ptf, Point *pt1, Circ *ci1)
Definition: ut_geo3d.c:7831
int UT2D_slenq_ptptvc(double *qlen, Point2 *pa, Point2 *pb, Point2 *pc)
Definition: ut_geo2d.c:1696
2D-circle, Typ_CI2, Typ_CI2
Definition: ut_geo.h:381
ObjG2 UT2D_obj_ci2(Circ2 *)
Definition: ut_geo2d.c:5862
2D-Bezier curve Typ_CVBEZ2
Definition: ut_geo.h:531
int UT3D_box_tria(Point *pb1, Point *pb2, Triangle *tr, double tol)
Definition: ut_box.c:573
int UT3D_sid_ptptvc(Point *ptx, Point *pto, Vector *vz)
Definition: ut_geo3d.c:5357
Point UT3D_pt_pt2z(Point2 *pt20, double zVal)
Definition: ut_geo3d.c:6069
void UT3D_vc_2ptlen(Vector *, Point *, Point *, double)
Definition: ut_geo3d.c:10019
int UT3D_comp4pt(Point *p1a, Point *p1e, Point *p2a, Point *p2e, double tol)
Definition: ut_geo3d.c:5282
int UT3D_box_addTol(Point *pb1, Point *pb2, double tol)
Definition: ut_box.c:665
short typ
Definition: ut_geo.h:240
long ptVNr
Definition: ut_geo.h:715
double UT3D_slen_3pt(Point *pt, Point *p1, Point *p2)
Definition: ut_geo3d.c:4755
Definition: ut_geo.h:292
int UT3D_stru_dump(int typ, void *data, char *txt,...)
Definition: ut_dump.c:179
char * txt
Definition: ut_geo.h:285
int UT3D_pt_intcidpln(int *np, Point xp[], Point *pc, Point *p1, Vector *vz, double dx)
Definition: ut_geo3d.c:17797
int UT3D_pt_projptln(Point *, double *, double *, Point *, Line *)
Definition: ut_geo3d.c:7772
const Mat_4x4 UT3D_MAT_4x4
int UT3D_pta_dbo(Point **pTab, int *pNr, int typ, long ind, double tol)
Definition: ut_geo3d.c:13330
#define UT2D_ln_inv(ln)
UT2D_ln_inv Invert 2D-Line.
Definition: ut_geo.h:2238
int UT3D_bp_vcz(Vector *)
Definition: ut_geo3d.c:18076
void UT3D_pl_p(Plane *pl)
Definition: ut_geo3d.c:15325
void UT3D_vc_2vc(Vector *, Vector *, Vector *)
Definition: ut_geo3d.c:10082
#define UINT_32
Definition: ut_types.h:28
float scl
Definition: ut_geo.h:764
double dz
Definition: ut_geo.h:209
int UTP_db_ck_in2dbTol(double v, double v1, double v2, double tol)
Definition: ut_uti.c:704
short typCov
Definition: ut_geo.h:655
double rad
Definition: ut_geo.h:293
short typ
Definition: ut_geo.h:273
double UT2D_slen_nor_2pt_vc__(Point2 *pt, Point2 *pl, Vector2 *vl)
Definition: ut_geo2d.c:2464
void UT2D_pt_traptm2(Point2 *, Mat_3x2, Point2 *)
Definition: ut_geo2d.c:8756
double UT3D_angr_vcpl_z(Plane *pl1, Vector *vc1)
Definition: ut_geo3d.c:669
#define UT3D_pt_setFree(obj)
UT3D_pt_setFree set point not valid (not initialized)
Definition: ut_geo.h:2297
ellipse, Typ_CVELL2
Definition: ut_geo.h:434
int typ
Definition: ut_geo.h:292
#define UT3D_vc_perpTria(vn, tri)
UT3D_vc_perpTria vector = perpendic. to Triangle (crossprod)
Definition: ut_geo.h:2485
void UT3D_pt_rotptptvcangr(Point *pto, Point *pti, Point *ptc, Vector *vz, double angr)
Definition: ut_geo3d.c:7639
double UT3D_len_ln(Line *)
Definition: ut_geo3d.c:4466
double z
Definition: ut_geo.h:199
double e3
Definition: ut_geo.h:154
int UT3D_box_2pt(Point *pb1, Point *pb2, Point *pt1, Point *pt2)
Definition: ut_box.c:523
int UT3D_pl_nobj(Plane *pl1, int oNr, ObjGX *oTab)
Definition: ut_geo3d.c:14795
int UT3D_ci_intplsph(Circ *cio, Plane *pli, Sphere *spi)
Definition: ut_geo3d.c:3491
#define UT3D_comp2pt(p1, p2, tol)
Definition: ut_geo.h:2551
2D-line, Typ_LN2
Definition: ut_geo.h:354
void UT3D_pt_midci(Point *, Circ *)
Definition: ut_geo3d.c:6160
int UT3D_pl_ptvxpl(Plane *pl, Point *pt, Vector *vcx, Plane *basPln)
Definition: ut_geo3d.c:14943
Point * pa
Definition: ut_geo.h:336
int UT3D_comp2vc_d(Vector *, Vector *, double)
Definition: ut_geo3d.c:9389
int UT3D_pt_intptvcxpln(Point *pti, Point *ptl, Point *ptpl, Vector *vcpl)
Definition: ut_geo3d.c:1623
int UT3D_pt_rotciangr(Point *pto, double angr, Circ *ci1)
Definition: ut_geo3d.c:7525
union long / short[2]
Definition: ut_geo.h:137
int UT3D_box_extend(Point *pb1, Point *pb2, Point *pt1)
Definition: ut_box.c:633
void UT2D_vc_2pt3(Vector2 *vc, Point *p1, Point *p2)
Definition: ut_geo2d.c:5001
#define UT2D_vc_pt(vc, pt)
Definition: ut_geo.h:2146
#define UT3D_ln_inv(ln)
UT3D_ln_inv Invert 3D-Line.
Definition: ut_geo.h:2561
int UT2D_comp4pt(Point2 *, Point2 *, Point2 *, Point2 *, double)
Definition: ut_geo2d.c:2679
void UT3D_cv_ci(Point cv[], int *ptanz, Circ *ci1, int ptmax, double tol)
Definition: ut_geo3d.c:13476
char * txt
Definition: ut_geo.h:898
void UT3D_pl_pto_vcx_vcy(Plane *pl1, Point *po, Vector *vx, Vector *vy)
Definition: ut_geo3d.c:15059
const double UT_DB_NULL
Definition: ut_const.h:39
int UT3D_m3_tram3m3(Mat_4x3 m3, Mat_4x3 m1, Mat_4x3 m2)
Definition: ut_geo3d.c:15979
#define UT2D_ln_ln3(ln2, ln3)
UT2D_ln_ln3 2D-Line = 3D-Line.
Definition: ut_geo.h:2228
double UT3D_parpt_lnbp(Point *pti, Line *ln1, int bp)
Definition: ut_geo3d.c:8722
void UT2D_pt_tra2ptlen(Point2 *, Point2 *, Point2 *, double)
Definition: ut_geo2d.c:2795
void UT3D_pt_traptptlen(Point *po, Point *pi, Point *pDir, double lenv)
Definition: ut_geo3d.c:7446
double UT2D_angr_ptpt(Point2 *, Point2 *)
Definition: ut_geo2d.c:1316
char trm
Definition: ut_geo.h:491
void UT3D_pl_2ln(Plane *pl1, Line *ln1, Line *ln2)
Definition: ut_geo3d.c:14693
#define UT3D_pt_add_pt2(po, p1)
UT3D_pt_add_pt2 Add 2D-point: po += p1.
Definition: ut_geo.h:2334
double UT3D_angr_ci_par1(Circ *ci1, double par1)
Definition: ut_geo3d.c:14467
void UT3D_vc_txt(Vector *vc, char *txt)
Definition: ut_geo3d.c:9864
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:8503
int UT2D_sidPerp_3pt(Point2 *p1, Point2 *p2, Point2 *p3)
Definition: ut_geo2d.c:1143
void UT2D_pt_tranor2ptlen(Point2 *, Point2 *, Point2 *, double)
Definition: ut_geo2d.c:2988
RevolvedSurf Typ_SURRV.
Definition: ut_geo.h:654
int ind
Definition: xa_tra.c:151
double v1
Definition: ut_geo.h:507
int UT3D_pt_mid_pta(Point *pto, Point *pTab, int ptNr)
Definition: ut_geo3d.c:6125
#define UT3D_pt_isFree(obj)
Definition: ut_geo.h:2304
int UT3D_pt_ck_in2pt(Point *p1, Point *p2, Point *p3, double tol)
Definition: ut_geo3d.c:7097
void UT3D_vc_ln(Vector *, Line *)
Definition: ut_geo3d.c:9980
int UT3D_ptDi_intptvcpln(Point *ip, double *dist, Plane *pl, Point *pt, Vector *vln)
Definition: ut_geo3d.c:8194
void UT3D_vc_normalize(Vector *, Vector *)
Definition: ut_geo3d.c:11259
int UT3D_npt_ci(Point *pa, int pNr, Circ *ci1)
Definition: ut_geo3d.c:13605
int UT3D_vc_tng_ci_pt(Vector *vt, Point *p1, Circ *ci)
Definition: ut_geo3d.c:10436
void UT2D_vc_setLength(Vector2 *, Vector2 *, double)
Definition: ut_geo2d.c:5141
double UT2D_angd_angr(double)
Definition: ut_geo2d.c:1241
double UT3D_angr_3pt(Point *p1, Point *pc, Point *p2)
Definition: ut_geo3d.c:14180
double UT3D_angr_3vc__(Vector *vz, Vector *v1, Vector *v2)
Definition: ut_geo3d.c:14256
double * wtab
Definition: ut_geo.h:551
char typ
Definition: ut_geo.h:354
2D-ellipse in centerPosition Typ_CVELL2C
Definition: ut_geo.h:418
Index-table; Typ_IndTab.
Definition: ut_geo.h:225
const Vector UT3D_VECTOR_Z
int UT3D_vc_rotangr(Vector *vco, Vector *vci, double *ar)
Definition: ut_geo3d.c:11335
short ySiz
Definition: ut_geo.h:743
int UT3D_pt_m3(Point *pto, Mat_4x3 ma)
Definition: ut_geo3d.c:9129
#define UT2D_vc_perp2pt(vo, p1, p2)
UT2D_vc_perp2pt vector = perpendic. to Line ( + 90 degrees)
Definition: ut_geo.h:2188
int UT3D_pt_mirptln(Point *pto, Point *pti, Line *ln)
Definition: ut_geo3d.c:8512
double UT3D_lenq_PtPt(Point *p1, Point *p2)
Definition: ut_geo3d.c:4570
int UT3D_pt_ck_onLine(Point *p1, Point *p2, Point *p3, double tol)
Definition: ut_geo3d.c:5863
grafic attribute for lines, curves; Typ_Ltyp
Definition: ut_geo.h:937
const Vector2 UT2D_VECTOR_X
Typ_TraRot:
Definition: ut_geo.h:998
#define UT2D_lenS_2pt(p1, p2)
UT2D_lenS_2pt dx+dy-distance point-point.
Definition: ut_geo.h:2027
int UT3D_ck_ptInBox(Point *p1, Point *p2, Point *px)
Definition: ut_box.c:688
int UT2D_parLn_pt2pt(double *d1, Point2 *p1, Point2 *p2, Point2 *px)
float uscy
Definition: ut_geo.h:789
int UT2D_comp2vc_p(Vector2 *, Vector2 *, double)
Definition: ut_geo2d.c:4720
Vector2 vb
Definition: ut_geo.h:434
void UT3D_pt_traptvclen(Point *po, Point *pi, Vector *vc, double dist)
Definition: ut_geo3d.c:7294
Hatch Typ_SURHAT.
Definition: ut_geo.h:640
const Point2 UT2D_PT_NUL
double Mat_3x2[2][3]
Typ_M3x2.
Definition: ut_geo.h:148
int UT2D_pt_ck_linear(int np, Point2 *ptab, double tol)
Definition: ut_geo2d.c:7476
Typ_Memspc (a class for variable-length-records in memory)
Definition: ut_umem.h:33
int UT3D_cv_boxxy(Point *pb1, double x1, double x2, double y1, double y2)
Definition: ut_box.c:896
static Line ln1
Definition: DemoPlugin_Dialog.c:86
int UT2D_pt_ck_inTriangle(Point2 *p1, Point2 *p2, Point2 *p3, Point2 *p)
int UT3D_ck_el360(CurvElli *el1)
Definition: ut_elli.c:389
int UT3D_pt_ck_2pt(Point *pt, Point *pl1, Point *pl2, double tol)
Definition: ut_geo3d.c:5776
int UT2D_sidPerp_2vc(Vector *v1, Vector *v2)
Definition: ut_geo2d.c:4788
Area: B-Spline-Surf Typ_SURBSP.
Definition: ut_geo.h:702
double UT2D_lenB_2pt(Point2 *p1, Point2 *p2)
Definition: ut_geo2d.c:6989
double UT3D_par1_ci_angr(Circ *ci1, double angr)
Definition: ut_geo3d.c:18664
void UT2D_m2_load(Mat_3x2, Vector2 *, Point2 *)
Definition: ut_geo2d.c:8622
Typ_BoxH.
Definition: ut_geo.h:1015
#define UT2D_pt_pt3(pt3)
UT2D_pt_pt3 2D-Point = 3D-Point.
Definition: ut_geo.h:2059
int UT3D_pt_intlnel__(int *np, Point xp[], Line *ln, CurvElli *el)
Definition: ut_elli.c:2237
double scl
Definition: ut_geo.h:829
texture reference; Typ_TEXR
Definition: ut_geo.h:789
double UT3D_sbs_ck_planar(SurBSpl *su1)
Definition: ut_sbsp.c:674
int UT2D_sid_2vc(Vector2 *v1, Vector2 *v2, double tol)
Definition: ut_geo2d.c:4740