X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fgfxpoly%2Factive.h;fp=lib%2Fgfxpoly%2Factive.h;h=f257f96fb3ed87612c59ebdd74084f0326801c19;hb=66a03382aab040571f94b0861719753bda3ff8f1;hp=0000000000000000000000000000000000000000;hpb=d9028caacb25b27d07c6b642556e8d372bb267a1;p=swftools.git diff --git a/lib/gfxpoly/active.h b/lib/gfxpoly/active.h new file mode 100644 index 0000000..f257f96 --- /dev/null +++ b/lib/gfxpoly/active.h @@ -0,0 +1,24 @@ +#ifndef __active_h__ +#define __active_h__ + +#include "poly.h" +#include "splay.h" + +typedef struct _actlist +{ + //SPLAY_HEAD(root, actnode_t); + segment_t*list; +} actlist_t; + +actlist_t* actlist_new(); +void actlist_verify_and_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_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); + +#endif