return float max for no hit

This commit is contained in:
Jorijn van der Graaf 2026-02-11 03:16:16 +01:00
commit a367a780ba

View file

@ -31,13 +31,12 @@ namespace Crafter {
Vector<T, 3, 0> h = Vector<T, 3, 0>::Cross(rayDir, edge2); Vector<T, 3, 0> h = Vector<T, 3, 0>::Cross(rayDir, edge2);
float determinant = Vector<T, 3, 0>::Dot(edge1, h); float determinant = Vector<T, 3, 0>::Dot(edge1, h);
if(determinant < 0) { if(determinant < 0) {
return -1; return std::numeric_limits<float>::max();
} }
if (determinant > -EPSILON && determinant < EPSILON) { if (determinant > -EPSILON && determinant < EPSILON) {
return -1; return std::numeric_limits<float>::max();
} }
float inverse_determinant = 1.0 / determinant; float inverse_determinant = 1.0 / determinant;
@ -54,7 +53,7 @@ namespace Crafter {
float v = inverse_determinant * Vector<T, 3, 0>::Dot(rayDir, q); float v = inverse_determinant * Vector<T, 3, 0>::Dot(rayDir, q);
if (v < 0.0 || u + v > 1.0) { if (v < 0.0 || u + v > 1.0) {
return -1; return std::numeric_limits<float>::max();
} }
return inverse_determinant * Vector<T, 3, 0>::Dot(edge2, q); return inverse_determinant * Vector<T, 3, 0>::Dot(edge2, q);