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

◆ arc_outline()

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

Arc outline as a LINE_LIST (open curve, 2 * segments vertices).

angle_start and angle_end are in radians 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.
segmentsEdge count over the arc span.
colorUniform line color.
thicknessLine thickness.

Definition at line 245 of file Geometry2D.cpp.

249{
250 segments = std::max<uint32_t>(segments, 1U);
251 const float step = (angle_end - angle_start) / static_cast<float>(segments);
252
253 std::vector<Kakshya::LineVertex> out;
254 out.reserve(static_cast<size_t>(segments) * 2);
255
256 for (uint32_t i = 0; i < segments; ++i) {
257 const float a0 = angle_start + static_cast<float>(i) * step;
258 const float a1 = angle_start + static_cast<float>(i + 1) * step;
259 out.push_back(lvert2(ring_point(center, radius, a0), color, thickness));
260 out.push_back(lvert2(ring_point(center, radius, a1), color, thickness));
261 }
262
263 return out;
264}