30 #define INTERSECTING MAX_INT16//no winding number
62 static void FakeOutline(
const TBOX& box, C_OUTLINE_LIST* outlines);
72 return flags.bit (mask);
77 flags.set_bit (mask, value);
91 int shift = stepindex%4 * 2;
92 uinT8 mask = 3 << shift;
93 steps[stepindex/4] = ((stepdir << shift) & mask) |
94 (steps[stepindex/4] & ~mask);
103 set_step(stepindex, chaindir);
121 return step_coords[(steps[index/4] >> (index%4 * 2)) &
STEP_MASK];
127 inT32 count_transitions(
135 return other < *
this;
137 inT16 winding_number(
140 inT16 turn_direction()
const;
151 void RemoveSmallRecursive(
int min_size, C_OUTLINE_IT* it);
155 void render(
int left,
int top, Pix* pix)
const;
161 #ifndef GRAPHICS_DISABLED
165 #endif // GRAPHICS_DISABLED
175 static ICOORD chain_step(
int chaindir);
178 int step_mem()
const {
return (stepcount+3) / 4; }
185 C_OUTLINE_LIST children;
186 static ICOORD step_coords[4];
void set_flag(C_OUTLINE_FLAGS mask, BOOL8 value)
const ICOORD & start_pos() const
ICOORD step(inT16 index) const
const TBOX & bounding_box() const
void free_mem(void *oldchunk)
void render_outline(void *window, TESSLINE *outline, C_COL color)
static C_OUTLINE * deep_copy(const C_OUTLINE *src)
void set_step(inT16 stepindex, DIR128 stepdir)
DIR128 step_dir(inT16 index) const
BOOL8 flag(C_OUTLINE_FLAGS mask) const
#define ELISTIZEH(CLASSNAME)
void set_step(inT16 stepindex, inT8 stepdir)