From a9ad715e4bf86e2170024488f5c99c3b7f7f3abf Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Tue, 19 Apr 2011 16:51:25 -0400 Subject: [PATCH] finish readFaces() --- WFObj.cc | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/WFObj.cc b/WFObj.cc index 0dfe42b..184fcdd 100644 --- a/WFObj.cc +++ b/WFObj.cc @@ -265,9 +265,25 @@ vector WFObj::readFaces(const std::vector & parts) { vector faces; VertexRef refs[4]; - for (int i = 1, len = parts.size(); i < len && i <= 4; i++) + int parts_len = parts.size(); + if (parts_len < 3 || parts_len > 4) { + cerr << "WFObj: error: faces can only have 3 or 4 vertices!" << endl; + return faces; + } + for (int i = 1; i <= parts_len; i++) refs[i - 1] = readVertexRef(parts[i]); + Face f; + f.vertices[0] = refs[0]; + f.vertices[1] = refs[1]; + f.vertices[2] = refs[2]; + faces.push_back(f); + if (parts_len == 4) + { + f.vertices[0] = refs[2]; + f.vertices[1] = refs[3]; + f.vertices[2] = refs[0]; + faces.push_back(f); } return faces; }