MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ filled_arc()

MAYAFLUX_API std::vector< Kakshya::Vertex > MayaFlux::Kinesis::filled_arc ( glm::vec2  center,
float  radius,
float  angle_start,
float  angle_end,
uint32_t  segments,
glm::vec3  color = glm::vec3(1.F) 
)

Filled circular arc sector (pie slice) as a TRIANGLE_LIST fan.

angle_start and angle_end are in radians, measured from +X CCW. Minimum segments is 1.

Parameters
centerArc center in NDC.
radiusRadius in NDC units.
angle_startStart angle in radians.
angle_endEnd angle in radians.
segmentsTriangle count over the arc span.
colorUniform fill color.

Definition at line 181 of file Geometry2D.cpp.

185{
186 segments = std::max<uint32_t>(segments, 1U);
187 const float step = (angle_end - angle_start) / static_cast<float>(segments);
188
189 std::vector<Kakshya::Vertex> out;
190 out.reserve(static_cast<size_t>(segments) * 3);
191
192 for (uint32_t i = 0; i < segments; ++i) {
193 const float a0 = angle_start + static_cast<float>(i) * step;
194 const float a1 = angle_start + static_cast<float>(i + 1) * step;
195 out.push_back(vert2(center, color));
196 out.push_back(vert2(ring_point(center, radius, a0), color));
197 out.push_back(vert2(ring_point(center, radius, a1), color));
198 }
199
200 return out;
201}