Kaydet (Commit) 719d81a6 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Avoid division by zero

These areas are zero when you start to draw a 3D object with the mouse.

Change-Id: I003ec06b42351b5c4b2b59b9f908fb82ab6e9b35
Reviewed-on: https://gerrit.libreoffice.org/71373
Tested-by: Jenkins
Reviewed-by: 's avatarStephan Bergmann <sbergman@redhat.com>
üst 6d6ed164
...@@ -263,20 +263,23 @@ namespace drawinglayer ...@@ -263,20 +263,23 @@ namespace drawinglayer
// only needed for dragging), reduce resolution extra // only needed for dragging), reduce resolution extra
// to speed up dragging interactions // to speed up dragging interactions
const double fArea(fViewSizeX * fViewSizeY); const double fArea(fViewSizeX * fViewSizeY);
double fReducedVisualisationFactor(1.0 / (sqrt(fArea) * (1.0 / 170.0))); if (fArea != 0.0)
if(fReducedVisualisationFactor > 1.0)
{
fReducedVisualisationFactor = 1.0;
}
else if(fReducedVisualisationFactor < 0.20)
{ {
fReducedVisualisationFactor = 0.20; double fReducedVisualisationFactor(1.0 / (sqrt(fArea) * (1.0 / 170.0)));
}
if(fReducedVisualisationFactor != 1.0) if(fReducedVisualisationFactor > 1.0)
{ {
fReduceFactor *= fReducedVisualisationFactor; fReducedVisualisationFactor = 1.0;
}
else if(fReducedVisualisationFactor < 0.20)
{
fReducedVisualisationFactor = 0.20;
}
if(fReducedVisualisationFactor != 1.0)
{
fReduceFactor *= fReducedVisualisationFactor;
}
} }
} }
...@@ -292,7 +295,10 @@ namespace drawinglayer ...@@ -292,7 +295,10 @@ namespace drawinglayer
// bring to unit coordinates by applying inverse DiscreteRange // bring to unit coordinates by applying inverse DiscreteRange
aObjToUnit.translate(-aDiscreteRange.getMinX(), -aDiscreteRange.getMinY()); aObjToUnit.translate(-aDiscreteRange.getMinX(), -aDiscreteRange.getMinY());
aObjToUnit.scale(1.0 / aDiscreteRange.getWidth(), 1.0 / aDiscreteRange.getHeight()); if (aDiscreteRange.getWidth() != 0.0 && aDiscreteRange.getHeight() != 0.0)
{
aObjToUnit.scale(1.0 / aDiscreteRange.getWidth(), 1.0 / aDiscreteRange.getHeight());
}
// calculate transformed user coordinate system // calculate transformed user coordinate system
const basegfx::B2DPoint aStandardNull(0.0, 0.0); const basegfx::B2DPoint aStandardNull(0.0, 0.0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment