#include #include "voronoi.h" #include #include #include "delete.h" void werror(char *where) { char *err; /*SBOD *Bod;*/ (void)fprintf(stderr,"%s: %s ",progname,where); perror(""); /* Bod=poc_sbod->dalsi; while(Bod!=NULL) { printf("%d,%d\n",(int)Bod->x,(int)Bod->y); Bod=Bod->dalsi; } */ exit(1); } extern SHRANA *poc_shrana; void Cisti(SOBAL *Obal) { SOBAL *PomObal,*PomObal2; PomObal=Obal; while (PomObal!=NULL) { PomObal2=PomObal; PomObal=PomObal->dalsi; free(PomObal2); } } void ZrusHranu(SHRANA *Hrana) { SHRANA *PomHrana,*PomHrana2; SHRANY *Hrany,*Hrany2; PomHrana=poc_shrana; while (PomHrana!=Hrana) { PomHrana2=PomHrana; PomHrana=PomHrana->dalsi; } if (Hrana->pbod1!=NULL) { Hrany=Hrana->pbod1->hrany; while (Hrany->hrana!=Hrana) { Hrany2=Hrany; Hrany=Hrany->dalsi; } if (Hrany==Hrana->pbod1->hrany) { Hrana->pbod1->hrany=Hrana->pbod1->hrany->dalsi; free(Hrany); } else { Hrany2->dalsi=Hrany->dalsi; free(Hrany); } } if (Hrana->pbod2!=NULL) { Hrany=Hrana->pbod2->hrany; while (Hrany->hrana!=Hrana) { Hrany2=Hrany; Hrany=Hrany->dalsi; } if (Hrany==Hrana->pbod2->hrany) { Hrana->pbod2->hrany=Hrana->pbod2->hrany->dalsi; free(Hrany); } else { Hrany2->dalsi=Hrany->dalsi; free(Hrany); } } if (PomHrana==poc_shrana) { poc_shrana=poc_shrana->dalsi; free(PomHrana); } else { PomHrana2->dalsi=PomHrana->dalsi; free(PomHrana); } } void ZrusPBod(SPBOD *Uzel) { SPBOD *PomUzel,*PomUzel2; SHRANY *Hrany; Hrany=Uzel->hrany; while (Hrany!=NULL) { if (Hrany->hrana->pbod1==Uzel) { Hrany->hrana->pbod1=Hrany->hrana->pbod2; Hrany->hrana->pbod2=NULL; } else if (Hrany->hrana->pbod2==Uzel) Hrany->hrana->pbod2=NULL; Uzel->hrany=Hrany->dalsi; free(Hrany); Hrany=Uzel->hrany; } PomUzel=poc_spbod; while (PomUzel!=Uzel) { PomUzel2=PomUzel; PomUzel=PomUzel->dalsi; } if (PomUzel==poc_spbod) { poc_spbod=poc_spbod->dalsi; free(PomUzel); } else { PomUzel2->dalsi=PomUzel->dalsi; free(PomUzel); } }