16 #ifndef AGG_VCGEN_VERTEX_SEQUENCE_INCLUDED 17 #define AGG_VCGEN_VERTEX_SEQUENCE_INCLUDED 19 #include "agg_basics.h" 20 #include "agg_vertex_sequence.h" 21 #include "agg_shorten_path.h" 43 void add_vertex(
double x,
double y,
unsigned cmd);
46 void rewind(
unsigned path_id);
47 unsigned vertex(
double* x,
double* y);
49 void shorten(
double s) { m_shorten = s; }
50 double shorten()
const {
return m_shorten; }
56 vertex_storage m_src_vertices;
58 unsigned m_cur_vertex;
65 inline void vcgen_vertex_sequence::remove_all()
68 m_src_vertices.remove_all();
74 inline void vcgen_vertex_sequence::add_vertex(
double x,
double y,
unsigned cmd)
89 m_flags = cmd & path_flags_mask;
96 inline void vcgen_vertex_sequence::rewind(
unsigned)
100 m_src_vertices.close(is_closed(m_flags));
101 shorten_path(m_src_vertices, m_shorten, get_close_flag(m_flags));
108 inline unsigned vcgen_vertex_sequence::vertex(
double* x,
double* y)
115 if(m_cur_vertex == m_src_vertices.size())
118 return path_cmd_end_poly | m_flags;
121 if(m_cur_vertex > m_src_vertices.size())
123 return path_cmd_stop;