diff --git a/1-base/math/source/generic/pure/algebra/any_math-any_algebra-any_linear-any_d3.adb b/1-base/math/source/generic/pure/algebra/any_math-any_algebra-any_linear-any_d3.adb index 9439344..5fe9b89 100644 --- a/1-base/math/source/generic/pure/algebra/any_math-any_algebra-any_linear-any_d3.adb +++ b/1-base/math/source/generic/pure/algebra/any_math-any_algebra-any_linear-any_d3.adb @@ -880,13 +880,14 @@ is if world_Position (4) = 0.0 then - raise Constraint_Error with "unProject: world_Position (4) = 0.0"; - else - world_Position (1) := world_Position (1) / world_Position (4); - world_Position (2) := world_Position (2) / world_Position (4); - world_Position (3) := world_Position (3) / world_Position (4); + world_Position (4) := Real'Epsilon; + -- raise Constraint_Error with "unProject: world_Position (4) = 0.0"; -- TODO: Find out why this happens. end if; + world_Position (1) := world_Position (1) / world_Position (4); + world_Position (2) := world_Position (2) / world_Position (4); + world_Position (3) := world_Position (3) / world_Position (4); + return Vector_3 (world_Position (1 .. 3)); end unProject;