X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fgfxpoly%2Fpoly.h;h=dfada99fbe21268de2640cc64c364dde72658ae7;hp=b9675670e51f880e1fbe47627f480417bf6c1d96;hb=ba166d59c4c6672c8cb65c881193bb104c629bf7;hpb=64cbdc0d10e611af20d4d375ff6319793da8e6f5 diff --git a/lib/gfxpoly/poly.h b/lib/gfxpoly/poly.h index b967567..dfada99 100644 --- a/lib/gfxpoly/poly.h +++ b/lib/gfxpoly/poly.h @@ -5,7 +5,8 @@ #include "../q.h" //#define DEBUG -#define CHECKS +//#define CHECKS +#define SPLAY typedef enum {DIR_UP, DIR_DOWN} segment_dir_t; typedef enum {EVENT_CROSS, EVENT_END, EVENT_CORNER, EVENT_START, EVENT_HORIZONTAL} eventtype_t; @@ -24,7 +25,9 @@ typedef struct _edge { point_t a; point_t b; fillstyle_t*style; +#ifdef DEBUG int tmp; +#endif struct _edge *next; } edge_t; @@ -42,6 +45,8 @@ typedef struct _windrule fillstyle_t* (*diff)(windstate_t*left, windstate_t*right); } windrule_t; +#define SEGNR(s) ((s)?(s)->nr:-1) + typedef struct _segment { point_t a; point_t b; @@ -58,6 +63,11 @@ typedef struct _segment { windstate_t wind; int nr; +#ifdef SPLAY + struct _segment*parent; + struct _segment*leftchild; + struct _segment*rightchild; +#endif struct _segment*left; struct _segment*right; char changed;