// Copyright (c) 2022 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #include "CubeMesh.hpp" using namespace Dawn; void CubeMesh::buffer( Mesh &mesh, glm::vec3 pos, glm::vec3 size, int32_t verticeStart, int32_t indiceStart ) { mesh.bufferPositions(verticeStart, std::array{{ pos, glm::vec3(pos.x+size.x, pos.y, pos.z), glm::vec3(pos.x, pos.y+size.y, pos.z), glm::vec3(pos.x+size.x, pos.y+size.y, pos.z), glm::vec3(pos.x, pos.y, pos.z+size.z), glm::vec3(pos.x+size.x, pos.y, pos.z+size.z), glm::vec3(pos.x, pos.y+size.y, pos.z+size.z), pos + size }}); mesh.bufferCoordinates(verticeStart,std::array{{ glm::vec2(0, 0), glm::vec2(1, 0), glm::vec2(0, 1), glm::vec2(1, 1), glm::vec2(0, 0), glm::vec2(1, 0), glm::vec2(0, 1), glm::vec2(1, 1) }}); mesh.bufferIndices(indiceStart, std::array{{ // Back verticeStart, verticeStart + 1, verticeStart + 3, verticeStart, verticeStart + 2, verticeStart + 3, // Right verticeStart + 1, verticeStart + 5, verticeStart + 7, verticeStart + 1, verticeStart + 3, verticeStart + 7, // Left verticeStart + 4, verticeStart, verticeStart + 2, verticeStart + 4, verticeStart + 6, verticeStart + 2, // Front verticeStart + 5, verticeStart + 4, verticeStart + 6, verticeStart + 5, verticeStart + 7, verticeStart + 6, // Top verticeStart + 7, verticeStart + 2, verticeStart + 6, verticeStart + 7, verticeStart + 3, verticeStart + 2, // Bottom verticeStart + 1, verticeStart, verticeStart + 4, verticeStart + 1, verticeStart + 4, verticeStart + 5 }}); }