math.algebra.linear.d3: Handle case in 'unProject' where 'world_Position (4) = 0.0'.
This commit is contained in:
@@ -880,13 +880,14 @@ 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.
|
||||||
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);
|
|
||||||
end if;
|
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));
|
return Vector_3 (world_Position (1 .. 3));
|
||||||
end unProject;
|
end unProject;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user