Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Error 7 error C2440: '=' : cannot convert from 'glm::detail::tvec3<glm::mediump_float>' to `'float'`
- struct triangle
- {
- glm::vec3 vertex0, vertex1, vertex2;
- triangle(glm::vec3 vert1, glm::vec3 vert2, glm::vec3 vert3)
- {
- vertex0 = vert1;
- vertex1 = vert2;
- vertex2 = vert3;
- }
- };
- struct triangleDistance
- {
- float vertex0, vertex1, vertex2;
- };
- int sign(const double inputNumber)
- {
- if (inputNumber >= 0) return 1;
- else return -1;
- }
- bool signIsTheSame(const triangleDistance inputDistance)
- {
- return (sign(inputDistance.vertex0) == sign(inputDistance.vertex1) &&
- sign(inputDistance.vertex1) == sign(inputDistance.vertex2));
- }
- bool noneAreZero(const triangleDistance inputDistance)
- {
- return (inputDistance.vertex0 == 0 || inputDistance.vertex1 == 0 || inputDistance.vertex2 == 0);
- }
- glm::vec3 computeTriangleNormal(const triangle inputTriangle)
- {
- glm::vec3 crossTerm1, crossTerm2;
- return glm::normalize(glm::cross((inputTriangle.vertex1 - inputTriangle.vertex0),
- (inputTriangle.vertex2 - inputTriangle.vertex0)));
- }
- bool checkForCollision(const triangle triangle1, const triangle triangle2)
- {
- glm::vec3 triangle2Normal = computeTriangleNormal(triangle2);
- glm::vec3 triangle2d = -triangle2Normal * triangle2.vertex0;
- triangleDistance triangle1Distance;
- triangle1Distance.vertex0 = glm::dot(triangle2Normal, triangle1.vertex0) + triangle2d;
- triangle1Distance.vertex1 = glm::dot(triangle2Normal, triangle1.vertex1) + triangle2d;
- triangle1Distance.vertex2 = glm::dot(triangle2Normal, triangle1.vertex2) + triangle2d;
- return (signIsTheSame(triangle1Distance) && noneAreZero(triangle1Distance));
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement