mirror of
https://github.com/recp/cglm.git
synced 2025-10-04 09:08:53 +00:00
Improve ray.h style
This commit is contained in:
@@ -42,7 +42,7 @@ glm_ray_triangle(vec3 origin,
|
|||||||
float *d) {
|
float *d) {
|
||||||
vec3 edge1, edge2, p, t, q;
|
vec3 edge1, edge2, p, t, q;
|
||||||
float det, inv_det, u, v, dist;
|
float det, inv_det, u, v, dist;
|
||||||
const float epsilon = 0.000001;
|
const float epsilon = 0.000001f;
|
||||||
|
|
||||||
glm_vec3_sub(v1, v0, edge1);
|
glm_vec3_sub(v1, v0, edge1);
|
||||||
glm_vec3_sub(v2, v0, edge2);
|
glm_vec3_sub(v2, v0, edge2);
|
||||||
@@ -54,32 +54,28 @@ glm_ray_triangle(vec3 origin,
|
|||||||
if (det > -epsilon && det < epsilon)
|
if (det > -epsilon && det < epsilon)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
inv_det = 1.0 / det;
|
inv_det = 1.0f / det;
|
||||||
|
|
||||||
glm_vec3_sub(origin, v0, t);
|
glm_vec3_sub(origin, v0, t);
|
||||||
|
|
||||||
u = inv_det * glm_vec3_dot(t, p);
|
u = inv_det * glm_vec3_dot(t, p);
|
||||||
|
|
||||||
if (u < 0.0 || u > 1.0)
|
if (u < 0.0f || u > 1.0f)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
glm_vec3_cross(t, edge1, q);
|
glm_vec3_cross(t, edge1, q);
|
||||||
|
|
||||||
v = inv_det * glm_vec3_dot(direction, q);
|
v = inv_det * glm_vec3_dot(direction, q);
|
||||||
|
|
||||||
if (v < 0.0 || u + v > 1.0)
|
if (v < 0.0f || u + v > 1.0f)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
dist = inv_det * glm_vec3_dot(edge2, q);
|
dist = inv_det * glm_vec3_dot(edge2, q);
|
||||||
if (dist > epsilon) {
|
|
||||||
if (d != NULL) {
|
if (d)
|
||||||
*d = dist;
|
*d = dist;
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
return dist > epsilon;
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user