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

Method vertex

dep/agg/src/agg_vcgen_stroke.cpp:84–210  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 5

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

Tested by

no test coverage detected