X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fgfxpoly%2Factive.h;h=02073b01d92a88fa0b6997288dda34e27ca175e7;hb=ba166d59c4c6672c8cb65c881193bb104c629bf7;hp=f257f96fb3ed87612c59ebdd74084f0326801c19;hpb=66a03382aab040571f94b0861719753bda3ff8f1;p=swftools.git diff --git a/lib/gfxpoly/active.h b/lib/gfxpoly/active.h index f257f96..02073b0 100644 --- a/lib/gfxpoly/active.h +++ b/lib/gfxpoly/active.h @@ -2,23 +2,29 @@ #define __active_h__ #include "poly.h" -#include "splay.h" typedef struct _actlist { - //SPLAY_HEAD(root, actnode_t); segment_t*list; + int size; +#ifdef SPLAY + segment_t*root; +#endif } actlist_t; +#define actlist_left(a,s) ((s)->left) +#define actlist_right(a,s) ((s)?(s)->right:(a)->list) + actlist_t* actlist_new(); -void actlist_verify_and_dump(actlist_t*a, int32_t y); +void actlist_destroy(actlist_t*a); +int actlist_size(actlist_t*a); +void actlist_verify(actlist_t*a, int32_t y); +void actlist_dump(actlist_t*a, int32_t y); segment_t* actlist_find(actlist_t*a, point_t p1, point_t p2); // finds segment immediately to the left of p1 (breaking ties w/ p2) -void actlist_insert(actlist_t*a, point_t p, segment_t*s); +void actlist_insert(actlist_t*a, point_t p1, point_t p2, segment_t*s); void actlist_delete(actlist_t*a, segment_t*s); void actlist_swap(actlist_t*a, segment_t*s1, segment_t*s2); -void actlist_invert_fromto(actlist_t*a, segment_t*s1, segment_t*s2); -segment_t* actlist_left(actlist_t*a, segment_t*s); segment_t* actlist_leftmost(actlist_t*a); -segment_t* actlist_right(actlist_t*a, segment_t*s); +segment_t* actlist_rightmost(actlist_t*a); #endif