3#include "MeshGeneratorCommon.h"
10 auto & s = definition.size;
12 std::vector<PositionNormalTexVertex> vertexData = {
13 { glm::vec3(-s.x, -s.y, 0.f), glm::vec3(0.f, 0.f, 1.f), glm::vec2(0.f, 0.f) },
14 { glm::vec3( s.x, -s.y, 0.f), glm::vec3(0.f, 0.f, 1.f), glm::vec2(1.f, 0.f) },
15 { glm::vec3( s.x, s.y, 0.f), glm::vec3(0.f, 0.f, 1.f), glm::vec2(1.f, 1.f) },
17 { glm::vec3(-s.x, -s.y, 0.f), glm::vec3(0.f, 0.f, 1.f), glm::vec2(0.f, 0.f) },
18 { glm::vec3( s.x, s.y, 0.f), glm::vec3(0.f, 0.f, 1.f), glm::vec2(1.f, 1.f) },
19 { glm::vec3(-s.x, s.y, 0.f), glm::vec3(0.f, 0.f, 1.f), glm::vec2(0.f, 1.f) },
22 std::vector<glm::vec3> tangents{
23 glm::vec3(1.f, 0.f, 0.f),
24 glm::vec3(1.f, 0.f, 0.f),
25 glm::vec3(1.f, 0.f, 0.f),
27 glm::vec3(1.f, 0.f, 0.f),
28 glm::vec3(1.f, 0.f, 0.f),
29 glm::vec3(1.f, 0.f, 0.f),
34 mesh->
setBounds(computeBoundingBoxFromVertexFormat(vertexData.begin(), vertexData.end()));
39 auto & s = definition.size;
40 std::vector<glm::vec3> vertices = {
41 glm::vec3(-s.x, -s.y, -s.z),
42 glm::vec3( s.x, -s.y, -s.z),
43 glm::vec3( s.x, s.y, -s.z),
44 glm::vec3(-s.x, s.y, -s.z),
46 glm::vec3(-s.x, -s.y, s.z),
47 glm::vec3( s.x, -s.y, s.z),
48 glm::vec3( s.x, s.y, s.z),
49 glm::vec3(-s.x, s.y, s.z)
52 const uint32_t indices[2*12] = {
72 mesh->
setBounds(Cogs::Geometry::computeBoundingBox(vertices.begin(), vertices.end()));
77 auto & s = definition.size;
79 std::vector<PositionNormalTexVertex> vtx {
80 { glm::vec3( s.x, -s.y, -s.z), glm::vec3( 1.f, 0.f, 0.f), glm::vec2(0.f, 0.f) },
81 { glm::vec3( s.x, s.y, -s.z), glm::vec3( 1.f, 0.f, 0.f), glm::vec2(1.f, 0.f) },
82 { glm::vec3( s.x, s.y, s.z), glm::vec3( 1.f, 0.f, 0.f), glm::vec2(1.f, 1.f) },
83 { glm::vec3( s.x, -s.y, s.z), glm::vec3( 1.f, 0.f, 0.f), glm::vec2(0.f, 1.f) },
85 { glm::vec3(-s.x, -s.y, -s.z), glm::vec3(-1.f, 0.f, 0.f), glm::vec2(0.f, 0.f) },
86 { glm::vec3(-s.x, -s.y, s.z), glm::vec3(-1.f, 0.f, 0.f), glm::vec2(0.f, 1.f) },
87 { glm::vec3(-s.x, s.y, s.z), glm::vec3(-1.f, 0.f, 0.f), glm::vec2(1.f, 1.f) },
88 { glm::vec3(-s.x, s.y, -s.z), glm::vec3(-1.f, 0.f, 0.f), glm::vec2(1.f, 0.f) },
90 { glm::vec3(-s.x, s.y, -s.z), glm::vec3( 0.f, 1.f, 0.f), glm::vec2(0.f, 0.f) },
91 { glm::vec3(-s.x, s.y, s.z), glm::vec3( 0.f, 1.f, 0.f), glm::vec2(0.f, 1.f) },
92 { glm::vec3( s.x, s.y, s.z), glm::vec3( 0.f, 1.f, 0.f), glm::vec2(1.f, 1.f) },
93 { glm::vec3( s.x, s.y, -s.z), glm::vec3( 0.f, 1.f, 0.f), glm::vec2(1.f, 0.f) },
95 { glm::vec3(-s.x, -s.y, -s.z), glm::vec3( 0.f, -1.f, 0.f), glm::vec2(0.f, 0.f) },
96 { glm::vec3( s.x, -s.y, -s.z), glm::vec3( 0.f, -1.f, 0.f), glm::vec2(1.f, 0.f) },
97 { glm::vec3( s.x, -s.y, s.z), glm::vec3( 0.f, -1.f, 0.f), glm::vec2(1.f, 1.f) },
98 { glm::vec3(-s.x, -s.y, s.z), glm::vec3( 0.f, -1.f, 0.f), glm::vec2(0.f, 1.f) },
100 { glm::vec3(-s.x, -s.y, s.z), glm::vec3( 0.f, 0.f, 1.f), glm::vec2(0.f, 0.f) },
101 { glm::vec3( s.x, -s.y, s.z), glm::vec3( 0.f, 0.f, 1.f), glm::vec2(1.f, 0.f) },
102 { glm::vec3( s.x, s.y, s.z), glm::vec3( 0.f, 0.f, 1.f), glm::vec2(1.f, 1.f) },
103 { glm::vec3(-s.x, s.y, s.z), glm::vec3( 0.f, 0.f, 1.f), glm::vec2(0.f, 1.f) },
105 { glm::vec3(-s.x, -s.y, -s.z), glm::vec3( 0.f, 0.f, -1.f), glm::vec2(0.f, 0.f) },
106 { glm::vec3(-s.x, s.y, -s.z), glm::vec3( 0.f, 0.f, -1.f), glm::vec2(0.f, 1.f) },
107 { glm::vec3( s.x, s.y, -s.z), glm::vec3( 0.f, 0.f, -1.f), glm::vec2(1.f, 1.f) },
108 { glm::vec3( s.x, -s.y, -s.z), glm::vec3( 0.f, 0.f, -1.f), glm::vec2(1.f, 0.f) }
111 std::vector<glm::vec3> tangents{
112 glm::vec3(0.f, 1.f, 0.f),
113 glm::vec3(0.f, 1.f, 0.f),
114 glm::vec3(0.f, 1.f, 0.f),
115 glm::vec3(0.f, 1.f, 0.f),
117 glm::vec3(0.f, -1.f, 0.f),
118 glm::vec3(0.f, -1.f, 0.f),
119 glm::vec3(0.f, -1.f, 0.f),
120 glm::vec3(0.f, -1.f, 0.f),
122 glm::vec3(-1.f, 0.f, 0.f),
123 glm::vec3(-1.f, 0.f, 0.f),
124 glm::vec3(-1.f, 0.f, 0.f),
125 glm::vec3(-1.f, 0.f, 0.f),
127 glm::vec3(1.f, 0.f, 0.f),
128 glm::vec3(1.f, 0.f, 0.f),
129 glm::vec3(1.f, 0.f, 0.f),
130 glm::vec3(1.f, 0.f, 0.f),
132 glm::vec3(1.f, 0.f, 0.f),
133 glm::vec3(1.f, 0.f, 0.f),
134 glm::vec3(1.f, 0.f, 0.f),
135 glm::vec3(1.f, 0.f, 0.f),
137 glm::vec3(-1.f, 0.f, 0.f),
138 glm::vec3(-1.f, 0.f, 0.f),
139 glm::vec3(-1.f, 0.f, 0.f),
140 glm::vec3(-1.f, 0.f, 0.f),
143 static const std::vector<uint32_t> ix{
166 mesh->
setBounds(computeBoundingBoxFromVertexFormat(vtx.begin(), vtx.end()));
Meshes contain streams of vertex data in addition to index data and options defining geometry used fo...
void setTangents(std::span< const glm::vec3 > tangents)
Set the tangent data of the Mesh.
void setIndexData(const uint32_t *data, size_t count)
Convenience method for setting index data from a raw pointer to data and count number of elements.
void setBounds(Geometry::BoundingBox box)
Set custom bounds for the mesh.
void setVertexData(Element *elements, size_t count)
Set vertex data.
void setPositions(std::span< const glm::vec3 > positions)
Set the position data of the Mesh.
Defines creation values for a unique shape.