X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FGraphic%2FDecal.cpp;h=686877aa3a11611268fc126c03546294a7fe2279;hb=0aab437dc560d2afa982e61cc2547756ad7b0761;hp=335a4bc9471d2a6e74de93f39d0da3af9fbebefe;hpb=e468592233fbcc6ab8d7892cc0d7afa05dbbee39;p=lugaru.git diff --git a/Source/Graphic/Decal.cpp b/Source/Graphic/Decal.cpp index 335a4bc..686877a 100644 --- a/Source/Graphic/Decal.cpp +++ b/Source/Graphic/Decal.cpp @@ -1,6 +1,6 @@ /* Copyright (C) 2003, 2010 - Wolfire Games -Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file) +Copyright (C) 2010-2017 - Lugaru contributors (see AUTHORS file) This file is part of Lugaru. @@ -23,23 +23,23 @@ along with Lugaru. If not, see . #include "Environment/Terrain.hpp" #include "Graphic/Models.hpp" -Decal::Decal() : - position(), - type(shadowdecal), - opacity(0), - rotation(0), - alivetime(0), - brightness(0) +Decal::Decal() + : position() + , type(shadowdecal) + , opacity(0) + , rotation(0) + , alivetime(0) + , brightness(0) { } -Decal::Decal(XYZ _position, decal_type _type, float _opacity, float _rotation, float _brightness, int whichx, int whichy, float size, const Terrain& terrain, bool first) : - position(_position), - type(_type), - opacity(_opacity), - rotation(_rotation), - alivetime(0), - brightness(_brightness) +Decal::Decal(XYZ _position, decal_type _type, float _opacity, float _rotation, float _brightness, int whichx, int whichy, float size, const Terrain& terrain, bool first) + : position(_position) + , type(_type) + , opacity(_opacity) + , rotation(_rotation) + , alivetime(0) + , brightness(_brightness) { float placex, placez; placex = (float)whichx * terrain.scale + terrain.scale; @@ -71,7 +71,6 @@ Decal::Decal(XYZ _position, decal_type _type, float _opacity, float _rotation, f vertex[1].y = terrain.heightmap[whichx][whichy] * terrain.scale + .01; } - placex = (float)whichx * terrain.scale; placez = (float)whichy * terrain.scale + terrain.scale; @@ -95,110 +94,104 @@ Decal::Decal(XYZ _position, decal_type _type, float _opacity, float _rotation, f } } -Decal::Decal(XYZ _position, decal_type _type, float _opacity, float _rotation, float size, const Model& model, int i, int which) : - position(_position), - type(_type), - opacity(_opacity), - rotation(_rotation), - alivetime(0), - brightness(0) +Decal::Decal(XYZ _position, decal_type _type, float _opacity, float _rotation, float size, const Model& model, int i, int which) + : position(_position) + , type(_type) + , opacity(_opacity) + , rotation(_rotation) + , alivetime(0) + , brightness(0) { float placex, placez; if (which == 0) { - placex = model.vertex[model.Triangles[i].vertex[0]].x; - placez = model.vertex[model.Triangles[i].vertex[0]].z; + placex = model.getTriangleVertex(i, 0).x; + placez = model.getTriangleVertex(i, 0).z; texcoords[0][0] = (placex - position.x) / (size) / 2 + .5; texcoords[0][1] = (placez - position.z) / (size) / 2 + .5; vertex[0].x = placex; vertex[0].z = placez; - vertex[0].y = model.vertex[model.Triangles[i].vertex[0]].y; - + vertex[0].y = model.getTriangleVertex(i, 0).y; - placex = model.vertex[model.Triangles[i].vertex[1]].x; - placez = model.vertex[model.Triangles[i].vertex[1]].z; + placex = model.getTriangleVertex(i, 1).x; + placez = model.getTriangleVertex(i, 1).z; texcoords[1][0] = (placex - position.x) / (size) / 2 + .5; texcoords[1][1] = (placez - position.z) / (size) / 2 + .5; vertex[1].x = placex; vertex[1].z = placez; - vertex[1].y = model.vertex[model.Triangles[i].vertex[1]].y; + vertex[1].y = model.getTriangleVertex(i, 1).y; - - placex = model.vertex[model.Triangles[i].vertex[2]].x; - placez = model.vertex[model.Triangles[i].vertex[2]].z; + placex = model.getTriangleVertex(i, 2).x; + placez = model.getTriangleVertex(i, 2).z; texcoords[2][0] = (placex - position.x) / (size) / 2 + .5; texcoords[2][1] = (placez - position.z) / (size) / 2 + .5; vertex[2].x = placex; vertex[2].z = placez; - vertex[2].y = model.vertex[model.Triangles[i].vertex[2]].y; + vertex[2].y = model.getTriangleVertex(i, 2).y; } else if (which == 1) { - placex = model.vertex[model.Triangles[i].vertex[0]].y; - placez = model.vertex[model.Triangles[i].vertex[0]].z; + placex = model.getTriangleVertex(i, 0).y; + placez = model.getTriangleVertex(i, 0).z; texcoords[0][0] = (placex - position.y) / (size) / 2 + .5; texcoords[0][1] = (placez - position.z) / (size) / 2 + .5; - vertex[0].x = model.vertex[model.Triangles[i].vertex[0]].x; + vertex[0].x = model.getTriangleVertex(i, 0).x; vertex[0].z = placez; vertex[0].y = placex; - - placex = model.vertex[model.Triangles[i].vertex[1]].y; - placez = model.vertex[model.Triangles[i].vertex[1]].z; + placex = model.getTriangleVertex(i, 1).y; + placez = model.getTriangleVertex(i, 1).z; texcoords[1][0] = (placex - position.y) / (size) / 2 + .5; texcoords[1][1] = (placez - position.z) / (size) / 2 + .5; - vertex[1].x = model.vertex[model.Triangles[i].vertex[1]].x; + vertex[1].x = model.getTriangleVertex(i, 1).x; vertex[1].z = placez; vertex[1].y = placex; - - placex = model.vertex[model.Triangles[i].vertex[2]].y; - placez = model.vertex[model.Triangles[i].vertex[2]].z; + placex = model.getTriangleVertex(i, 2).y; + placez = model.getTriangleVertex(i, 2).z; texcoords[2][0] = (placex - position.y) / (size) / 2 + .5; texcoords[2][1] = (placez - position.z) / (size) / 2 + .5; - vertex[2].x = model.vertex[model.Triangles[i].vertex[2]].x; + vertex[2].x = model.getTriangleVertex(i, 2).x; vertex[2].z = placez; vertex[2].y = placex; } else { - placex = model.vertex[model.Triangles[i].vertex[0]].x; - placez = model.vertex[model.Triangles[i].vertex[0]].y; + placex = model.getTriangleVertex(i, 0).x; + placez = model.getTriangleVertex(i, 0).y; texcoords[0][0] = (placex - position.x) / (size) / 2 + .5; texcoords[0][1] = (placez - position.y) / (size) / 2 + .5; vertex[0].x = placex; - vertex[0].z = model.vertex[model.Triangles[i].vertex[0]].z; + vertex[0].z = model.getTriangleVertex(i, 0).z; vertex[0].y = placez; - - placex = model.vertex[model.Triangles[i].vertex[1]].x; - placez = model.vertex[model.Triangles[i].vertex[1]].y; + placex = model.getTriangleVertex(i, 1).x; + placez = model.getTriangleVertex(i, 1).y; texcoords[1][0] = (placex - position.x) / (size) / 2 + .5; texcoords[1][1] = (placez - position.y) / (size) / 2 + .5; vertex[1].x = placex; - vertex[1].z = model.vertex[model.Triangles[i].vertex[1]].z; + vertex[1].z = model.getTriangleVertex(i, 1).z; vertex[1].y = placez; - - placex = model.vertex[model.Triangles[i].vertex[2]].x; - placez = model.vertex[model.Triangles[i].vertex[2]].y; + placex = model.getTriangleVertex(i, 2).x; + placez = model.getTriangleVertex(i, 2).y; texcoords[2][0] = (placex - position.x) / (size) / 2 + .5; texcoords[2][1] = (placez - position.y) / (size) / 2 + .5; vertex[2].x = placex; - vertex[2].z = model.vertex[model.Triangles[i].vertex[2]].z; + vertex[2].z = model.getTriangleVertex(i, 2).z; vertex[2].y = placez; } }