From e7a51b82558fceba0ab11a7bb0d1506d0bc6cf17 Mon Sep 17 00:00:00 2001
From: mika <mika@mika-ideacentre-Y710-Cube-15ISH>
Date: Thu, 6 Dec 2018 02:36:25 +0100
Subject: [PATCH] some changes to readFile

---
 src/delaunay.c |  5 ++---
 src/delaunay.h |  2 +-
 src/dwyer.c    |  7 +++++--
 src/main.c     | 42 +++++++++++++++++++++++++++++++++++++++++-
 4 files changed, 49 insertions(+), 7 deletions(-)

diff --git a/src/delaunay.c b/src/delaunay.c
index 812294e..d66adb1 100644
--- a/src/delaunay.c
+++ b/src/delaunay.c
@@ -218,7 +218,7 @@ int arrayContains(int *jAlreadyUsed, int numberOfJ, int j){
 	return 0;
 }
 
-void clockwiseNextDelaunayEdge(int *p, int *q, int *r, vertex *S, int *size, int *right) {
+void clockwiseNextDelaunayEdge(const int *p, const int *q, int *r, const vertex *S, const int *size, int *right) {
 	//0: r not initialized, 1: r is left, 2: r is right
 	*right = 0;
 	double maxAngle;
@@ -280,14 +280,13 @@ void delaunayCws(vertex* S, int size) {
 			if(i < j && i < k) {
 				if(isTriangle == 2){
 #ifdef OUTPUTFILE
-						reportTriangle(S[i], S[j], S[k]);
+					reportTriangle(S[i], S[j], S[k]);
 #endif
 				}
 			}
 			j = k;
 		} while(j != j0);
 	}
-	//return delaunayTriangles;
 }
 
 //https://stackoverflow.com/questions/29762048/c-structure-to-string
diff --git a/src/delaunay.h b/src/delaunay.h
index 8dff37d..1773204 100644
--- a/src/delaunay.h
+++ b/src/delaunay.h
@@ -24,7 +24,7 @@ double distance(vertex, vertex);
 void printPoint(vertex);
 void delaunayCws(vertex*, int);
 void write_ppm(const char*);
-void clockwiseNextDelaunayEdge(int *p, int *q, int *r, vertex *S, int *size, int *right);
+void clockwiseNextDelaunayEdge(const int *p, const int *q, int *r, const vertex *S, const int *size, int *right);
 int firstDelaunayEdgeIncidentTo(int j, vertex* S, int size);
 char* vertexToString(vertex);
 circle circleFrom3Points(vertex, vertex, vertex);
diff --git a/src/dwyer.c b/src/dwyer.c
index 4b09b20..1c5ec4f 100644
--- a/src/dwyer.c
+++ b/src/dwyer.c
@@ -1,4 +1,4 @@
-//#define POSTSCRIPT
+#define POSTSCRIPT
 /****************************************************************/
 /*	DELAUNAY TRIANGULATION
 /*	VORONOI DIAGRAM
@@ -1209,6 +1209,8 @@ printf("[ ] 0 setdash\n");
     vp[0] = 0; vp[n+1] = n+1;    /* sentinals for sorting routines */
 	vpsortx(1,n);
     delete_all_edges();
+    printf("test\n");
+    fflush(stdout);
     if (prog == 'g')
 	build_delaunay(vp, 1, n, &left, &right, n);
     else if (prog != 'c')
@@ -1231,7 +1233,8 @@ printf("[ ] 0 setdash\n");
 	    output_voronoi_diagram(left, right);
 	    break;
 	case 'd': case 'g':
-	    output_colorful_delaunay_triangulation(left, right);
+	    //output_colorful_delaunay_triangulation(left, right);
+		output_delaunay_triangulation(left, right);
 	    break;
 	    }
     }
diff --git a/src/main.c b/src/main.c
index 3b42476..89934b3 100644
--- a/src/main.c
+++ b/src/main.c
@@ -116,7 +116,47 @@ void readFile(char *file, vertex **v, int *size){
 	*v = malloc(*size * sizeof(vertex));
 	printf("Number of Points: %d\n", *size);
 	int i;
-	for(i = 0; i < *size && fscanf(f, "%lf %lf\n", &(*v)[i].x, &(*v)[i].y) == 2; i++);
+	double smallestx = .0;
+	double smallesty = .0;
+	double biggestx = 1.0;
+	double biggesty = 1.0;
+	for(i = 0; i < *size && fscanf(f, "%lf, %lf\n", &(*v)[i].x, &(*v)[i].y) == 2; i++) {
+		if((*v)[i].x < smallestx) {
+			smallestx = (*v)[i].x;
+		} else if ((*v)[i].x > biggestx){
+			biggestx = (*v)[i].x;
+		}
+		if((*v)[i].y < smallesty) {
+			smallesty = (*v)[i].y;
+		} else if((*v)[i].y > biggesty) {
+			biggesty = (*v)[i].y;
+		}
+	}
+	if(smallestx < .0 || biggestx > 1.0 || smallesty > .0 || biggesty > 1.0) {
+		biggestx = biggestx - smallestx;
+		biggesty = biggesty - smallesty;
+		double biggest;
+		if(biggestx >= biggesty) {
+			biggest = biggestx;
+		} else {
+			biggest = biggesty;
+		}
+		for(int j = 0; j < *size; j++){
+			if(smallestx < .0) {
+				(*v)[j].x = (*v)[j].x - smallestx;
+			}
+			if(smallesty < .0) {
+				(*v)[j].y = (*v)[j].y - smallesty;
+			}
+			if(biggest > 1.0){
+				(*v)[j].x /= biggest;
+				(*v)[j].y /= biggest;
+			}
+			printf("%lf[^, \t\n\f\r\v]%lf\n", (*v)[j].x, (*v)[j].y);
+		}
+
+	}
+
 	if(i != *size) {
 		fprintf(stderr, "Number of sites specified in %s does not match with the actual number of points\n", file);
 	}
-- 
GitLab