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

◆ filled_polygon()

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

Filled regular n-gon as a TRIANGLE_LIST triangle fan.

Vertices are placed on a circle of radius, starting at rotation_rad from +X, CCW. Minimum sides is 3.

Parameters
centerPolygon center in NDC.
radiusCircumradius in NDC units.
sidesNumber of sides. Clamped to minimum 3.
rotation_radStarting angle in radians from +X axis.
colorUniform fill color.

Definition at line 89 of file Geometry2D.cpp.

92{
93 sides = std::max<uint32_t>(sides, k_min_sides);
94 const float step = glm::two_pi<float>() / static_cast<float>(sides);
95
96 std::vector<Kakshya::Vertex> out;
97 out.reserve((size_t)sides * 3);
98
99 for (uint32_t i = 0; i < sides; ++i) {
100 const float a0 = rotation_rad + static_cast<float>(i) * step;
101 const float a1 = rotation_rad + static_cast<float>(i + 1) * step;
102 out.push_back(vert2(center, color));
103 out.push_back(vert2(ring_point(center, radius, a0), color));
104 out.push_back(vert2(ring_point(center, radius, a1), color));
105 }
106
107 return out;
108}