Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2014
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. Error 7 error C2440: '=' : cannot convert from 'glm::detail::tvec3<glm::mediump_float>' to `'float'`
  2.  
  3. struct triangle
  4. {
  5. glm::vec3 vertex0, vertex1, vertex2;
  6.  
  7. triangle(glm::vec3 vert1, glm::vec3 vert2, glm::vec3 vert3)
  8. {
  9. vertex0 = vert1;
  10. vertex1 = vert2;
  11. vertex2 = vert3;
  12. }
  13. };
  14.  
  15. struct triangleDistance
  16. {
  17. float vertex0, vertex1, vertex2;
  18. };
  19.  
  20. int sign(const double inputNumber)
  21. {
  22. if (inputNumber >= 0) return 1;
  23. else return -1;
  24. }
  25.  
  26. bool signIsTheSame(const triangleDistance inputDistance)
  27. {
  28. return (sign(inputDistance.vertex0) == sign(inputDistance.vertex1) &&
  29. sign(inputDistance.vertex1) == sign(inputDistance.vertex2));
  30. }
  31.  
  32. bool noneAreZero(const triangleDistance inputDistance)
  33. {
  34. return (inputDistance.vertex0 == 0 || inputDistance.vertex1 == 0 || inputDistance.vertex2 == 0);
  35. }
  36.  
  37. glm::vec3 computeTriangleNormal(const triangle inputTriangle)
  38. {
  39. glm::vec3 crossTerm1, crossTerm2;
  40. return glm::normalize(glm::cross((inputTriangle.vertex1 - inputTriangle.vertex0),
  41. (inputTriangle.vertex2 - inputTriangle.vertex0)));
  42. }
  43.  
  44. bool checkForCollision(const triangle triangle1, const triangle triangle2)
  45. {
  46. glm::vec3 triangle2Normal = computeTriangleNormal(triangle2);
  47. glm::vec3 triangle2d = -triangle2Normal * triangle2.vertex0;
  48.  
  49. triangleDistance triangle1Distance;
  50.  
  51. triangle1Distance.vertex0 = glm::dot(triangle2Normal, triangle1.vertex0) + triangle2d;
  52. triangle1Distance.vertex1 = glm::dot(triangle2Normal, triangle1.vertex1) + triangle2d;
  53. triangle1Distance.vertex2 = glm::dot(triangle2Normal, triangle1.vertex2) + triangle2d;
  54.  
  55. return (signIsTheSame(triangle1Distance) && noneAreZero(triangle1Distance));
  56.  
  57. return false;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement