Smolgui
Immediate gui library based on SFML
Loading...
Searching...
No Matches
PrimitiveShapeRender.tpp
Go to the documentation of this file.
1namespace sgui
2{
3/////////////////////////////////////////////////
4template <size_t N>
5void PrimitiveShapeRender::load (
6 const Polygon<N>& polygon,
7 const float thickness,
8 const sf::Color& color)
9{
10 for (uint32_t i = 1; i < N + 1; i++) {
11 // get edge line and load it in render
12 const auto& p1 = polygon.points[i % N];
13 const auto& p2 = polygon.points[(i + 1) % N];
14 const auto& prev = polygon.points[i - 1];
15 const auto& next = polygon.points[(i + 2) % N];
16 computeConnectedLineMesh (
17 p1, p2,
18 prev, next,
19 thickness, color
20 );
21 }
22}
23
24/////////////////////////////////////////////////
25template <size_t N>
26void PrimitiveShapeRender::loadFilled (
27 const Polygon<N>& polygon,
28 const sf::Color& color)
29{
30 // triangulate by taking first point as slice center
31 const auto& sliceCenter = polygon.points[0];
32 for (uint32_t i = 1; i < (N - 1); i++) {
33 const auto& p1 = polygon.points[i];
34 const auto& p2 = polygon.points[i + 1];
35 computeTriangleVertices (p1, p2, sliceCenter, color);
36 }
37}
38
39} // namespace sgui