diff options
Diffstat (limited to 'filter')
-rw-r--r-- | filter/source/graphicfilter/icgm/class4.cxx | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/filter/source/graphicfilter/icgm/class4.cxx b/filter/source/graphicfilter/icgm/class4.cxx index 04b8f7c6fb63..2129a0f96bcb 100644 --- a/filter/source/graphicfilter/icgm/class4.cxx +++ b/filter/source/graphicfilter/icgm/class4.cxx @@ -543,12 +543,18 @@ void CGM::ImplDoClass4() if ( mbFigure ) { - tools::Rectangle aBoundingBox(aCenter.X - aRadius.X, aCenter.Y - aRadius.X); - aBoundingBox.SaturatingSetSize(Size(2 * aRadius.X, 2 * aRadius.X)); - tools::Polygon aPolygon( aBoundingBox, - Point( static_cast<tools::Long>(vector[ 0 ]), static_cast<tools::Long>(vector[ 1 ]) ), - Point( static_cast<tools::Long>(vector[ 2 ]), static_cast<tools::Long>(vector[ 3 ]) ), PolyStyle::Arc ); - mpOutAct->RegPolyLine( aPolygon ); + double fLeft = aCenter.X - aRadius.X; + double fTop = aCenter.Y - aRadius.X; + bUseless = useless(fLeft) || useless(fTop); + if (!bUseless) + { + tools::Rectangle aBoundingBox(fLeft, fTop); + aBoundingBox.SaturatingSetSize(Size(2 * aRadius.X, 2 * aRadius.X)); + tools::Polygon aPolygon( aBoundingBox, + Point( static_cast<tools::Long>(vector[ 0 ]), static_cast<tools::Long>(vector[ 1 ]) ), + Point( static_cast<tools::Long>(vector[ 2 ]), static_cast<tools::Long>(vector[ 3 ]) ), PolyStyle::Arc ); + mpOutAct->RegPolyLine( aPolygon ); + } } else { |