math.algebra.linear.d3: Handle case in 'unProject' where 'world_Position (4) = 0.0'.

This commit is contained in:
Rod Kay
2024-01-09 16:56:47 +11:00
parent d86438fe5b
commit ee2108ad2b

View File

@@ -880,12 +880,13 @@ is
if world_Position (4) = 0.0 if world_Position (4) = 0.0
then then
raise Constraint_Error with "unProject: world_Position (4) = 0.0"; world_Position (4) := Real'Epsilon;
else -- 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 (1) := world_Position (1) / world_Position (4);
world_Position (2) := world_Position (2) / world_Position (4); world_Position (2) := world_Position (2) / world_Position (4);
world_Position (3) := world_Position (3) / world_Position (4); world_Position (3) := world_Position (3) / world_Position (4);
end if;
return Vector_3 (world_Position (1 .. 3)); return Vector_3 (world_Position (1 .. 3));
end unProject; end unProject;