X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fgfxpoly%2Fconvert.c;h=aea0a171d57869da297aadffd5a3bfb7511ddc31;hb=33e9461da6b886671749d6cbabd80b355ab1f6d9;hp=5615612c1a7f9f45a0e8ca0292235f2dc5270d93;hpb=c41f4433d3e721073c60d55cd923a087761e45f7;p=swftools.git diff --git a/lib/gfxpoly/convert.c b/lib/gfxpoly/convert.c index 5615612..aea0a17 100644 --- a/lib/gfxpoly/convert.c +++ b/lib/gfxpoly/convert.c @@ -1,18 +1,17 @@ #include #include -#include #include #include "../gfxdevice.h" +#include "../mem.h" #include "poly.h" static edge_t*edge_new(int x1, int y1, int x2, int y2) { - edge_t*s = malloc(sizeof(edge_t)); + edge_t*s = rfx_calloc(sizeof(edge_t)); s->a.x = x1; s->a.y = y1; s->b.x = x2; s->b.y = y2; - s->next = 0; return s; } @@ -29,7 +28,7 @@ static inline void gfxpoly_add_edge(gfxpoly_t*poly, double _x1, double _y1, doub } } -gfxpoly_t* gfxpoly_fillToPoly(gfxline_t*line, double gridsize) +gfxpoly_t* gfxpoly_from_gfxline(gfxline_t*line, double gridsize) { gfxpoly_t*p = gfxpoly_new(gridsize); @@ -105,6 +104,7 @@ gfxpoly_t* gfxpoly_from_file(const char*filename, double gridsize) return 0; } int count = 0; + double g = 0; double lastx=0,lasty=0; while(1) { char*line = readline(fi); @@ -125,10 +125,16 @@ gfxpoly_t* gfxpoly_from_file(const char*filename, double gridsize) } lastx = x; lasty = y; + } else if(sscanf(line, "%% gridsize %lf", &g) == 1) { + p->gridsize = g; } free(line); } fclose(fi); - printf("loaded %d points from %s\n", count, filename); + if(g) { + printf("loaded %d points from %s (gridsize %f)\n", count, filename, g); + } else { + printf("loaded %d points from %s\n", count, filename); + } return p; }