finish readFaces()

This commit is contained in:
Josh Holtrop 2011-04-19 16:51:25 -04:00
parent 96737a0386
commit a9ad715e4b

View File

@ -265,9 +265,25 @@ vector<WFObj::Face> WFObj::readFaces(const std::vector<std::string> & parts)
{ {
vector<Face> faces; vector<Face> faces;
VertexRef refs[4]; 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]); 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; return faces;
} }