diff options
Diffstat (limited to 'src/Level.cpp')
-rw-r--r-- | src/Level.cpp | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/Level.cpp b/src/Level.cpp index 9b2aa78..c6ba915 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -172,13 +172,13 @@ TriangleRecord Level::loadWall(xmlNodePtr wallNode) { if(++vertexNum > 2) break; - wall.getTriangle().setVertex(vertexNum, loadVector(node)); + wall.getTriangle().setVertex(vertexNum, loadVector(node), false); } else if(!xmlStrcmp(node->name, (xmlChar*)"normal")) { if(vertexNum < 0) continue; - wall.getTriangle().setNormal(vertexNum, loadVector(node)); + wall.getTriangle().setVertexNormal(vertexNum, loadVector(node)); } else if(!xmlStrcmp(node->name, (xmlChar*)"texcoords")) { if(vertexNum < 0) continue; @@ -197,18 +197,14 @@ TriangleRecord Level::loadWall(xmlNodePtr wallNode) { } } - vmml::vec3f normal = wall.getTriangle().computeNormal(); + wall.getTriangle().updateNormal(); + vmml::vec3f normal = wall.getTriangle().getNormal(); - if(normal.squared_length() > 0) { - normal.normalize(); - - for(int i = 0; i < 3; ++i) { - if(wall.getTriangle().getNormal(i).squared_length() == 0) - wall.getTriangle().setNormal(i, normal); - } + for(int i = 0; i < 3; ++i) { + if(wall.getTriangle().getVertexNormal(i).squared_length() == 0) + wall.getTriangle().setVertexNormal(i, normal); } - return wall; } |