MCPcopy Create free account
hub / github.com/MapServer/MapServer / vertex

Method vertex

renderers/agg/src/agg_vcgen_stroke.cpp:85–211  ·  view source on GitHub ↗

------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

83
84 //------------------------------------------------------------------------
85 unsigned vcgen_stroke::vertex(double* x, double* y)
86 {
87 unsigned cmd = path_cmd_line_to;
88 while(!is_stop(cmd))
89 {
90 switch(m_status)
91 {
92 case initial:
93 rewind(0);
94
95 case ready:
96 if(m_src_vertices.size() < 2 + unsigned(m_closed != 0))
97 {
98 cmd = path_cmd_stop;
99 break;
100 }
101 m_status = m_closed ? outline1 : cap1;
102 cmd = path_cmd_move_to;
103 m_src_vertex = 0;
104 m_out_vertex = 0;
105 break;
106
107 case cap1:
108 m_stroker.calc_cap(m_out_vertices,
109 m_src_vertices[0],
110 m_src_vertices[1],
111 m_src_vertices[0].dist);
112 m_src_vertex = 1;
113 m_prev_status = outline1;
114 m_status = out_vertices;
115 m_out_vertex = 0;
116 break;
117
118 case cap2:
119 m_stroker.calc_cap(m_out_vertices,
120 m_src_vertices[m_src_vertices.size() - 1],
121 m_src_vertices[m_src_vertices.size() - 2],
122 m_src_vertices[m_src_vertices.size() - 2].dist);
123 m_prev_status = outline2;
124 m_status = out_vertices;
125 m_out_vertex = 0;
126 break;
127
128 case outline1:
129 if(m_closed)
130 {
131 if(m_src_vertex >= m_src_vertices.size())
132 {
133 m_prev_status = close_first;
134 m_status = end_poly1;
135 break;
136 }
137 }
138 else
139 {
140 if(m_src_vertex >= m_src_vertices.size() - 1)
141 {
142 m_status = cap2;

Callers

nothing calls this directly

Calls 5

is_stopFunction · 0.85
calc_capMethod · 0.80
calc_joinMethod · 0.80
nextMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected