3#include "Foundation/Geometry/IndicesGenerator.h"
6 void circularArcFactory(Mesh* m,
const ShapeDefinition& definition) {
10 if (definition.arcStart == definition.arcEnd) {
12 end = glm::pi<float>() * 2.0f;
15 angle = definition.arcStart;
16 end = definition.arcEnd;
19 end += glm::pi<float>() * 2.0f;
24 assert(definition.refinement > 0);
26 float stepSize = (end - angle) / definition.refinement;
27 std::vector<PositionVertex> vertices;
28 std::vector<uint32_t> indices;
29 size_t refinement =
static_cast<size_t>(definition.refinement);
31 vertices.reserve((refinement + 1) << 1);
33 for ( ; angle <= end; angle += stepSize) {
34 glm::vec3 v(std::cos(angle), std::sin(angle), 0.0f);
36 vertices.push_back({v * definition.size.x});
37 vertices.push_back({v * definition.size.y});
42 m->setVertexData(vertices.data(), vertices.size());
43 m->setIndexData(indices.data(), indices.size());
44 m->setBounds(computeBoundingBoxFromVertexFormat(vertices.begin(), vertices.end()));
COGSFOUNDATION_API void generateQuadIndices(std::vector< uint32_t > &dest, size_t quadCount, uint32_t vertexNumber, bool sharedVertices)
Generate indices for rendering the specified number of quads from four vertices starting from the giv...