summaryrefslogtreecommitdiff
path: root/tools/source/generic/poly2.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'tools/source/generic/poly2.cxx')
-rw-r--r--tools/source/generic/poly2.cxx74
1 files changed, 37 insertions, 37 deletions
diff --git a/tools/source/generic/poly2.cxx b/tools/source/generic/poly2.cxx
index d37ba809f2fb..5591ea4e6d83 100644
--- a/tools/source/generic/poly2.cxx
+++ b/tools/source/generic/poly2.cxx
@@ -100,55 +100,55 @@ void PolyPolygon::Clear()
void PolyPolygon::Optimize( PolyOptimizeFlags nOptimizeFlags )
{
- if(bool(nOptimizeFlags) && Count())
- {
- // #115630# ImplDrawHatch does not work with beziers included in the polypolygon, take care of that
- bool bIsCurve(false);
+ if(!(bool(nOptimizeFlags) && Count()))
+ return;
+
+ // #115630# ImplDrawHatch does not work with beziers included in the polypolygon, take care of that
+ bool bIsCurve(false);
- for(sal_uInt16 a(0); !bIsCurve && a < Count(); a++)
+ for(sal_uInt16 a(0); !bIsCurve && a < Count(); a++)
+ {
+ if((*this)[a].HasFlags())
{
- if((*this)[a].HasFlags())
- {
- bIsCurve = true;
- }
+ bIsCurve = true;
}
+ }
+
+ if(bIsCurve)
+ {
+ OSL_ENSURE(false, "Optimize does *not* support curves, falling back to AdaptiveSubdivide()...");
+ tools::PolyPolygon aPolyPoly;
- if(bIsCurve)
+ AdaptiveSubdivide(aPolyPoly);
+ aPolyPoly.Optimize(nOptimizeFlags);
+ *this = aPolyPoly;
+ }
+ else
+ {
+ double fArea;
+ const bool bEdges = ( nOptimizeFlags & PolyOptimizeFlags::EDGES ) == PolyOptimizeFlags::EDGES;
+ sal_uInt16 nPercent = 0;
+
+ if( bEdges )
{
- OSL_ENSURE(false, "Optimize does *not* support curves, falling back to AdaptiveSubdivide()...");
- tools::PolyPolygon aPolyPoly;
+ const tools::Rectangle aBound( GetBoundRect() );
- AdaptiveSubdivide(aPolyPoly);
- aPolyPoly.Optimize(nOptimizeFlags);
- *this = aPolyPoly;
+ fArea = ( aBound.GetWidth() + aBound.GetHeight() ) * 0.5;
+ nPercent = 50;
+ nOptimizeFlags &= ~PolyOptimizeFlags::EDGES;
}
- else
- {
- double fArea;
- const bool bEdges = ( nOptimizeFlags & PolyOptimizeFlags::EDGES ) == PolyOptimizeFlags::EDGES;
- sal_uInt16 nPercent = 0;
+ // Optimize polygons
+ for( sal_uInt16 i = 0, nPolyCount = mpImplPolyPolygon->mvPolyAry.size(); i < nPolyCount; i++ )
+ {
if( bEdges )
{
- const tools::Rectangle aBound( GetBoundRect() );
-
- fArea = ( aBound.GetWidth() + aBound.GetHeight() ) * 0.5;
- nPercent = 50;
- nOptimizeFlags &= ~PolyOptimizeFlags::EDGES;
+ mpImplPolyPolygon->mvPolyAry[ i ].Optimize( PolyOptimizeFlags::NO_SAME );
+ tools::Polygon::ImplReduceEdges( mpImplPolyPolygon->mvPolyAry[ i ], fArea, nPercent );
}
- // Optimize polygons
- for( sal_uInt16 i = 0, nPolyCount = mpImplPolyPolygon->mvPolyAry.size(); i < nPolyCount; i++ )
- {
- if( bEdges )
- {
- mpImplPolyPolygon->mvPolyAry[ i ].Optimize( PolyOptimizeFlags::NO_SAME );
- tools::Polygon::ImplReduceEdges( mpImplPolyPolygon->mvPolyAry[ i ], fArea, nPercent );
- }
-
- if( bool(nOptimizeFlags) )
- mpImplPolyPolygon->mvPolyAry[ i ].Optimize( nOptimizeFlags );
- }
+ if( bool(nOptimizeFlags) )
+ mpImplPolyPolygon->mvPolyAry[ i ].Optimize( nOptimizeFlags );
}
}
}