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

◆ filled_circle()

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

Filled circle as a TRIANGLE_LIST triangle fan.

Decomposes into (segments) triangles sharing a common center vertex. Minimum segments is 3; values below are clamped.

Parameters
centerCircle center in NDC.
radiusRadius in NDC units.
segmentsTriangle count around the circumference.
colorUniform fill color.

Definition at line 38 of file Geometry2D.cpp.

40{
41 segments = std::max<uint32_t>(segments, k_min_segments);
42 const float step = glm::two_pi<float>() / static_cast<float>(segments);
43
44 std::vector<Kakshya::Vertex> out;
45 out.reserve(static_cast<size_t>(segments) * 3);
46
47 for (uint32_t i = 0; i < segments; ++i) {
48 const float a0 = static_cast<float>(i) * step;
49 const float a1 = static_cast<float>(i + 1) * step;
50 out.push_back(vert2(center, color));
51 out.push_back(vert2(ring_point(center, radius, a0), color));
52 out.push_back(vert2(ring_point(center, radius, a1), color));
53 }
54
55 return out;
56}