mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-16 10:08:36 +03:00
0026357: Visualization - Panning zooms view if aspect ratio > 1
This commit is contained in:
parent
cf4520ebc6
commit
9f87ad8c86
@ -563,8 +563,18 @@ gp_Pnt Graphic3d_Camera::ConvertView2World (const gp_Pnt& thePnt) const
|
|||||||
gp_XYZ Graphic3d_Camera::ViewDimensions() const
|
gp_XYZ Graphic3d_Camera::ViewDimensions() const
|
||||||
{
|
{
|
||||||
// view plane dimensions
|
// view plane dimensions
|
||||||
Standard_Real aSizeY = IsOrthographic() ? myScale : (2.0 * Distance() * Tan (DTR_HALF * myFOVy));
|
Standard_Real aSize = IsOrthographic() ? myScale : (2.0 * Distance() * Tan (DTR_HALF * myFOVy));
|
||||||
Standard_Real aSizeX = myAspect * aSizeY;
|
Standard_Real aSizeX, aSizeY;
|
||||||
|
if (myAspect > 1.0)
|
||||||
|
{
|
||||||
|
aSizeX = aSize * myAspect;
|
||||||
|
aSizeY = aSize;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
aSizeX = aSize;
|
||||||
|
aSizeY = aSize / myAspect;
|
||||||
|
}
|
||||||
|
|
||||||
// and frustum depth
|
// and frustum depth
|
||||||
return gp_XYZ (aSizeX, aSizeY, myZFar - myZNear);
|
return gp_XYZ (aSizeX, aSizeY, myZFar - myZNear);
|
||||||
|
51
tests/bugs/vis/bug26357
Normal file
51
tests/bugs/vis/bug26357
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
puts "============"
|
||||||
|
puts "CR26357"
|
||||||
|
puts "============"
|
||||||
|
puts ""
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
puts "Panning regression after fixing 0026082"
|
||||||
|
#########################################################################
|
||||||
|
|
||||||
|
box b 100 100 100
|
||||||
|
|
||||||
|
vinit View1 w=400 h=400
|
||||||
|
vinit View2 w=200 h=400
|
||||||
|
vinit View3 w=400 h=200
|
||||||
|
vclear
|
||||||
|
vaxo
|
||||||
|
|
||||||
|
vdisplay b
|
||||||
|
|
||||||
|
# Test panning with aspect ratio 1:1
|
||||||
|
vactivate View1
|
||||||
|
vfit
|
||||||
|
vpan 200 0
|
||||||
|
vmoveto 399 200
|
||||||
|
checkcolor 399 200 0 1 1
|
||||||
|
vpan -200 0
|
||||||
|
vmoveto 200 200
|
||||||
|
checkcolor 200 200 0 1 1
|
||||||
|
vdump ${imagedir}/${casename}_1.png
|
||||||
|
|
||||||
|
# Test panning with aspect ratio 1:2
|
||||||
|
vactivate View2
|
||||||
|
vfit
|
||||||
|
vpan 100 0
|
||||||
|
vmoveto 199 100
|
||||||
|
checkcolor 199 100 0 1 1
|
||||||
|
vpan -100 0
|
||||||
|
vmoveto 100 100
|
||||||
|
checkcolor 100 100 0 1 1
|
||||||
|
vdump ${imagedir}/${casename}_2.png
|
||||||
|
|
||||||
|
# Test panning with aspect ratio 2:1
|
||||||
|
vactivate View3
|
||||||
|
vfit
|
||||||
|
vpan 200 0
|
||||||
|
vmoveto 399 100
|
||||||
|
checkcolor 399 100 0 1 1
|
||||||
|
vpan -200 0
|
||||||
|
vmoveto 200 100
|
||||||
|
checkcolor 200 100 0 1 1
|
||||||
|
vdump ${imagedir}/${casename}_3.png
|
Loading…
x
Reference in New Issue
Block a user