10 inline bool projectToPlane(glm::vec3 rayOrigin, glm::vec3 rayDir, glm::vec3 planeOrigin, glm::vec3 planeDir, glm::vec3 & coordinates,
float * pT =
nullptr)
12 rayDir = glm::normalize(rayDir);
13 planeDir = glm::normalize(planeDir);
15 float planeRayDot = glm::dot(rayDir, planeDir);
17 if (glm::abs(planeRayDot) < std::numeric_limits<float>::epsilon()) {
21 float distance = glm::dot(-planeDir, planeOrigin);
23 float t = -(glm::dot(rayOrigin, planeDir) + distance) / planeRayDot;
27 coordinates = rayOrigin + rayDir * t;
@ Geometry
Store entity vector fields (vector<vec3>, vector<vec2>, vector<int>, vector<float>).
Contains all Cogs related functionality.