Improve code style in ray.h

- 2 spaces instead of 4, for indentation
- Newline after return
- Check if pointer is null
This commit is contained in:
Uwila
2020-04-03 12:56:50 +02:00
parent eb332acd7e
commit 99076be6bb

View File

@@ -30,37 +30,46 @@
CGLM_INLINE
bool
glm_ray_triangle(vec3 origin, vec3 direction, vec3 v0, vec3 v1, vec3 v2, float *d) {
const float epsilon = 0.000001;
vec3 edge1, edge2, p, t, q;
float det, inv_det, u, v;
vec3 edge1, edge2, p, t, q;
float det, inv_det, u, v, dist;
const float epsilon = 0.000001;
glm_vec3_sub(v1, v0, edge1);
glm_vec3_sub(v2, v0, edge2);
glm_vec3_sub(v1, v0, edge1);
glm_vec3_sub(v2, v0, edge2);
glm_vec3_cross(direction, edge2, p);
glm_vec3_cross(direction, edge2, p);
det = glm_vec3_dot(edge1, p);
det = glm_vec3_dot(edge1, p);
if (det > -epsilon && det < epsilon)
return 0;
inv_det = 1.0 / det;
if (det > -epsilon && det < epsilon)
return 0;
glm_vec3_sub(origin, v0, t);
inv_det = 1.0 / det;
u = inv_det * glm_vec3_dot(t, p);
glm_vec3_sub(origin, v0, t);
if (u < 0.0 || u > 1.0)
return 0;
u = inv_det * glm_vec3_dot(t, p);
glm_vec3_cross(t, edge1, q);
if (u < 0.0 || u > 1.0)
return 0;
v = inv_det * glm_vec3_dot(direction, q);
glm_vec3_cross(t, edge1, q);
if (v < 0.0 || u + v > 1.0)
return 0;
v = inv_det * glm_vec3_dot(direction, q);
*d = inv_det * glm_vec3_dot(edge2, q);
return *d > epsilon;
if (v < 0.0 || u + v > 1.0)
return 0;
dist = inv_det * glm_vec3_dot(edge2, q);
if (dist > epsilon) {
if (d != NULL) {
*d = dist;
}
return 1;
}
return 0;
}
#endif