Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const unsigned short numVertices = 6;
- const unsigned short numIndices = 6;
- const unsigned short indexData[] = {
- 0,1,2, 3,4,5,
- };
- for (int i = 0; i < 6; ++i) {
- std::vector<float> vertexData;
- switch (i) {
- case BRICK_FACE::FRONT://Front
- vertexData = {
- VertexPosition[0].x_, VertexPosition[0].y_, VertexPosition[0].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[1].x_, VertexPosition[1].y_, VertexPosition[1].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[2].x_, VertexPosition[2].y_, VertexPosition[2].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[0].x_, VertexPosition[0].y_, VertexPosition[0].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[2].x_, VertexPosition[2].y_, VertexPosition[2].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[3].x_, VertexPosition[3].y_, VertexPosition[3].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- };
- break;
- case BRICK_FACE::RIGHT://Front-Right
- vertexData = {
- VertexPosition[1].x_, VertexPosition[1].y_, VertexPosition[1].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[5].x_, VertexPosition[5].y_, VertexPosition[5].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[6].x_, VertexPosition[6].y_, VertexPosition[6].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[1].x_, VertexPosition[1].y_, VertexPosition[1].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[6].x_, VertexPosition[6].y_, VertexPosition[6].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[2].x_, VertexPosition[2].y_, VertexPosition[2].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- };
- break;
- case BRICK_FACE::BACK://Back
- vertexData = {
- VertexPosition[5].x_, VertexPosition[5].y_, VertexPosition[5].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[4].x_, VertexPosition[4].y_, VertexPosition[4].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[7].x_, VertexPosition[7].y_, VertexPosition[7].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[5].x_, VertexPosition[5].y_, VertexPosition[5].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[7].x_, VertexPosition[7].y_, VertexPosition[7].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[6].x_, VertexPosition[6].y_, VertexPosition[6].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- };
- break;
- case BRICK_FACE::LEFT://Front-Left
- vertexData = {
- VertexPosition[4].x_, VertexPosition[4].y_, VertexPosition[4].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[0].x_, VertexPosition[0].y_, VertexPosition[0].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[3].x_, VertexPosition[3].y_, VertexPosition[3].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[4].x_, VertexPosition[4].y_, VertexPosition[4].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[3].x_, VertexPosition[3].y_, VertexPosition[3].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[7].x_, VertexPosition[7].y_, VertexPosition[7].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- };
- break;
- case BRICK_FACE::TOP://Top
- vertexData = {
- VertexPosition[4].x_, VertexPosition[4].y_, VertexPosition[4].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, size.z_, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[5].x_, VertexPosition[5].y_, VertexPosition[5].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, size.x_, size.z_, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[1].x_, VertexPosition[1].y_, VertexPosition[1].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, size.x_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[4].x_, VertexPosition[4].y_, VertexPosition[4].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, size.z_, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[1].x_, VertexPosition[1].y_, VertexPosition[1].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, size.x_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[0].x_, VertexPosition[0].y_, VertexPosition[0].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- };
- break;
- case BRICK_FACE::BOTTOM://Bottom
- vertexData = {
- VertexPosition[6].x_, VertexPosition[6].y_, VertexPosition[6].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, size.z_, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[7].x_, VertexPosition[7].y_, VertexPosition[7].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, size.x_, size.z_, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[3].x_, VertexPosition[3].y_, VertexPosition[3].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, size.x_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[6].x_, VertexPosition[6].y_, VertexPosition[6].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, size.z_, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[3].x_, VertexPosition[3].y_, VertexPosition[3].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, size.x_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- VertexPosition[2].x_, VertexPosition[2].y_, VertexPosition[2].z_, 0.0f, 0.0f, 0.0f, color.r_, color.g_, color.b_, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
- };
- break;
- }
- for (int iter = 0; iter < numVertices; iter += 3) {
- Vector3& v1 = *(reinterpret_cast<Vector3*>(&vertexData[iter * 15]));
- Vector3& v2 = *(reinterpret_cast<Vector3*>(&vertexData[iter * 15 + 1]));
- Vector3& v3 = *(reinterpret_cast<Vector3*>(&vertexData[iter * 15 + 2]));
- Vector3& n1 = *(reinterpret_cast<Vector3*>(&vertexData[iter * 15 + 3]));
- Vector3& n2 = *(reinterpret_cast<Vector3*>(&vertexData[(iter * 15 + 1) + 3]));
- Vector3& n3 = *(reinterpret_cast<Vector3*>(&vertexData[(iter * 15 + 2) + 3]));
- Vector3 edge1 = v3 - v1;
- Vector3 edge2 = v2 - v1;
- n1 = n2 = n3 = edge1.CrossProduct(edge2).Normalized();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement