1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
while(std::getline(buffer, line))
{
if(! line.empty())
{
std::istringstream iss(line);
std::string sub;
switch(FindToken(line))
{
case COMMENT:
break;
case VERTEX:
float x, y, z;
std::getline(iss, sub, ' ');
std::getline(iss, sub, ' '); (std::istringstream)sub >> x;
std::getline(iss, sub, ' '); (std::istringstream)sub >> y;
std::getline(iss, sub, ' '); (std::istringstream)sub >> z;
this->points.push_back(gPoint3D(x,y,z));
break;
case VERTEX_NORMAL:
break;
case VERTEX_TEXTURE:
break;
case FACE:
int A, B, C;
std::getline(iss, sub, ' ');
std::getline(iss, sub, ' '); (std::istringstream)sub >> A; A--;
std::getline(iss, sub, ' '); (std::istringstream)sub >> B; B--;
std::getline(iss, sub, ' '); (std::istringstream)sub >> C; C--;
this->triangles.push_back(gTriangle3D(
this->points[A],
this->points[b],
this->points[C]));
break;
case UNKNOWN:
std::cerr << "[LINE " << nLine << "] Unknown: " << line << std::endl;
break;
}
}
nLine++;
}
|
Partager