summaryrefslogtreecommitdiffstats
path: root/src/Level.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Level.cpp')
-rw-r--r--src/Level.cpp18
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;
}