#ifndef DCEL_HEADER #include "dcel.h" #endif #ifndef VORONOI_HEADER #define VORONOI_HEADER /* Prints bisectors to an output file */ void stage1PrintBisector(bisector_t *bisector, FILE *outputFile); /* Prints intersections to an output file */ void stage2PrintIntersection(intersection_t *intersection, FILE *outputFile); /* Prints the watchtower information to an output file */ void stage34PrintTowers(tower_t *tower, FILE *outputFile, double diameter); /* Returns the face a tower is in */ int getFaceTowerIsIn(DCEL_t *dcel, tower_t *tower); /* Adds the watchtower to the Voronoi diagram represented by the given DCEL, * applying required splits and setting the watchtower as required. */ void incrementalVoronoi(DCEL_t *voronoi, tower_t *tower); /* Creates a new Voronoi structure */ DCEL_t *newVoronoi(DCEL_t *voronoi, tower_t *towerA, tower_t *towerB); /* 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