MCPcopy Create free account
hub / github.com/TheRealMJP/DeferredTexturing / InitBox

Method InitBox

SampleFramework12/v1.00/Graphics/Model.cpp:207–315  ·  view source on GitHub ↗

Initializes the mesh as a box

Source from the content-addressed store, hash-verified

205
206// Initializes the mesh as a box
207void Mesh::InitBox(const Float3& dimensions, const Float3& position,
208 const Quaternion& orientation, uint32 materialIdx,
209 MeshVertex* dstVertices, uint16* dstIndices)
210{
211 uint64 vIdx = 0;
212
213 // Top
214 dstVertices[vIdx++] = MeshVertex(Float3(-1.0f, 1.0f, 1.0f), Float3(0.0f, 1.0f, 0.0f), Float2(0.0f, 0.0f), Float3(1.0f, 0.0f, 0.0f), Float3(0.0f, 0.0f, -1.0f));
215 dstVertices[vIdx++] = MeshVertex(Float3(1.0f, 1.0f, 1.0f), Float3(0.0f, 1.0f, 0.0f), Float2(1.0f, 0.0f), Float3(1.0f, 0.0f, 0.0f), Float3(0.0f, 0.0f, -1.0f));
216 dstVertices[vIdx++] = MeshVertex(Float3(1.0f, 1.0f, -1.0f), Float3(0.0f, 1.0f, 0.0f), Float2(1.0f, 1.0f), Float3(1.0f, 0.0f, 0.0f), Float3(0.0f, 0.0f, -1.0f));
217 dstVertices[vIdx++] = MeshVertex(Float3(-1.0f, 1.0f, -1.0f), Float3(0.0f, 1.0f, 0.0f), Float2(0.0f, 1.0f), Float3(1.0f, 0.0f, 0.0f), Float3(0.0f, 0.0f, -1.0f));
218
219 // Bottom
220 dstVertices[vIdx++] = MeshVertex(Float3(-1.0f, -1.0f, -1.0f), Float3(0.0f, -1.0f, 0.0f), Float2(0.0f, 0.0f), Float3(1.0f, 0.0f, 0.0f), Float3(0.0f, 0.0f, 1.0f));
221 dstVertices[vIdx++] = MeshVertex(Float3(1.0f, -1.0f, -1.0f), Float3(0.0f, -1.0f, 0.0f), Float2(1.0f, 0.0f), Float3(1.0f, 0.0f, 0.0f), Float3(0.0f, 0.0f, 1.0f));
222 dstVertices[vIdx++] = MeshVertex(Float3(1.0f, -1.0f, 1.0f), Float3(0.0f, -1.0f, 0.0f), Float2(1.0f, 1.0f), Float3(1.0f, 0.0f, 0.0f), Float3(0.0f, 0.0f, 1.0f));
223 dstVertices[vIdx++] = MeshVertex(Float3(-1.0f, -1.0f, 1.0f), Float3(0.0f, -1.0f, 0.0f), Float2(0.0f, 1.0f), Float3(1.0f, 0.0f, 0.0f), Float3(0.0f, 0.0f, 1.0f));
224
225 // Front
226 dstVertices[vIdx++] = MeshVertex(Float3(-1.0f, 1.0f, -1.0f), Float3(0.0f, 0.0f, -1.0f), Float2(0.0f, 0.0f), Float3(1.0f, 0.0f, 0.0f), Float3(0.0f, -1.0f, 0.0f));
227 dstVertices[vIdx++] = MeshVertex(Float3(1.0f, 1.0f, -1.0f), Float3(0.0f, 0.0f, -1.0f), Float2(1.0f, 0.0f), Float3(1.0f, 0.0f, 0.0f), Float3(0.0f, -1.0f, 0.0f));
228 dstVertices[vIdx++] = MeshVertex(Float3(1.0f, -1.0f, -1.0f), Float3(0.0f, 0.0f, -1.0f), Float2(1.0f, 1.0f), Float3(1.0f, 0.0f, 0.0f), Float3(0.0f, -1.0f, 0.0f));
229 dstVertices[vIdx++] = MeshVertex(Float3(-1.0f, -1.0f, -1.0f), Float3(0.0f, 0.0f, -1.0f), Float2(0.0f, 1.0f), Float3(1.0f, 0.0f, 0.0f), Float3(0.0f, -1.0f, 0.0f));
230
231 // Back
232 dstVertices[vIdx++] = MeshVertex(Float3(1.0f, 1.0f, 1.0f), Float3(0.0f, 0.0f, 1.0f), Float2(0.0f, 0.0f), Float3(-1.0f, 0.0f, 0.0f), Float3(0.0f, -1.0f, 0.0f));
233 dstVertices[vIdx++] = MeshVertex(Float3(-1.0f, 1.0f, 1.0f), Float3(0.0f, 0.0f, 1.0f), Float2(1.0f, 0.0f), Float3(-1.0f, 0.0f, 0.0f), Float3(0.0f, -1.0f, 0.0f));
234 dstVertices[vIdx++] = MeshVertex(Float3(-1.0f, -1.0f, 1.0f), Float3(0.0f, 0.0f, 1.0f), Float2(1.0f, 1.0f), Float3(-1.0f, 0.0f, 0.0f), Float3(0.0f, -1.0f, 0.0f));
235 dstVertices[vIdx++] = MeshVertex(Float3(1.0f, -1.0f, 1.0f), Float3(0.0f, 0.0f, 1.0f), Float2(0.0f, 1.0f), Float3(-1.0f, 0.0f, 0.0f), Float3(0.0f, -1.0f, 0.0f));
236
237 // Left
238 dstVertices[vIdx++] = MeshVertex(Float3(-1.0f, 1.0f, 1.0f), Float3(-1.0f, 0.0f, 0.0f), Float2(0.0f, 0.0f), Float3(0.0f, 0.0f, -1.0f), Float3(0.0f, -1.0f, 0.0f));
239 dstVertices[vIdx++] = MeshVertex(Float3(-1.0f, 1.0f, -1.0f), Float3(-1.0f, 0.0f, 0.0f), Float2(1.0f, 0.0f), Float3(0.0f, 0.0f, -1.0f), Float3(0.0f, -1.0f, 0.0f));
240 dstVertices[vIdx++] = MeshVertex(Float3(-1.0f, -1.0f, -1.0f), Float3(-1.0f, 0.0f, 0.0f), Float2(1.0f, 1.0f), Float3(0.0f, 0.0f, -1.0f), Float3(0.0f, -1.0f, 0.0f));
241 dstVertices[vIdx++] = MeshVertex(Float3(-1.0f, -1.0f, 1.0f), Float3(-1.0f, 0.0f, 0.0f), Float2(0.0f, 1.0f), Float3(0.0f, 0.0f, -1.0f), Float3(0.0f, -1.0f, 0.0f));
242
243 // Right
244 dstVertices[vIdx++] = MeshVertex(Float3(1.0f, 1.0f, -1.0f), Float3(1.0f, 0.0f, 0.0f), Float2(0.0f, 0.0f), Float3(0.0f, 0.0f, 1.0f), Float3(0.0f, -1.0f, 0.0f));
245 dstVertices[vIdx++] = MeshVertex(Float3(1.0f, 1.0f, 1.0f), Float3(1.0f, 0.0f, 0.0f), Float2(1.0f, 0.0f), Float3(0.0f, 0.0f, 1.0f), Float3(0.0f, -1.0f, 0.0f));
246 dstVertices[vIdx++] = MeshVertex(Float3(1.0f, -1.0f, 1.0f), Float3(1.0f, 0.0f, 0.0f), Float2(1.0f, 1.0f), Float3(0.0f, 0.0f, 1.0f), Float3(0.0f, -1.0f, 0.0f));
247 dstVertices[vIdx++] = MeshVertex(Float3(1.0f, -1.0f, -1.0f), Float3(1.0f, 0.0f, 0.0f), Float2(0.0f, 1.0f), Float3(0.0f, 0.0f, 1.0f), Float3(0.0f, -1.0f, 0.0f));
248
249 for(uint64 i = 0; i < NumBoxVerts; ++i)
250 dstVertices[i].Transform(position, dimensions * 0.5f, orientation);
251
252 uint64 iIdx = 0;
253
254 // Top
255 dstIndices[iIdx++] = 0;
256 dstIndices[iIdx++] = 1;
257 dstIndices[iIdx++] = 2;
258 dstIndices[iIdx++] = 2;
259 dstIndices[iIdx++] = 3;
260 dstIndices[iIdx++] = 0;
261
262 // Bottom
263 dstIndices[iIdx++] = 4 + 0;
264 dstIndices[iIdx++] = 4 + 1;

Callers 2

GenerateBoxSceneMethod · 0.80
GenerateBoxTestSceneMethod · 0.80

Calls 5

MeshVertexClass · 0.85
Float3Class · 0.85
Float2Class · 0.85
TransformMethod · 0.45
InitMethod · 0.45

Tested by

no test coverage detected