summaryrefslogtreecommitdiffstats
path: root/geometry.h
diff options
context:
space:
mode:
Diffstat (limited to 'geometry.h')
-rw-r--r--geometry.h28
1 files changed, 11 insertions, 17 deletions
diff --git a/geometry.h b/geometry.h
index a272b2c..7badc74 100644
--- a/geometry.h
+++ b/geometry.h
@@ -2,6 +2,7 @@
#define GEOMETRY_H_
+#include "Vertex.h"
#include <glib.h>
#define EDGE_NONE 0
@@ -21,41 +22,34 @@
#define INTERSECTION_SEGMENT_SEGMENT 7
-typedef struct _VERTEX {
- double x, y;
-} VERTEX;
-
typedef struct _RECTANGLE {
double x, y, width, height;
} RECTANGLE;
typedef struct _LINE {
- VERTEX v1, v2;
+ Vertex v1, v2;
} LINE;
typedef struct _VERTEX_LIST {
unsigned int nVertices;
- VERTEX *vertices;
+ Vertex *vertices;
} VERTEX_LIST, POLYGON;
-void addVertex(VERTEX_LIST *list, const VERTEX *v);
-void insertVertex(VERTEX_LIST *list, const VERTEX *v, unsigned int n);
+void addVertex(VERTEX_LIST *list, const Vertex *v);
+void insertVertex(VERTEX_LIST *list, const Vertex *v, unsigned int n);
void deleteVertex(VERTEX_LIST *list, unsigned int n);
-double vertexDistanceSquare(const VERTEX *v1, const VERTEX *v2);
-double vertexDistance(const VERTEX *v1, const VERTEX *v2);
-
-int vertexOnLine(const VERTEX *v, const LINE *l);
-int vertexInRect(const VERTEX *v, const RECTANGLE *rect);
-gboolean vertexInPolygon(const VERTEX *v, const POLYGON *p);
+int vertexOnLine(const Vertex *v, const LINE *l);
+int vertexInRect(const Vertex *v, const RECTANGLE *rect);
+gboolean vertexInPolygon(const Vertex *v, const POLYGON *p);
double polygonPerimeter(const POLYGON *p);
double polygonArea(const POLYGON *p);
-int lineIntersection(const LINE *la, const LINE *lb, VERTEX *v);
-int lineRectIntersection(const LINE *l, const RECTANGLE *rect, int edge, VERTEX *v);
-int lineRectIntersections(const LINE *line, const RECTANGLE *rect, int edge, VERTEX *v1, VERTEX *v2);
+int lineIntersection(const LINE *la, const LINE *lb, Vertex *v);
+int lineRectIntersection(const LINE *l, const RECTANGLE *rect, int edge, Vertex *v);
+int lineRectIntersections(const LINE *line, const RECTANGLE *rect, int edge, Vertex *v1, Vertex *v2);
gboolean linePolygonIntersection(const LINE *l, const POLYGON *p);
void simplifyPolygon(const POLYGON *in, const RECTANGLE *rect, POLYGON *out);