Advertisement
Guest User

Untitled

a guest
Jun 30th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. string line;
  2. std::vector<glm::vec3> vert;
  3. std::vector<GLushort> elt;
  4. std::vector<glm::vec3> norm;
  5. while (getline(in, line))
  6. {
  7. if (line.substr(0,2) == "v ")
  8. {
  9. istringstream s(line.substr(2));
  10. glm::vec3 v;
  11. s >> v.x; s >> v.y; s >> v.z;
  12. vert.push_back(v);
  13. }
  14. else if (line.substr(0,2) == "f ")
  15. {
  16. istringstream s(line.substr(2));
  17. GLushort a,b,c;
  18. s >> a; s >> b; s >> c;
  19. a--; b--; c--;
  20. elt.push_back(a); elt.push_back(b); elt.push_back(c);
  21. }
  22. } norm.resize(vert.size(), glm::vec3(0.0, 0.0, 0.0));
  23. const int eltSize = elt.size();
  24. for (int i = 0; i < eltSize; i+=3)
  25. {
  26. GLushort ia = elt[i];
  27. GLushort ib = elt[i+1];
  28. GLushort ic = elt[i+2];
  29. if(ia > eltSize || ib > eltSize || ic > eltSize) break;
  30. glm::vec3 normal = glm::normalize(glm::cross(
  31. glm::vec3(vert[ib]) - glm::vec3(vert[ia]),
  32. glm::vec3(vert[ic]) - glm::vec3(vert[ia])));
  33. norm[ia] = norm[ib] = norm[ic] = normal;
  34. }
  35. 2:08 vertices = vert;
  36. normals = norm;
  37. elements = elt;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement