1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0026082: When view is resized horizontally the visualization is not scaled

This commit is contained in:
apl
2015-05-19 14:19:10 +03:00
committed by bugmaster
parent 7e59624d86
commit ab1c121bb9
3 changed files with 134 additions and 61 deletions

View File

@@ -694,18 +694,28 @@ Graphic3d_Camera::TransformMatrices<Elem_t>&
Elem_t aZNear = static_cast<Elem_t> (myZNear);
Elem_t aZFar = static_cast<Elem_t> (myZFar);
Elem_t anAspect = static_cast<Elem_t> (myAspect);
Elem_t aDYHalf = 0.0;
Elem_t aDXHalf = 0.0, aDYHalf = 0.0;
if (IsOrthographic())
{
aDXHalf = aScale * Elem_t (0.5);
aDYHalf = aScale * Elem_t (0.5);
}
else
{
aDXHalf = aZNear * Elem_t (Tan (DTR_HALF * myFOVy));
aDYHalf = aZNear * Elem_t (Tan (DTR_HALF * myFOVy));
}
if (anAspect > 1.0)
{
aDXHalf *= anAspect;
}
else
{
aDYHalf /= anAspect;
}
// sets right of frustum based on aspect ratio
Elem_t aDXHalf = anAspect * aDYHalf;
Elem_t aLeft = -aDXHalf;
Elem_t aRight = aDXHalf;
Elem_t aBot = -aDYHalf;