16 #include "agg_vpgen_clip_polygon.h" 17 #include "agg_clip_liang_barsky.h" 40 unsigned vpgen_clip_polygon::clipping_flags(
double x,
double y)
44 if(y > m_clip_box.y2)
return 6;
45 if(y < m_clip_box.y1)
return 12;
51 if(y > m_clip_box.y2)
return 3;
52 if(y < m_clip_box.y1)
return 9;
56 if(y > m_clip_box.y2)
return 2;
57 if(y < m_clip_box.y1)
return 8;
63 void vpgen_clip_polygon::reset()
70 void vpgen_clip_polygon::move_to(
double x,
double y)
74 m_clip_flags = clipping_flags(x, y);
83 m_cmd = path_cmd_move_to;
88 void vpgen_clip_polygon::line_to(
double x,
double y)
92 unsigned flags = clipping_flags(x, y);
94 if(m_clip_flags == flags)
105 m_num_vertices = clip_liang_barsky(m_x1, m_y1,
111 m_clip_flags = flags;
118 unsigned vpgen_clip_polygon::vertex(
double* x,
double* y)
120 if(m_vertex < m_num_vertices)
125 unsigned cmd = m_cmd;
126 m_cmd = path_cmd_line_to;
129 return path_cmd_stop;