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

◆ polygon_outline()

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

Regular n-gon outline as a LINE_LIST (closed loop, 2 * sides vertices).

Parameters
centerPolygon center in NDC.
radiusCircumradius in NDC units.
sidesSide count. Clamped to minimum 3.
rotation_radStarting angle in radians from +X axis.
colorUniform line color.
thicknessLine thickness.

Definition at line 322 of file Geometry2D.cpp.

325{
326 sides = std::max<uint32_t>(sides, k_min_sides);
327 const float step = glm::two_pi<float>() / static_cast<float>(sides);
328
329 std::vector<Kakshya::LineVertex> out;
330 out.reserve((size_t)sides * 2);
331
332 for (uint32_t i = 0; i < sides; ++i) {
333 const float a0 = rotation_rad + static_cast<float>(i) * step;
334 const float a1 = rotation_rad + static_cast<float>((i + 1) % sides) * step;
335 out.push_back(lvert2(ring_point(center, radius, a0), color, thickness));
336 out.push_back(lvert2(ring_point(center, radius, a1), color, thickness));
337 }
338
339 return out;
340}