]> granicus.if.org Git - graphviz/commitdiff
Make various geometry routines such as subPt available globally;
authorerg <devnull@localhost>
Fri, 13 Jun 2008 17:12:57 +0000 (17:12 +0000)
committererg <devnull@localhost>
Fri, 13 Jun 2008 17:12:57 +0000 (17:12 +0000)
modify old Voronoi code to use common pointf type;
rename subPt in Voronoi code to avoid conflict.

lib/common/geom.c
lib/common/geomprocs.h
lib/neatogen/geometry.c
lib/neatogen/geometry.h
lib/neatogen/poly.c

index f0106386f87d6fcf471bbd06669d29d1d4c80434..b1e09f0f97d3af289c6352458bfdfc1d3b5c0064 100644 (file)
@@ -534,7 +534,7 @@ double ptToLine2 (pointf a, pointf b, pointf p)
 
 #define SMALL 0.0000000001
 
-static pointf
+pointf
 subPt (pointf a, pointf b)
 {
     pointf c;
@@ -544,7 +544,7 @@ subPt (pointf a, pointf b)
     return c;
 }
 
-static pointf
+pointf
 perp (pointf a)
 {
     pointf c;
@@ -560,7 +560,7 @@ dot (pointf a, pointf b)
     return (a.x*b.x + a.y*b.y);
 }
 
-static pointf
+pointf
 scale (double c, pointf a)
 {
     pointf b;
index 617f780e993ed718024f46c50d89baa50ad13615..6b0a574751ab91a8d22919ddc183e438b163af72 100644 (file)
@@ -72,6 +72,9 @@ extern point cwrotatep(point p, int cwrot);
 extern pointf cwrotatepf(pointf p, int cwrot);
 
 extern void rect2poly(pointf *p);
+extern pointf scale(double c, pointf v);
+extern pointf perp(pointf v);
+extern pointf subPt(pointf v, pointf w);
 
 extern int seg_intersect (pointf a, pointf b, pointf c, pointf d, pointf* x);
 #ifdef __cplusplus
index 126af3449291b25f3eb02a37543b2ed645df7ff1..19ce6c14ca09f8bf1200067a6fa9b97dd2e30d0b 100644 (file)
@@ -45,7 +45,7 @@ double dist_2(Point * pp, Point * qp)
     return (dx * dx + dy * dy);
 }
 
-void subPt(Point * a, Point b, Point c)
+void subpt(Point * a, Point b, Point c)
 {
     a->x = b.x - c.x;
     a->y = b.y - c.y;
index 19778b3376409b595bc86d4ab32410543f3d8e07..345ed017ca75bd83972a790f86fb99ebc5150715 100644 (file)
@@ -23,9 +23,13 @@ extern "C" {
 #ifndef GEOMETRY_H
 #define GEOMETRY_H
 
+#ifdef HAVE_POINTF_S
+    typedef pointf Point;
+#else
     typedef struct Point {
        double x, y;
     } Point;
+#endif
 
     extern Point origin;
 
@@ -37,7 +41,7 @@ extern "C" {
 
     extern void geominit(void);
     extern double dist_2(Point *, Point *);    /* Distance squared between two points */
-    extern void subPt(Point * a, Point b, Point c);
+    extern void subpt(Point * a, Point b, Point c);
     extern void addPt(Point * a, Point b, Point c);
     extern double area_2(Point a, Point b, Point c);
     extern int leftOf(Point a, Point b, Point c);
index 3c93f84950b14221dc90bae84d71d7a42b3b40b2..3d3c215469b5914f2be4c0f32703aa9f6d392c6d 100644 (file)
@@ -384,8 +384,8 @@ static int edgesIntersect(Point * P, Point * Q, int n, int m)
        a1 = (a + n - 1) % n;
        b1 = (b + m - 1) % m;
 
-       subPt(&A, P[a], P[a1]);
-       subPt(&B, Q[b], Q[b1]);
+       subpt(&A, P[a], P[a1]);
+       subpt(&B, Q[b], Q[b1]);
 
        cross = area_2(origin, A, B);
        bHA = leftOf(P[a1], P[a], Q[b]);