| 185 | |
| 186 | template<typename T> |
| 187 | void DrawModel(T& render, Model& m, const olc::Pixel col = olc::BLACK, const uint8_t flags = -1) |
| 188 | { |
| 189 | const auto& points = m.GetWorldPoints(); |
| 190 | for(size_t i = 0; i < points.size(); i++) |
| 191 | render.DrawLine(points[i], points[(i+1)%points.size()], col); |
| 192 | |
| 193 | // Draw Nodes |
| 194 | if (flags & Model::DRAW_NODES) |
| 195 | for (size_t i = 0; i < points.size(); i++) |
| 196 | render.FillCircle(points[i], render.ScaleToWorld({ 3,3 }).x, olc::RED); |
| 197 | |
| 198 | if (flags & Model::DRAW_ORIGIN) |
| 199 | { |
| 200 | render.FillCircle(m.LocalToWorld({ 0,0 }), render.ScaleToWorld({ 3,3 }).x, olc::BLUE); |
| 201 | render.DrawLine( |
| 202 | m.LocalToWorld({ 0,0 }), |
| 203 | m.LocalToWorld(render.ScaleToWorld({ 10, 0 })), |
| 204 | olc::BLUE); |
| 205 | } |
| 206 | |
| 207 | // Draw Children |
| 208 | for (auto& child : m.GetChildren()) |
| 209 | DrawModel<T>(render, *child, col, flags); |
| 210 | } |
| 211 | |
| 212 | |
| 213 | } |
nothing calls this directly
no test coverage detected