#ifndef DCEL_HEADER #include "dcel.h" #endif #ifndef VORONOI_HEADER #define VORONOI_HEADER typedef struct tower { char *id; char *postcode; char *manager; int population; double x; double y; } tower_t; /* Reads the CSV file and stores the information in the towers array */ tower_t **readTowers(tower_t **towers, FILE *datasetFile, int *numTowers); /* Reads the current row from the CSV and converts it into a new tower */ void readCurrentTower(char *lineBuffer, tower_t *tower); /* Frees all towers in a towers array */ void freeTowers(tower_t **towers, int numTowers); /* Reads a points file and stores the information in the points array */ vertex_t **readPoints(vertex_t **points, FILE *pointsFile, int *numPoints); /* Frees all points from a points array */ void freePoints(vertex_t **points, int numPoints); /* Outputs the bisector equations from pointsFile into outputFile */ void stage1(char *pointsFileName, char *outputFileName); /* Outputs the intersections the bisectors make with the polygon */ void stage2(char *pointsFileName, char *polygonFileName, char *outputFileName); /* Constructs a Voronoi diagram and prints the resulting diameters */ void stage3(char *dataFileName, char *polygonFileName, char *outputFileName); /* Same as stage3, but prints diameters in ascending order */ void stage4(char *dataFileName, char *polygonFileName, char *outputFileName); #endif