X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fgfxpoly%2Ftest.c;h=28694706da275402913c502541079177bf7445bc;hp=01da58126647ab324dd86c44255fd9512fe5f262;hb=50c888f9b496d8c48084193aa1c0dcb8ad1c935b;hpb=678260583255100b0dce559e0f8f2f813e6f162e diff --git a/lib/gfxpoly/test.c b/lib/gfxpoly/test.c index 01da581..2869470 100644 --- a/lib/gfxpoly/test.c +++ b/lib/gfxpoly/test.c @@ -166,6 +166,29 @@ int test_speed() gfxline_free(b); } +int testbox(int argn, char*argv[]) +{ + gfxline_t*box1 = gfxline_makerectangle(-100,-100,100,100); + gfxline_t*box2 = gfxline_makerectangle(-50,-50,150,150); + gfxpoly_t*poly1 = gfxpoly_from_fill(box1, 0.05); + gfxpoly_t*poly2 = gfxpoly_from_fill(box2, 0.05); + gfxline_free(box1); + gfxline_free(box2); + + gfxpoly_t*poly12 = gfxpoly_process(poly1, poly2, &windrule_intersect, &twopolygons); + gfxpoly_dump(poly12); + assert(gfxpoly_check(poly12, 0)); + gfxpoly_destroy(poly12); +} + +int teststroke(int argn, char*argv[]) +{ + //gfxline_t*box1 = gfxline_makerectangle(-100,-100,100,100); + gfxline_t*box1 = gfxline_makerectangle(100,100,200,200); + gfxpoly_t*poly = gfxpoly_from_stroke(box1, 10.0, gfx_capRound, gfx_joinMiter, 1000, 0.05); + assert(gfxpoly_check(poly, 1)); +} + int test0(int argn, char*argv[]) { gfxline_t*box1 = gfxline_makerectangle(-100,-100,100,100); @@ -173,8 +196,6 @@ int test0(int argn, char*argv[]) gfxline_t*box3 = gfxline_makerectangle(-100,-100,100,100); //gfxline_append(box2, box3); - assert(gfxpoly_check(gfxpoly_from_stroke(box1, 2.0, gfx_capRound, gfx_joinRound, 0, 0.05), 1)); - gfxmatrix_t matrix; memset(&matrix, 0, sizeof(gfxmatrix_t)); double ua=M_PI/4; @@ -306,8 +327,8 @@ void test3(int argn, char*argv[]) //gfxline_t*line = mkrandomshape(RANGE, N); //windrule_t*rule = &windrule_circular; - //gfxline_t*line = mkchessboard(); - gfxline_t*line = make_circles(30); + gfxline_t*line = mkchessboard(); + //gfxline_t*line = make_circles(30); windrule_t*rule = &windrule_evenodd; //windrule_t*rule = &windrule_circular; @@ -341,6 +362,7 @@ void test3(int argn, char*argv[]) gfxpoly_t*poly1 = gfxpoly_from_fill(l, 0.05); gfxpoly_t*poly2 = gfxpoly_process(poly1, 0, rule, &onepolygon); + assert(gfxpoly_check(poly2, 0)); tag = swf_InsertTag(tag, ST_DEFINESHAPE); SHAPE* s; @@ -453,10 +475,11 @@ void test4(int argn, char*argv[]) if(!gfxpoly_check(poly1, 0)) { printf("bad polygon\n"); - continue; + goto end_of_loop; } gfxpoly_t*poly2 = gfxpoly_process(poly1, 0, rule, &onepolygon); + gfxpoly_dump(poly2); assert(gfxpoly_check(poly2, 1)); int pass; @@ -482,6 +505,8 @@ void test4(int argn, char*argv[]) gfxpoly_destroy(poly1); gfxpoly_destroy(poly2); + + end_of_loop: if(argn==2) break; }