MCPcopy Create free account
hub / github.com/davidgiven/fluxengine / vertex

Method vertex

dep/agg/src/agg_vcgen_smooth_poly1.cpp:102–222  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

100
101 //------------------------------------------------------------------------
102 unsigned vcgen_smooth_poly1::vertex(double* x, double* y)
103 {
104 unsigned cmd = path_cmd_line_to;
105 while(!is_stop(cmd))
106 {
107 switch(m_status)
108 {
109 case initial:
110 rewind(0);
111
112 case ready:
113 if(m_src_vertices.size() < 2)
114 {
115 cmd = path_cmd_stop;
116 break;
117 }
118
119 if(m_src_vertices.size() == 2)
120 {
121 *x = m_src_vertices[m_src_vertex].x;
122 *y = m_src_vertices[m_src_vertex].y;
123 m_src_vertex++;
124 if(m_src_vertex == 1) return path_cmd_move_to;
125 if(m_src_vertex == 2) return path_cmd_line_to;
126 cmd = path_cmd_stop;
127 break;
128 }
129
130 cmd = path_cmd_move_to;
131 m_status = polygon;
132 m_src_vertex = 0;
133
134 case polygon:
135 if(m_closed)
136 {
137 if(m_src_vertex >= m_src_vertices.size())
138 {
139 *x = m_src_vertices[0].x;
140 *y = m_src_vertices[0].y;
141 m_status = end_poly;
142 return path_cmd_curve4;
143 }
144 }
145 else
146 {
147 if(m_src_vertex >= m_src_vertices.size() - 1)
148 {
149 *x = m_src_vertices[m_src_vertices.size() - 1].x;
150 *y = m_src_vertices[m_src_vertices.size() - 1].y;
151 m_status = end_poly;
152 return path_cmd_curve3;
153 }
154 }
155
156 calculate(m_src_vertices.prev(m_src_vertex),
157 m_src_vertices.curr(m_src_vertex),
158 m_src_vertices.next(m_src_vertex),
159 m_src_vertices.next(m_src_vertex + 1));

Callers

nothing calls this directly

Calls 3

is_stopFunction · 0.85
sizeMethod · 0.45
nextMethod · 0.45

Tested by

no test coverage detected