[Libreoffice-commits] core.git: basegfx/source canvas/source canvas/workben chart2/source cppcanvas/source drawinglayer/source editeng/source filter/source include/basegfx include/cppcanvas include/drawinglayer include/editeng include/filter include/oox include/postwin.h include/prewin.h include/svtools include/svx include/tools include/vcl oox/source reportdesign/source sc/source svtools/source svx/inc svx/source sw/inc sw/source toolkit/source tools/source vcl/generic vcl/source vcl/unx vcl/win vcl/workben xmloff/source

Noel Grandin noel at peralex.com
Tue Sep 30 02:48:34 PDT 2014


 basegfx/source/polygon/b2dlinegeometry.cxx                  |    2 
 basegfx/source/polygon/b2dpolygonclipper.cxx                |    4 
 basegfx/source/polygon/b2dpolygontools.cxx                  |    2 
 basegfx/source/polygon/b2dtrapezoid.cxx                     |    2 
 basegfx/source/tools/unotools.cxx                           |    2 
 canvas/source/cairo/cairo_canvashelper_text.cxx             |    4 
 canvas/source/directx/dx_textlayout_drawhelper.cxx          |    4 
 canvas/source/directx/dx_winstuff.hxx                       |    1 
 canvas/source/vcl/canvashelper.cxx                          |   10 +-
 canvas/source/vcl/canvashelper_texturefill.cxx              |    6 -
 canvas/source/vcl/impltools.cxx                             |    6 -
 canvas/source/vcl/impltools.hxx                             |    4 
 canvas/source/vcl/spritehelper.cxx                          |    4 
 canvas/workben/canvasdemo.cxx                               |    2 
 chart2/source/view/main/ShapeFactory.cxx                    |    2 
 cppcanvas/source/inc/implrenderer.hxx                       |    4 
 cppcanvas/source/mtfrenderer/implrenderer.cxx               |    4 
 drawinglayer/source/primitive2d/metafileprimitive2d.cxx     |    2 
 drawinglayer/source/primitive2d/polygonprimitive2d.cxx      |    2 
 drawinglayer/source/primitive3d/sdrextrudelathetools3d.cxx  |    2 
 drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx  |   22 ++--
 drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx  |    2 
 drawinglayer/source/processor2d/vclpixelprocessor2d.cxx     |    6 -
 drawinglayer/source/processor2d/vclprocessor2d.cxx          |    4 
 editeng/source/editeng/impedit.cxx                          |    6 -
 editeng/source/editeng/impedit.hxx                          |    2 
 editeng/source/misc/txtrange.cxx                            |   12 +-
 filter/source/flash/swfwriter.cxx                           |    6 -
 filter/source/flash/swfwriter.hxx                           |   18 ++--
 filter/source/flash/swfwriter1.cxx                          |   34 +++----
 filter/source/flash/swfwriter2.cxx                          |    2 
 filter/source/graphicfilter/eos2met/eos2met.cxx             |    6 -
 filter/source/graphicfilter/epict/epict.cxx                 |   10 +-
 filter/source/graphicfilter/eps/eps.cxx                     |   42 ++++-----
 filter/source/graphicfilter/icgm/actimpr.cxx                |    2 
 filter/source/graphicfilter/icgm/class4.cxx                 |    2 
 filter/source/graphicfilter/icgm/outact.hxx                 |    6 -
 filter/source/graphicfilter/idxf/dxf2mtf.cxx                |    2 
 filter/source/graphicfilter/ios2met/ios2met.cxx             |   14 +--
 filter/source/msfilter/escherex.cxx                         |   18 ++--
 filter/source/msfilter/msdffimp.cxx                         |    2 
 filter/source/svg/svgfontexport.cxx                         |    4 
 filter/source/svg/svgwriter.cxx                             |   30 +++---
 filter/source/svg/svgwriter.hxx                             |   14 +--
 include/basegfx/polygon/b2dlinegeometry.hxx                 |    2 
 include/basegfx/polygon/b2dpolygonclipper.hxx               |    8 -
 include/basegfx/polygon/b2dpolygoncutandtouch.hxx           |    2 
 include/basegfx/polygon/b2dpolygontools.hxx                 |    2 
 include/basegfx/polygon/b2dpolypolygon.hxx                  |    2 
 include/basegfx/polygon/b2dpolypolygoncutter.hxx            |    2 
 include/basegfx/polygon/b2dpolypolygontools.hxx             |    8 -
 include/basegfx/polygon/b2dtrapezoid.hxx                    |    2 
 include/basegfx/polygon/b3dpolypolygon.hxx                  |    2 
 include/cppcanvas/canvas.hxx                                |    2 
 include/cppcanvas/canvasgraphic.hxx                         |    2 
 include/cppcanvas/polypolygon.hxx                           |    4 
 include/cppcanvas/vclfactory.hxx                            |    2 
 include/drawinglayer/primitive2d/maskprimitive2d.hxx        |    6 -
 include/drawinglayer/primitive2d/patternfillprimitive2d.hxx |    4 
 include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx |   20 ++--
 include/drawinglayer/primitive2d/textprimitive2d.hxx        |    2 
 include/drawinglayer/primitive3d/polypolygonprimitive3d.hxx |    4 
 include/drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx  |    2 
 include/drawinglayer/primitive3d/sdrlatheprimitive3d.hxx    |    2 
 include/drawinglayer/processor2d/canvasprocessor.hxx        |    2 
 include/editeng/editeng.hxx                                 |    2 
 include/editeng/outliner.hxx                                |    2 
 include/editeng/txtrange.hxx                                |   10 +-
 include/filter/msfilter/escherex.hxx                        |    4 
 include/filter/msfilter/msdffimp.hxx                        |    2 
 include/filter/msfilter/svdfppt.hxx                         |    2 
 include/oox/export/drawingml.hxx                            |    2 
 include/postwin.h                                           |    1 
 include/prewin.h                                            |    1 
 include/svtools/grfmgr.hxx                                  |    2 
 include/svx/contdlg.hxx                                     |    6 -
 include/svx/svdobj.hxx                                      |    6 -
 include/svx/svdtrans.hxx                                    |    2 
 include/svx/xpoly.hxx                                       |    2 
 include/tools/poly.hxx                                      |   34 ++++---
 include/vcl/bitmap.hxx                                      |    2 
 include/vcl/canvastools.hxx                                 |    2 
 include/vcl/gdimtf.hxx                                      |    6 -
 include/vcl/graphictools.hxx                                |   24 ++---
 include/vcl/metaact.hxx                                     |   24 ++---
 include/vcl/outdev.hxx                                      |   50 +++++------
 include/vcl/pdfwriter.hxx                                   |   10 +-
 include/vcl/print.hxx                                       |    2 
 include/vcl/region.hxx                                      |   18 ++--
 oox/source/export/drawingml.cxx                             |    2 
 oox/source/export/shapes.cxx                                |    4 
 reportdesign/source/ui/report/EndMarker.cxx                 |    2 
 reportdesign/source/ui/report/StartMarker.cxx               |    2 
 sc/source/ui/dbgui/csvgrid.cxx                              |    2 
 sc/source/ui/view/output.cxx                                |   10 +-
 svtools/source/graphic/grfmgr.cxx                           |   10 +-
 svx/inc/sdr/overlay/overlayhatchrect.hxx                    |    2 
 svx/inc/sdr/overlay/overlayrectangle.hxx                    |    2 
 svx/source/customshapes/EnhancedCustomShapeFontWork.cxx     |   50 +++++------
 svx/source/dialog/_contdlg.cxx                              |   22 ++--
 svx/source/dialog/contimp.hxx                               |    8 -
 svx/source/dialog/contwnd.cxx                               |   14 +--
 svx/source/dialog/contwnd.hxx                               |    6 -
 svx/source/dialog/frmsel.cxx                                |   10 +-
 svx/source/engine3d/extrud3d.cxx                            |    2 
 svx/source/engine3d/polygn3d.cxx                            |    4 
 svx/source/inc/frmselimpl.hxx                               |    6 -
 svx/source/svdraw/svdedtv2.cxx                              |    2 
 svx/source/svdraw/svdobj.cxx                                |    4 
 svx/source/svdraw/svdpoev.cxx                               |    2 
 svx/source/unodraw/unoshap2.cxx                             |   10 +-
 sw/inc/editsh.hxx                                           |    6 -
 sw/inc/ndnotxt.hxx                                          |   14 +--
 sw/source/core/doc/notxtfrm.cxx                             |    2 
 sw/source/core/docnode/ndnotxt.cxx                          |   18 ++--
 sw/source/core/edit/editsh.cxx                              |    4 
 sw/source/core/inc/flyfrm.hxx                               |    4 
 sw/source/core/inc/txtfly.hxx                               |    2 
 sw/source/core/layout/fly.cxx                               |    2 
 sw/source/core/layout/paintfrm.cxx                          |    6 -
 sw/source/core/text/txtfly.cxx                              |    4 
 sw/source/core/unocore/unoframe.cxx                         |    4 
 sw/source/filter/ww8/docxsdrexport.cxx                      |    2 
 sw/source/filter/ww8/rtfattributeoutput.cxx                 |    2 
 sw/source/filter/ww8/writerhelper.cxx                       |    4 
 sw/source/filter/ww8/writerhelper.hxx                       |    6 -
 sw/source/filter/ww8/wrtw8esh.cxx                           |    2 
 sw/source/filter/ww8/ww8graf.cxx                            |    2 
 sw/source/uibase/shells/basesh.cxx                          |    2 
 toolkit/source/awt/vclxgraphics.cxx                         |    2 
 tools/source/generic/poly2.cxx                              |   38 ++++----
 vcl/generic/glyphs/gcach_ftyp.cxx                           |    8 -
 vcl/source/filter/wmf/emfwr.cxx                             |    8 -
 vcl/source/filter/wmf/emfwr.hxx                             |    4 
 vcl/source/filter/wmf/enhwmf.cxx                            |   12 +-
 vcl/source/filter/wmf/winmtf.cxx                            |   42 ++++-----
 vcl/source/filter/wmf/winmtf.hxx                            |   18 ++--
 vcl/source/filter/wmf/winwmf.cxx                            |    4 
 vcl/source/filter/wmf/wmfwr.cxx                             |   10 +-
 vcl/source/filter/wmf/wmfwr.hxx                             |    2 
 vcl/source/gdi/bitmap3.cxx                                  |    2 
 vcl/source/gdi/cvtsvm.cxx                                   |   38 ++++----
 vcl/source/gdi/gdimetafiletools.cxx                         |   16 +--
 vcl/source/gdi/gdimtf.cxx                                   |   10 +-
 vcl/source/gdi/graphictools.cxx                             |   18 ++--
 vcl/source/gdi/impvect.cxx                                  |   10 +-
 vcl/source/gdi/impvect.hxx                                  |    6 -
 vcl/source/gdi/metaact.cxx                                  |   24 ++---
 vcl/source/gdi/pdfwriter.cxx                                |    8 -
 vcl/source/gdi/pdfwriter_impl.cxx                           |   16 +--
 vcl/source/gdi/pdfwriter_impl.hxx                           |   12 +-
 vcl/source/gdi/pdfwriter_impl2.cxx                          |   12 +-
 vcl/source/gdi/print.cxx                                    |    2 
 vcl/source/gdi/print2.cxx                                   |    2 
 vcl/source/gdi/region.cxx                                   |   54 ++++++------
 vcl/source/outdev/font.cxx                                  |    8 -
 vcl/source/outdev/gradient.cxx                              |   18 ++--
 vcl/source/outdev/hatch.cxx                                 |   14 +--
 vcl/source/outdev/map.cxx                                   |   20 ++--
 vcl/source/outdev/polygon.cxx                               |   24 ++---
 vcl/source/outdev/text.cxx                                  |    6 -
 vcl/source/outdev/transparent.cxx                           |   16 +--
 vcl/source/window/split.cxx                                 |    2 
 vcl/source/window/window.cxx                                |    4 
 vcl/unx/generic/gdi/salgdi.cxx                              |    2 
 vcl/win/source/gdi/salgdi.cxx                               |    4 
 vcl/win/source/gdi/salgdi3.cxx                              |    2 
 vcl/win/source/gdi/wntgdi.cxx                               |    2 
 vcl/workben/outdevgrind.cxx                                 |   18 ++--
 xmloff/source/draw/shapeexport.cxx                          |    8 -
 xmloff/source/draw/ximp3dobject.cxx                         |    4 
 171 files changed, 715 insertions(+), 710 deletions(-)

New commits:
commit c9d4a2887c13a5df244022276dd79a5bef8af0ea
Author: Noel Grandin <noel at peralex.com>
Date:   Sun Sep 28 07:51:19 2014 +0200

    fdo#82577: Handle PolyPolygon
    
    Put the TOOLS PolyPolygon class in the tools namespace. Avoids clash with the Windows
    PolyPolygon typedef.
    
    Change-Id: I811ecbb3d55ba4ce66e4555a8586f60fcd57fb66

diff --git a/basegfx/source/polygon/b2dlinegeometry.cxx b/basegfx/source/polygon/b2dlinegeometry.cxx
index 7d99fea..78a722b 100644
--- a/basegfx/source/polygon/b2dlinegeometry.cxx
+++ b/basegfx/source/polygon/b2dlinegeometry.cxx
@@ -47,7 +47,7 @@ namespace basegfx
         {
             B2DPolyPolygon aRetval;
             OSL_ENSURE(rCandidate.count() > 1L, "createAreaGeometryForLineStartEnd: Line polygon has too less points (!)");
-            OSL_ENSURE(rArrow.count() > 0L, "createAreaGeometryForLineStartEnd: Empty arrow PolyPolygon (!)");
+            OSL_ENSURE(rArrow.count() > 0L, "createAreaGeometryForLineStartEnd: Empty arrow tools::PolyPolygon (!)");
             OSL_ENSURE(fWidth > 0.0, "createAreaGeometryForLineStartEnd: Width too small (!)");
             OSL_ENSURE(fDockingPosition >= 0.0 && fDockingPosition <= 1.0,
                 "createAreaGeometryForLineStartEnd: fDockingPosition out of range [0.0 .. 1.0] (!)");
diff --git a/basegfx/source/polygon/b2dpolygonclipper.cxx b/basegfx/source/polygon/b2dpolygonclipper.cxx
index c9f1587..7dc4213 100644
--- a/basegfx/source/polygon/b2dpolygonclipper.cxx
+++ b/basegfx/source/polygon/b2dpolygonclipper.cxx
@@ -474,7 +474,7 @@ namespace basegfx
                                 else
                                 {
                                     // use common aIntersectionRange as result, convert
-                                    // to expected PolyPolygon form
+                                    // to expected tools::PolyPolygon form
                                     return basegfx::B2DPolyPolygon(
                                         basegfx::tools::createPolygonFromRect(aIntersectionRange));
                                 }
@@ -489,7 +489,7 @@ namespace basegfx
                     // Also get rid of some not-needed polygons (neutral, no area -> when
                     // no intersections, these are tubes).
                     // Now it is possible to correct the orientations in the cut-free
-                    // polygons to values corresponding to painting the PolyPolygon with
+                    // polygons to values corresponding to painting the tools::PolyPolygon with
                     // a XOR-WindingRule.
                     aMergePolyPolygonA = solveCrossovers(aMergePolyPolygonA);
                     aMergePolyPolygonA = stripNeutralPolygons(aMergePolyPolygonA);
diff --git a/basegfx/source/polygon/b2dpolygontools.cxx b/basegfx/source/polygon/b2dpolygontools.cxx
index 8b5c954..3c5f80d 100644
--- a/basegfx/source/polygon/b2dpolygontools.cxx
+++ b/basegfx/source/polygon/b2dpolygontools.cxx
@@ -3449,7 +3449,7 @@ namespace basegfx
                 OSL_ENSURE(com::sun::star::drawing::PolygonFlags_CONTROL != ePolygonFlag && bControlA == bControlB,
                     "UnoPolygonBezierCoordsToB2DPolygon: Illegal source polygon (!)");
 
-                // the previous writes used the B2DPolyPoygon -> PolyPolygon converter
+                // the previous writes used the B2DPolyPoygon -> tools::PolyPolygon converter
                 // which did not create minimal PolyPolygons, but created all control points
                 // as null vectors (identical points). Because of the former P(CA)(CB)-norm of
                 // B2DPolygon and it's unused sign of being the zero-vector and CA and CB being
diff --git a/basegfx/source/polygon/b2dtrapezoid.cxx b/basegfx/source/polygon/b2dtrapezoid.cxx
index b49f3c6..3b80c0b 100644
--- a/basegfx/source/polygon/b2dtrapezoid.cxx
+++ b/basegfx/source/polygon/b2dtrapezoid.cxx
@@ -944,7 +944,7 @@ namespace basegfx
 {
     namespace tools
     {
-        // convert Source PolyPolygon to trapezoids
+        // convert Source tools::PolyPolygon to trapezoids
         void trapezoidSubdivide(B2DTrapezoidVector& ro_Result, const B2DPolyPolygon& rSourcePolyPolygon)
         {
             trapezoidhelper::TrapezoidSubdivider aTrapezoidSubdivider(rSourcePolyPolygon);
diff --git a/basegfx/source/tools/unotools.cxx b/basegfx/source/tools/unotools.cxx
index c1c5044..f5b1e273 100644
--- a/basegfx/source/tools/unotools.cxx
+++ b/basegfx/source/tools/unotools.cxx
@@ -110,7 +110,7 @@ namespace unotools
                 if(drawing::PolygonFlags_CONTROL == ePolyFlag || bControlA != bControlB)
                     throw lang::IllegalArgumentException();
 
-                // the previous writes used the B2DPolyPoygon -> PolyPolygon converter
+                // the previous writes used the B2DPolyPoygon -> tools::PolyPolygon converter
                 // which did not create minimal PolyPolygons, but created all control points
                 // as null vectors (identical points). Because of the former P(CA)(CB)-norm of
                 // B2DPolygon and it's unused sign of being the zero-vector and CA and CB being
diff --git a/canvas/source/cairo/cairo_canvashelper_text.cxx b/canvas/source/cairo/cairo_canvashelper_text.cxx
index 41f2f85..e411752 100644
--- a/canvas/source/cairo/cairo_canvashelper_text.cxx
+++ b/canvas/source/cairo/cairo_canvashelper_text.cxx
@@ -147,7 +147,7 @@ namespace cairocanvas
                     ::basegfx::unotools::homMatrixFromAffineMatrix( aMatrix,
                                                                     viewState.AffineTransform ) );
 
-                aClipRegion = vcl::Region::GetRegionFromPolyPolygon( ::PolyPolygon( aClipPoly ) );
+                aClipRegion = vcl::Region::GetRegionFromPolyPolygon( tools::PolyPolygon( aClipPoly ) );
             }
         }
 
@@ -166,7 +166,7 @@ namespace cairocanvas
             if( aClipPoly.count() )
             {
                 // setup non-empty clipping
-                vcl::Region aRegion = vcl::Region::GetRegionFromPolyPolygon( ::PolyPolygon( aClipPoly ) );
+                vcl::Region aRegion = vcl::Region::GetRegionFromPolyPolygon( tools::PolyPolygon( aClipPoly ) );
 
                 if( aClipRegion.IsEmpty() )
                     aClipRegion = aRegion;
diff --git a/canvas/source/directx/dx_textlayout_drawhelper.cxx b/canvas/source/directx/dx_textlayout_drawhelper.cxx
index b565d8c..0a61a84 100644
--- a/canvas/source/directx/dx_textlayout_drawhelper.cxx
+++ b/canvas/source/directx/dx_textlayout_drawhelper.cxx
@@ -171,7 +171,7 @@ namespace dxcanvas
                 }
 
                 aClipPoly.transform(aMatrix);
-                const vcl::Region& rClipRegion = vcl::Region(PolyPolygon(aClipPoly));
+                const vcl::Region& rClipRegion = vcl::Region(tools::PolyPolygon(aClipPoly));
                 aVirtualDevice.IntersectClipRegion(rClipRegion);
             }
 
@@ -179,7 +179,7 @@ namespace dxcanvas
             {
                 ::basegfx::B2DPolyPolygon aClipPoly(dxcanvas::tools::polyPolygonFromXPolyPolygon2D(rRenderState.Clip));
                 aClipPoly.transform(aWorldTransform);
-                const vcl::Region& rClipRegion = vcl::Region(PolyPolygon(aClipPoly));
+                const vcl::Region& rClipRegion = vcl::Region(tools::PolyPolygon(aClipPoly));
                 aVirtualDevice.IntersectClipRegion(rClipRegion);
             }
 
diff --git a/canvas/source/directx/dx_winstuff.hxx b/canvas/source/directx/dx_winstuff.hxx
index 30f616d..86ecacd 100644
--- a/canvas/source/directx/dx_winstuff.hxx
+++ b/canvas/source/directx/dx_winstuff.hxx
@@ -50,7 +50,6 @@
 #define ULONG win32ULONG
 #define GradientStyle_RECT win32GradientStyle_RECT
 #define Polygon win32Polygon
-#define PolyPolygon win32PolyPolygon
 #undef WB_LEFT
 #undef WB_RIGHT
 
diff --git a/canvas/source/vcl/canvashelper.cxx b/canvas/source/vcl/canvashelper.cxx
index 29e4dad..9510d7e 100644
--- a/canvas/source/vcl/canvashelper.cxx
+++ b/canvas/source/vcl/canvashelper.cxx
@@ -294,7 +294,7 @@ namespace vclcanvas
 
             const ::basegfx::B2DPolyPolygon& rPolyPoly(
                 ::basegfx::unotools::b2DPolyPolygonFromXPolyPolygon2D(xPolyPolygon) );
-            const PolyPolygon aPolyPoly( tools::mapPolyPolygon( rPolyPoly, viewState, renderState ) );
+            const ::tools::PolyPolygon aPolyPoly( tools::mapPolyPolygon( rPolyPoly, viewState, renderState ) );
 
             if( rPolyPoly.isClosed() )
             {
@@ -419,7 +419,7 @@ namespace vclcanvas
             // user coordinates.
             aStrokedPolyPoly.transform( aMatrix );
 
-            const PolyPolygon aVCLPolyPoly( aStrokedPolyPoly );
+            const ::tools::PolyPolygon aVCLPolyPoly( aStrokedPolyPoly );
 
             // TODO(F2): When using alpha here, must handle that via
             // temporary surface or somesuch.
@@ -504,7 +504,7 @@ namespace vclcanvas
             ::basegfx::B2DPolyPolygon aB2DPolyPoly(
                 ::basegfx::unotools::b2DPolyPolygonFromXPolyPolygon2D(xPolyPolygon));
             aB2DPolyPoly.setClosed(true); // ensure closed poly, otherwise VCL does not fill
-            const PolyPolygon aPolyPoly( tools::mapPolyPolygon(
+            const ::tools::PolyPolygon aPolyPoly( tools::mapPolyPolygon(
                                              aB2DPolyPoly,
                                              viewState, renderState ) );
             const bool bSourceAlpha( renderState.CompositeOperation == rendering::CompositeOperation::SOURCE );
@@ -1247,7 +1247,7 @@ namespace vclcanvas
                     ::basegfx::unotools::homMatrixFromAffineMatrix( aMatrix,
                                                                     viewState.AffineTransform ) );
 
-                aClipRegion = vcl::Region::GetRegionFromPolyPolygon( ::PolyPolygon( aClipPoly ) );
+                aClipRegion = vcl::Region::GetRegionFromPolyPolygon( ::tools::PolyPolygon( aClipPoly ) );
             }
             else
             {
@@ -1270,7 +1270,7 @@ namespace vclcanvas
             if( aClipPoly.count() )
             {
                 // setup non-empty clipping
-                vcl::Region aRegion = vcl::Region::GetRegionFromPolyPolygon( ::PolyPolygon( aClipPoly ) );
+                vcl::Region aRegion = vcl::Region::GetRegionFromPolyPolygon( ::tools::PolyPolygon( aClipPoly ) );
                 aClipRegion.Intersect( aRegion );
             }
             else
diff --git a/canvas/source/vcl/canvashelper_texturefill.cxx b/canvas/source/vcl/canvashelper_texturefill.cxx
index 1033025..7f6ff63 100644
--- a/canvas/source/vcl/canvashelper_texturefill.cxx
+++ b/canvas/source/vcl/canvashelper_texturefill.cxx
@@ -417,7 +417,7 @@ namespace vclcanvas
                 // here, keep it all the way and only change the vertex values
                 // in the loop below (as ::Polygon is a pimpl class, creating
                 // one every loop turn would really stress the mem allocator)
-                ::PolyPolygon           aTempPolyPoly;
+                ::tools::PolyPolygon    aTempPolyPoly;
                 ::Polygon               aTempPoly2( static_cast<sal_uInt16>(nNumPoints+1) );
 
                 aTempPoly2[0] = rBounds.TopLeft();
@@ -540,7 +540,7 @@ namespace vclcanvas
                            OutputDevice*                                   p2ndOutDev,
                            const ::canvas::ParametricPolyPolygon::Values&  rValues,
                            const std::vector< ::Color >&                   rColors,
-                           const PolyPolygon&                              rPoly,
+                           const ::tools::PolyPolygon&                     rPoly,
                            const rendering::ViewState&                     viewState,
                            const rendering::RenderState&                   renderState,
                            const rendering::Texture&                       texture,
@@ -675,7 +675,7 @@ namespace vclcanvas
             tools::OutDevStateKeeper aStateKeeper( mpProtectedOutDev );
 
             const int nTransparency( setupOutDevState( viewState, renderState, IGNORE_COLOR ) );
-            PolyPolygon aPolyPoly( tools::mapPolyPolygon(
+            ::tools::PolyPolygon aPolyPoly( tools::mapPolyPolygon(
                                        ::basegfx::unotools::b2DPolyPolygonFromXPolyPolygon2D(xPolyPolygon),
                                        viewState, renderState ) );
 
diff --git a/canvas/source/vcl/impltools.cxx b/canvas/source/vcl/impltools.cxx
index 673407b..4167d1f 100644
--- a/canvas/source/vcl/impltools.cxx
+++ b/canvas/source/vcl/impltools.cxx
@@ -150,7 +150,7 @@ namespace vclcanvas
             return true;
         }
 
-        bool isRectangle( const PolyPolygon& rPolyPoly )
+        bool isRectangle( const ::tools::PolyPolygon& rPolyPoly )
         {
             // exclude some cheap cases first
             if( rPolyPoly.Count() != 1 )
@@ -184,7 +184,7 @@ namespace vclcanvas
             return ::vcl::unotools::pointFromB2DPoint( aPoint );
         }
 
-        ::PolyPolygon mapPolyPolygon( const ::basegfx::B2DPolyPolygon&  rPoly,
+        ::tools::PolyPolygon mapPolyPolygon( const ::basegfx::B2DPolyPolygon&  rPoly,
                                       const rendering::ViewState&       rViewState,
                                       const rendering::RenderState&     rRenderState )
         {
@@ -197,7 +197,7 @@ namespace vclcanvas
 
             aTemp.transform( aMatrix );
 
-            return ::PolyPolygon( aTemp );
+            return ::tools::PolyPolygon( aTemp );
         }
 
         ::BitmapEx transformBitmap( const BitmapEx&                 rBitmap,
diff --git a/canvas/source/vcl/impltools.hxx b/canvas/source/vcl/impltools.hxx
index 3b7eac0..0594955 100644
--- a/canvas/source/vcl/impltools.hxx
+++ b/canvas/source/vcl/impltools.hxx
@@ -95,7 +95,7 @@ namespace vclcanvas
 
             @return true, if the polygon is a rectangle.
          */
-        bool isRectangle( const PolyPolygon& rPolyPoly );
+        bool isRectangle( const ::tools::PolyPolygon& rPolyPoly );
 
 
         // Little helper to encapsulate locking into policy class
@@ -167,7 +167,7 @@ namespace vclcanvas
                                 const ::com::sun::star::rendering::ViewState&   rViewState,
                                 const ::com::sun::star::rendering::RenderState& rRenderState );
 
-        ::PolyPolygon mapPolyPolygon( const ::basegfx::B2DPolyPolygon&                          rPoly,
+        ::tools::PolyPolygon mapPolyPolygon( const ::basegfx::B2DPolyPolygon&                          rPoly,
                                       const ::com::sun::star::rendering::ViewState&     rViewState,
                                       const ::com::sun::star::rendering::RenderState&   rRenderState );
 
diff --git a/canvas/source/vcl/spritehelper.cxx b/canvas/source/vcl/spritehelper.cxx
index ebbd814..523e4aa 100644
--- a/canvas/source/vcl/spritehelper.cxx
+++ b/canvas/source/vcl/spritehelper.cxx
@@ -259,7 +259,7 @@ namespace vclcanvas
                             rTargetSurface.SetLineColor( Color( 0,255,0 ) );
                             rTargetSurface.SetFillColor();
 
-                            rTargetSurface.DrawPolyPolygon(PolyPolygon(aClipPoly)); // #i76339#
+                            rTargetSurface.DrawPolyPolygon(::tools::PolyPolygon(aClipPoly)); // #i76339#
                         }
 
                         vcl::Region aClipRegion( aClipPoly );
@@ -302,7 +302,7 @@ namespace vclcanvas
 
                 if( mbShowSpriteBounds )
                 {
-                    ::PolyPolygon aMarkerPoly(
+                    ::tools::PolyPolygon aMarkerPoly(
                         ::canvas::tools::getBoundMarksPolyPolygon(
                             ::basegfx::B2DRectangle(aOutPos.X(),
                                                     aOutPos.Y(),
diff --git a/canvas/workben/canvasdemo.cxx b/canvas/workben/canvasdemo.cxx
index ac8869a..b8ca6b4 100644
--- a/canvas/workben/canvasdemo.cxx
+++ b/canvas/workben/canvasdemo.cxx
@@ -282,7 +282,7 @@ class DemoRenderer
             aStrokeAttrs.StartCapType = rendering::PathCapType::BUTT;
             aStrokeAttrs.EndCapType = rendering::PathCapType::BUTT;
             aStrokeAttrs.JoinType = rendering::PathJoinType::MITER;
-            //fprintf( stderr, "FIXME: stroking a PolyPolygon doesn't show up\n" );
+            //fprintf( stderr, "FIXME: stroking a tools::PolyPolygon doesn't show up\n" );
             //yes it does
             mxCanvas->strokePolyPolygon( xPP, maViewState, aRenderState, aStrokeAttrs );
             // FIXME: do this instead:
diff --git a/chart2/source/view/main/ShapeFactory.cxx b/chart2/source/view/main/ShapeFactory.cxx
index 865c95e..b165b44 100644
--- a/chart2/source/view/main/ShapeFactory.cxx
+++ b/chart2/source/view/main/ShapeFactory.cxx
@@ -85,7 +85,7 @@ void ShapeFactory::setPageSize(uno::Reference< drawing::XShapes >, const awt::Si
 {
 }
 
-//  diverse PolyPolygon create methods
+//  diverse tools::PolyPolygon create methods
 
 uno::Any createPolyPolygon_Cube(
             const drawing::Direction3D& rSize, double fRoundedEdge, bool bRounded = true )
diff --git a/cppcanvas/source/inc/implrenderer.hxx b/cppcanvas/source/inc/implrenderer.hxx
index fe3d639..88e7e5c 100644
--- a/cppcanvas/source/inc/implrenderer.hxx
+++ b/cppcanvas/source/inc/implrenderer.hxx
@@ -38,7 +38,7 @@ class VirtualDevice;
 class Gradient;
 class Rectangle;
 namespace vcl { class Font; }
-class PolyPolygon;
+namespace tools { class PolyPolygon; }
 class Point;
 class MetaCommentAction;
 
@@ -259,7 +259,7 @@ static float GetSwapFloat( SvStream& rSt )
                                     const char*  pCommentString,
                                     sal_uInt16       nType ) const;
 
-            void createGradientAction( const ::PolyPolygon&           rPoly,
+            void createGradientAction( const ::tools::PolyPolygon&    rPoly,
                                        const ::Gradient&              rGradient,
                                        const ActionFactoryParameters& rParms,
                                        bool                           bIsPolygonRectangle,
diff --git a/cppcanvas/source/mtfrenderer/implrenderer.cxx b/cppcanvas/source/mtfrenderer/implrenderer.cxx
index e5c6223..1437f32a 100644
--- a/cppcanvas/source/mtfrenderer/implrenderer.cxx
+++ b/cppcanvas/source/mtfrenderer/implrenderer.cxx
@@ -492,7 +492,7 @@ namespace cppcanvas
             return bRet;
         }
 
-        void ImplRenderer::createGradientAction( const ::PolyPolygon&           rPoly,
+        void ImplRenderer::createGradientAction( const ::tools::PolyPolygon&    rPoly,
                                                  const ::Gradient&              rGradient,
                                                  const ActionFactoryParameters& rParms,
                                                  bool                           bIsPolygonRectangle,
@@ -1743,7 +1743,7 @@ namespace cppcanvas
                                         aTexture.RepeatModeY = rendering::TexturingMode::NONE;
                                     }
 
-                                    ::PolyPolygon aPath;
+                                    ::tools::PolyPolygon aPath;
                                     aFill.getPath( aPath );
 
                                     ::basegfx::B2DPolyPolygon aPoly( aPath.getB2DPolyPolygon() );
diff --git a/drawinglayer/source/primitive2d/metafileprimitive2d.cxx b/drawinglayer/source/primitive2d/metafileprimitive2d.cxx
index 8d70325..6a207b8 100644
--- a/drawinglayer/source/primitive2d/metafileprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/metafileprimitive2d.cxx
@@ -2417,7 +2417,7 @@ namespace
 
                     if(pA->IsClipping())
                     {
-                        // new clipping. Get PolyPolygon and transform with current transformation
+                        // new clipping. Get tools::PolyPolygon and transform with current transformation
                         basegfx::B2DPolyPolygon aNewClipPolyPolygon(getB2DPolyPolygonFromRegion(pA->GetRegion()));
 
                         aNewClipPolyPolygon.transform(rPropertyHolders.Current().getTransformation());
diff --git a/drawinglayer/source/primitive2d/polygonprimitive2d.cxx b/drawinglayer/source/primitive2d/polygonprimitive2d.cxx
index 3dd5821..e8f5e18 100644
--- a/drawinglayer/source/primitive2d/polygonprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/polygonprimitive2d.cxx
@@ -266,7 +266,7 @@ namespace drawinglayer
                     for(sal_uInt32 b(0L); b < aAreaPolyPolygon.count(); b++)
                     {
                         // put into single polyPolygon primitives to make clear that this is NOT meant
-                        // to be painted as a single PolyPolygon (XORed as fill rule). Alternatively, a
+                        // to be painted as a single tools::PolyPolygon (XORed as fill rule). Alternatively, a
                         // melting process may be used here one day.
                         const basegfx::B2DPolyPolygon aNewPolyPolygon(aAreaPolyPolygon.getB2DPolygon(b));
                         static bool bTestByUsingRandomColor(false);
diff --git a/drawinglayer/source/primitive3d/sdrextrudelathetools3d.cxx b/drawinglayer/source/primitive3d/sdrextrudelathetools3d.cxx
index 4cd12f0..607c411 100644
--- a/drawinglayer/source/primitive3d/sdrextrudelathetools3d.cxx
+++ b/drawinglayer/source/primitive3d/sdrextrudelathetools3d.cxx
@@ -543,7 +543,7 @@ namespace drawinglayer
                             }
                             else
                             {
-                                OSL_ENSURE(bSamePolygonCount, "Slice PolyPolygon with different Polygon count (!)");
+                                OSL_ENSURE(bSamePolygonCount, "Slice tools::PolyPolygon with different Polygon count (!)");
                                 OSL_ENSURE(bSamePointCount, "Slice Polygon with different point count (!)");
                             }
                         }
diff --git a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
index 5e368fb..14a1a6e 100644
--- a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
@@ -213,11 +213,11 @@ namespace
         Needed to fix fdo#37559
 
         @param rPoly
-        PolyPolygon to filter
+        tools::PolyPolygon to filter
 
         @return converted tools PolyPolygon, w/o one-point fills
      */
-    PolyPolygon getFillPolyPolygon( const ::basegfx::B2DPolyPolygon& rPoly )
+    tools::PolyPolygon getFillPolyPolygon( const ::basegfx::B2DPolyPolygon& rPoly )
     {
         // filter input rPoly
         basegfx::B2DPolyPolygon aPoly;
@@ -228,7 +228,7 @@ namespace
             if( !aCandidate.isClosed() || aCandidate.count() > 1 )
                 aPoly.append(aCandidate);
         }
-        return PolyPolygon(aPoly);
+        return tools::PolyPolygon(aPoly);
     }
 
 } // end of anonymous namespace
@@ -521,8 +521,8 @@ namespace drawinglayer
 
                 pRetval = new SvtGraphicStroke(
                     Polygon(aLocalPolygon),
-                    PolyPolygon(aStartArrow),
-                    PolyPolygon(aEndArrow),
+                    tools::PolyPolygon(aStartArrow),
+                    tools::PolyPolygon(aEndArrow),
                     mfCurrentUnifiedTransparence,
                     fLineWidth,
                     eCap,
@@ -590,7 +590,7 @@ namespace drawinglayer
             is rendered by VCL (and thus fragmented to polygon color actions and others). On that base, e.g.
             the Metafile to SdrObject import creates it's gradient objects.
             Best (and safest) way to support it here is to use PRIMITIVE2D_ID_POLYPOLYGONGRADIENTPRIMITIVE2D,
-            map it back to the corresponding tools PolyPolygon and the Gradient and just call
+            map it back to the corresponding tools tools::PolyPolygon and the Gradient and just call
             OutputDevice::DrawGradient which creates the necessary compatible actions.
 
             XPATHFILL_SEQ_BEGIN, XPATHFILL_SEQ_END:
@@ -624,7 +624,7 @@ namespace drawinglayer
             contained path accordingly.
             The other one is SdrObject::Imp_DrawLineGeometry. It's done when MetaFile is set at OutDev and
             only when geometry is a single polygon (!). I see no reason for that; in the PS exporter this
-            would hinder to make use of PolyPolygon strokes. I will need to add support at:
+            would hinder to make use of tools::PolyPolygon strokes. I will need to add support at:
                 PRIMITIVE2D_ID_POLYGONHAIRLINEPRIMITIVE2D
                 PRIMITIVE2D_ID_POLYGONSTROKEPRIMITIVE2D
                 PRIMITIVE2D_ID_POLYGONSTROKEARROWPRIMITIVE2D
@@ -1541,7 +1541,7 @@ namespace drawinglayer
 
                     // #i111954# do NOT use decomposition, but use direct VCL-command
                     // process(rCandidate.get2DDecomposition(getViewInformation2D()));
-                    const PolyPolygon aToolsPolyPolygon(basegfx::tools::adaptiveSubdivideByAngle(aLocalPolyPolygon));
+                    const tools::PolyPolygon aToolsPolyPolygon(basegfx::tools::adaptiveSubdivideByAngle(aLocalPolyPolygon));
                     const HatchStyle aHatchStyle(
                         attribute::HATCHSTYLE_SINGLE == rFillHatchAttribute.getStyle() ? HATCH_SINGLE :
                         attribute::HATCHSTYLE_DOUBLE == rFillHatchAttribute.getStyle() ? HATCH_DOUBLE :
@@ -1616,7 +1616,7 @@ namespace drawinglayer
                         // necessary to again remove this subdivision since it decreases possible
                         // printing quality (not even resolution-dependent for now). THB will tell
                         // me when that task is fixed in the master
-                        const PolyPolygon aToolsPolyPolygon(
+                        const tools::PolyPolygon aToolsPolyPolygon(
                             getFillPolyPolygon(
                                 basegfx::tools::adaptiveSubdivideByAngle(aLocalPolyPolygon)));
 
@@ -1848,7 +1848,7 @@ namespace drawinglayer
                             // Check also for correct ID to exclude derived implementations
                             if(pPoPoColor && PRIMITIVE2D_ID_POLYPOLYGONCOLORPRIMITIVE2D == pPoPoColor->getPrimitive2DID())
                             {
-                                // single transparent PolyPolygon identified, use directly
+                                // single transparent tools::PolyPolygon identified, use directly
                                 const basegfx::BColor aPolygonColor(maBColorModifierStack.getModifiedColor(pPoPoColor->getBColor()));
                                 basegfx::B2DPolyPolygon aLocalPolyPolygon(pPoPoColor->getB2DPolyPolygon());
 
@@ -1900,7 +1900,7 @@ namespace drawinglayer
                                 }
 
                                 mpOutputDevice->DrawTransparent(
-                                    PolyPolygon(aLocalPolyPolygon),
+                                    tools::PolyPolygon(aLocalPolyPolygon),
                                     nTransPercentVcl);
 
                                 if(bSupportSvtGraphicFill)
diff --git a/drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx b/drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx
index 1879a64..95ff674 100644
--- a/drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx
+++ b/drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx
@@ -95,7 +95,7 @@ namespace drawinglayer
             /// Convert the fWidth to the same space as its coordinates.
             double getTransformedLineWidth( double fWidth ) const;
 
-            /// the current clipping PolyPolygon from MaskPrimitive2D
+            /// the current clipping tools::PolyPolygon from MaskPrimitive2D
             basegfx::B2DPolyPolygon             maClipPolyPolygon;
 
             /// the target MetaFile
diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
index 1a4db95..79351ce 100644
--- a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
@@ -782,7 +782,7 @@ namespace drawinglayer
                     }
                     else
                     {
-                        // direct draw of PolyPolygon with color
+                        // direct draw of tools::PolyPolygon with color
                         const basegfx::BColor aPolygonColor(maBColorModifierStack.getModifiedColor(rPolyPolygonColorPrimitive2D.getBColor()));
 
                         mpOutputDevice->SetFillColor(Color(aPolygonColor));
@@ -898,7 +898,7 @@ namespace drawinglayer
                                     {
                                         case PRIMITIVE2D_ID_POLYPOLYGONCOLORPRIMITIVE2D:
                                         {
-                                            // single transparent PolyPolygon identified, use directly
+                                            // single transparent tools::PolyPolygon identified, use directly
                                             const primitive2d::PolyPolygonColorPrimitive2D* pPoPoColor = static_cast< const primitive2d::PolyPolygonColorPrimitive2D* >(pBasePrimitive);
                                             OSL_ENSURE(pPoPoColor, "OOps, PrimitiveID and PrimitiveType do not match (!)");
                                             bDrawTransparentUsed = tryDrawPolyPolygonColorPrimitive2DDirect(*pPoPoColor, rUniTransparenceCandidate.getTransparence());
@@ -1149,7 +1149,7 @@ namespace drawinglayer
                         ::Hatch aVCLHatch(eHatchStyle, Color(rFillHatchAttributes.getColor()), nDistance, nAngle10);
 
                         // draw hatch using VCL
-                        mpOutputDevice->DrawHatch(PolyPolygon(Polygon(aHatchPolygon)), aVCLHatch);
+                        mpOutputDevice->DrawHatch(tools::PolyPolygon(Polygon(aHatchPolygon)), aVCLHatch);
                     }
                     break;
                 }
diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx
index c05efd3..0f92e63 100644
--- a/drawinglayer/source/processor2d/vclprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx
@@ -707,7 +707,7 @@ namespace drawinglayer
                                     // a single polygon fill. The form of the fill depends on tiling
                                     if(rFillGraphicAttribute.getTiling())
                                     {
-                                        // with tiling, fill the whole PolyPolygon with the modifier color
+                                        // with tiling, fill the whole tools::PolyPolygon with the modifier color
                                         basegfx::B2DPolyPolygon aLocalPolyPolygon(rPolyPolygon);
 
                                         aLocalPolyPolygon.transform(maCurrentTransformation);
@@ -718,7 +718,7 @@ namespace drawinglayer
                                     else
                                     {
                                         // without tiling, only the area common to the bitmap tile and the
-                                        // PolyPolygon is filled. Create the bitmap tile area in object
+                                        // tools::PolyPolygon is filled. Create the bitmap tile area in object
                                         // coordinates. For this, the object transformation needs to be created
                                         // from the already scaled PolyPolygon. The tile area in object
                                         // coordinates wil always be non-rotated, so it's not necessary to
diff --git a/editeng/source/editeng/impedit.cxx b/editeng/source/editeng/impedit.cxx
index d9d5810..d636c5d 100644
--- a/editeng/source/editeng/impedit.cxx
+++ b/editeng/source/editeng/impedit.cxx
@@ -153,9 +153,9 @@ void ImpEditView::DrawSelection( EditSelection aTmpSel, vcl::Region* pRegion, Ou
     // but someone switches the update mode!
 
     // pRegion: When not NULL, then only calculate Region.
-    PolyPolygon* pPolyPoly = NULL;
+    tools::PolyPolygon* pPolyPoly = NULL;
     if ( pRegion )
-        pPolyPoly = new PolyPolygon;
+        pPolyPoly = new tools::PolyPolygon;
 
     OutputDevice* pTarget = pTargetDevice ? pTargetDevice : pOutWin;
     bool bClipRegion = pTarget->IsClipRegion();
@@ -301,7 +301,7 @@ void ImpEditView::DrawSelection( EditSelection aTmpSel, vcl::Region* pRegion, Ou
     }
 }
 
-void ImpEditView::ImplDrawHighlightRect( OutputDevice* _pTarget, const Point& rDocPosTopLeft, const Point& rDocPosBottomRight, PolyPolygon* pPolyPoly )
+void ImpEditView::ImplDrawHighlightRect( OutputDevice* _pTarget, const Point& rDocPosTopLeft, const Point& rDocPosBottomRight, tools::PolyPolygon* pPolyPoly )
 {
     if ( rDocPosTopLeft.X() != rDocPosBottomRight.X() )
     {
diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx
index 2e3a1cc..4e93d93 100644
--- a/editeng/source/editeng/impedit.hxx
+++ b/editeng/source/editeng/impedit.hxx
@@ -260,7 +260,7 @@ protected:
     void ShowDDCursor( const Rectangle& rRect );
     void HideDDCursor();
 
-    void ImplDrawHighlightRect( OutputDevice* _pTarget, const Point& rDocPosTopLeft, const Point& rDocPosBottomRight, PolyPolygon* pPolyPoly );
+    void ImplDrawHighlightRect( OutputDevice* _pTarget, const Point& rDocPosTopLeft, const Point& rDocPosBottomRight, tools::PolyPolygon* pPolyPoly );
 
 public:
                     ImpEditView( EditView* pView, EditEngine* pEng, vcl::Window* pWindow );
diff --git a/editeng/source/misc/txtrange.cxx b/editeng/source/misc/txtrange.cxx
index ac27c22..7312bff 100644
--- a/editeng/source/misc/txtrange.cxx
+++ b/editeng/source/misc/txtrange.cxx
@@ -44,7 +44,7 @@ TextRanger::TextRanger( const basegfx::B2DPolyPolygon& rPolyPolygon,
     bVertical( bVert )
 {
     sal_uInt32 nCount(rPolyPolygon.count());
-    mpPolyPolygon = new PolyPolygon( (sal_uInt16)nCount );
+    mpPolyPolygon = new tools::PolyPolygon( (sal_uInt16)nCount );
 
     for(sal_uInt32 i(0L); i < nCount; i++)
     {
@@ -56,7 +56,7 @@ TextRanger::TextRanger( const basegfx::B2DPolyPolygon& rPolyPolygon,
     if( pLinePolyPolygon )
     {
         nCount = pLinePolyPolygon->count();
-        mpLinePolyPolygon = new PolyPolygon();
+        mpLinePolyPolygon = new tools::PolyPolygon();
 
         for(sal_uInt32 i(0L); i < nCount; i++)
         {
@@ -135,8 +135,8 @@ public:
         { if( nMin > nL ) nMin = nL; if( nMax < nR ) nMax = nR; }
     sal_uInt16 Area( const Point& rPt );
     void NoteUpLow( long nA, const sal_uInt8 nArea );
-    void Calc( const PolyPolygon& rPoly );
-    void Concat( const PolyPolygon* pPoly );
+    void Calc( const tools::PolyPolygon& rPoly );
+    void Concat( const tools::PolyPolygon* pPoly );
     // inlines
     void NoteLast() { if( bMultiple ) NoteRange( nAct == nFirst ); }
     void SetClosed( const bool bNew ){ bClosed = bNew; }
@@ -300,7 +300,7 @@ void SvxBoundArgs::NoteRange( bool bToggle )
     }
 }
 
-void SvxBoundArgs::Calc( const PolyPolygon& rPoly )
+void SvxBoundArgs::Calc( const tools::PolyPolygon& rPoly )
 {
     sal_uInt16 nCount;
     nAct = 0;
@@ -488,7 +488,7 @@ void SvxBoundArgs::Add()
     }
 }
 
-void SvxBoundArgs::Concat( const PolyPolygon* pPoly )
+void SvxBoundArgs::Concat( const tools::PolyPolygon* pPoly )
 {
     SetConcat( true );
     DBG_ASSERT( pPoly, "Nothing to do?" );
diff --git a/filter/source/flash/swfwriter.cxx b/filter/source/flash/swfwriter.cxx
index de866c4..ded932b 100644
--- a/filter/source/flash/swfwriter.cxx
+++ b/filter/source/flash/swfwriter.cxx
@@ -334,13 +334,13 @@ sal_uInt16 Writer::defineShape( const GDIMetaFile& rMtf, sal_Int16 x, sal_Int16
 
 sal_uInt16 Writer::defineShape( const Polygon& rPoly, const FillStyle& rFillStyle )
 {
-    const PolyPolygon aPolyPoly( rPoly );
+    const tools::PolyPolygon aPolyPoly( rPoly );
     return defineShape( aPolyPoly, rFillStyle );
 }
 
 
 
-sal_uInt16 Writer::defineShape( const PolyPolygon& rPolyPoly, const FillStyle& rFillStyle )
+sal_uInt16 Writer::defineShape( const tools::PolyPolygon& rPolyPoly, const FillStyle& rFillStyle )
 {
     sal_uInt16 nShapeId = createID();
 
@@ -384,7 +384,7 @@ sal_uInt16 Writer::defineShape( const PolyPolygon& rPolyPoly, const FillStyle& r
 
 
 
-sal_uInt16 Writer::defineShape( const PolyPolygon& rPolyPoly, sal_uInt16 nLineWidth, const Color& rLineColor )
+sal_uInt16 Writer::defineShape( const tools::PolyPolygon& rPolyPoly, sal_uInt16 nLineWidth, const Color& rLineColor )
 {
     sal_uInt16 nShapeId = createID();
 
diff --git a/filter/source/flash/swfwriter.hxx b/filter/source/flash/swfwriter.hxx
index 9e63078..efa2247 100644
--- a/filter/source/flash/swfwriter.hxx
+++ b/filter/source/flash/swfwriter.hxx
@@ -41,7 +41,7 @@
 
 class GDIMetaFile;
 class BitmapEx;
-class PolyPolygon;
+namespace tools { class PolyPolygon; }
 class Gradient;
 class SvtGraphicFill;
 class SvtGraphicStroke;
@@ -273,7 +273,7 @@ public:
     void storeTo( com::sun::star::uno::Reference< com::sun::star::io::XOutputStream > &xOutStream );
 
     // geometry
-    void setClipping( const PolyPolygon* pClipPolyPolygon );
+    void setClipping( const tools::PolyPolygon* pClipPolyPolygon );
 
     /** defines a flash shape from a filled polygon.
         The coordinates must be in twips */
@@ -281,11 +281,11 @@ public:
 
     /** defines a flash shape from a filled polypolygon.
         The coordinates must be in twips */
-    sal_uInt16 defineShape( const PolyPolygon& rPolyPoly, const FillStyle& rFillStyle );
+    sal_uInt16 defineShape( const tools::PolyPolygon& rPolyPoly, const FillStyle& rFillStyle );
 
     /** defines a flash shape from a outlined polypolygon.
         The coordinates must be in twips */
-    sal_uInt16 defineShape( const PolyPolygon& rPolyPoly, sal_uInt16 nLineWidth, const Color& rLineColor );
+    sal_uInt16 defineShape( const tools::PolyPolygon& rPolyPoly, sal_uInt16 nLineWidth, const Color& rLineColor );
 
     /** defines a flash shape from a vcl metafile.
         The mapmode of the metafile is used to map all coordinates to twips.
@@ -329,7 +329,7 @@ public:
 private:
     Point                   map( const Point& rPoint ) const;
     Size                    map( const Size& rSize ) const;
-    void                    map( PolyPolygon& rPolyPolygon ) const;
+    void                    map( tools::PolyPolygon& rPolyPolygon ) const;
     sal_Int32               mapRelative( sal_Int32 n100thMM ) const;
 
     void startTag( sal_uInt8 nTagId );
@@ -343,11 +343,11 @@ private:
     void Impl_writeActions( const GDIMetaFile& rMtf );
     void Impl_writePolygon( const Polygon& rPoly, bool bFilled );
     void Impl_writePolygon( const Polygon& rPoly, bool bFilled, const Color& rFillColor, const Color& rLineColor );
-    void Impl_writePolyPolygon( const PolyPolygon& rPolyPoly, bool bFilled, sal_uInt8 nTransparence = 0);
-    void Impl_writePolyPolygon( const PolyPolygon& rPolyPoly, bool bFilled, const Color& rFillColor, const Color& rLineColor );
+    void Impl_writePolyPolygon( const tools::PolyPolygon& rPolyPoly, bool bFilled, sal_uInt8 nTransparence = 0);
+    void Impl_writePolyPolygon( const tools::PolyPolygon& rPolyPoly, bool bFilled, const Color& rFillColor, const Color& rLineColor );
     void Impl_writeText( const Point& rPos, const OUString& rText, const long* pDXArray, long nWidth );
     void Impl_writeText( const Point& rPos, const OUString& rText, const long* pDXArray, long nWidth, Color aTextColor );
-    void Impl_writeGradientEx( const PolyPolygon& rPolyPoly, const Gradient& rGradient );
+    void Impl_writeGradientEx( const tools::PolyPolygon& rPolyPoly, const Gradient& rGradient );
     void Impl_writeLine( const Point& rPt1, const Point& rPt2, const Color* pLineColor = NULL );
     void Impl_writeRect( const Rectangle& rRect, long nRadX, long nRadY );
     void Impl_writeEllipse( const Point& rCenter, long nRadX, long nRadY );
@@ -397,7 +397,7 @@ private:
 
     VirtualDevice*  mpVDev;
 
-    const PolyPolygon* mpClipPolyPolygon;
+    const tools::PolyPolygon* mpClipPolyPolygon;
 
     /** holds the information of the objects defined in the movie stream
         while executing defineShape
diff --git a/filter/source/flash/swfwriter1.cxx b/filter/source/flash/swfwriter1.cxx
index 89c0c22..f2cf9e6 100644
--- a/filter/source/flash/swfwriter1.cxx
+++ b/filter/source/flash/swfwriter1.cxx
@@ -84,7 +84,7 @@ Size Writer::map( const Size& rSize ) const
 
 
 
-void Writer::map( PolyPolygon& rPolyPolygon ) const
+void Writer::map( tools::PolyPolygon& rPolyPolygon ) const
 {
     const sal_uInt16 nPolyCount = rPolyPolygon.Count();
     if( nPolyCount )
@@ -262,7 +262,7 @@ void Writer::Impl_addEndShapeRecord( BitStream& rBits )
 
 void Writer::Impl_writePolygon( const Polygon& rPoly, bool bFilled )
 {
-    PolyPolygon aPolyPoly( rPoly );
+    tools::PolyPolygon aPolyPoly( rPoly );
     Impl_writePolyPolygon( aPolyPoly, bFilled );
 }
 
@@ -270,13 +270,13 @@ void Writer::Impl_writePolygon( const Polygon& rPoly, bool bFilled )
 
 void Writer::Impl_writePolygon( const Polygon& rPoly, bool bFilled, const Color& rFillColor, const Color& rLineColor )
 {
-    PolyPolygon aPolyPoly( rPoly );
+    tools::PolyPolygon aPolyPoly( rPoly );
     Impl_writePolyPolygon( aPolyPoly, bFilled, rFillColor, rLineColor );
 }
 
 
 
-void Writer::Impl_writePolyPolygon( const PolyPolygon& rPolyPoly, bool bFilled, sal_uInt8 nTransparence /* = 0 */ )
+void Writer::Impl_writePolyPolygon( const tools::PolyPolygon& rPolyPoly, bool bFilled, sal_uInt8 nTransparence /* = 0 */ )
 {
     Color aLineColor( mpVDev->GetLineColor() );
     if( 0 == aLineColor.GetTransparency() )
@@ -289,9 +289,9 @@ void Writer::Impl_writePolyPolygon( const PolyPolygon& rPolyPoly, bool bFilled,
 
 
 
-void Writer::Impl_writePolyPolygon( const PolyPolygon& rPolyPoly, bool bFilled, const Color& rFillColor, const Color& rLineColor )
+void Writer::Impl_writePolyPolygon( const tools::PolyPolygon& rPolyPoly, bool bFilled, const Color& rFillColor, const Color& rLineColor )
 {
-    PolyPolygon aPolyPoly( rPolyPoly );
+    tools::PolyPolygon aPolyPoly( rPolyPoly );
 
     if( aPolyPoly.Count() )
     {
@@ -325,11 +325,11 @@ void Writer::Impl_writePolyPolygon( const PolyPolygon& rPolyPoly, bool bFilled,
 
 
 /** A gradient is a transition from one color to another, rendered inside a given polypolygon */
-void Writer::Impl_writeGradientEx( const PolyPolygon& rPolyPoly, const Gradient& rGradient )
+void Writer::Impl_writeGradientEx( const tools::PolyPolygon& rPolyPoly, const Gradient& rGradient )
 {
     if( rPolyPoly.Count() )
     {
-        PolyPolygon aPolyPolygon( rPolyPoly );
+        tools::PolyPolygon aPolyPolygon( rPolyPoly );
         map( aPolyPolygon );
 
         if( (rGradient.GetStyle() == GradientStyle_LINEAR && rGradient.GetAngle() == 900) || (rGradient.GetStyle() == GradientStyle_RADIAL)  )
@@ -359,7 +359,7 @@ void Writer::Impl_writeGradientEx( const PolyPolygon& rPolyPoly, const Gradient&
 
 
 
-void Writer::setClipping( const PolyPolygon* pClipPolyPolygon )
+void Writer::setClipping( const tools::PolyPolygon* pClipPolyPolygon )
 {
     mpClipPolyPolygon = pClipPolyPolygon;
 }
@@ -516,7 +516,7 @@ void Writer::Impl_writeText( const Point& rPos, const OUString& rText, const lon
     if( bRTL || (nScriptType != ScriptType::LATIN) )
     {
         // todo: optimize me as this will generate a huge amount of duplicate polygons
-        PolyPolygon aPolyPoygon;
+        tools::PolyPolygon aPolyPoygon;
         mpVDev->GetTextOutline( aPolyPoygon, rText, 0, 0, (sal_uInt16)nLen, true, nWidth, pDXArray );
         aPolyPoygon.Translate( rPos );
         Impl_writePolyPolygon( aPolyPoygon, true, aTextColor, aTextColor );
@@ -1173,7 +1173,7 @@ bool Writer::Impl_writeStroke( SvtGraphicStroke& rStroke )
 {
     Polygon aPolygon;
     rStroke.getPath( aPolygon );
-    PolyPolygon aPolyPolygon( aPolygon );
+    tools::PolyPolygon aPolyPolygon( aPolygon );
 
     map( aPolyPolygon );
 
@@ -1183,12 +1183,12 @@ bool Writer::Impl_writeStroke( SvtGraphicStroke& rStroke )
     if(SvtGraphicStroke::joinRound != rStroke.getJoinType())
         return false;
 
-    PolyPolygon aStartArrow;
+    tools::PolyPolygon aStartArrow;
     rStroke.getStartArrow( aStartArrow );
     if( 0 != aStartArrow.Count() )
         return false;       // todo: Implement line ends
 
-    PolyPolygon aEndArrow;
+    tools::PolyPolygon aEndArrow;
     rStroke.getEndArrow( aEndArrow );
     if( 0 != aEndArrow.Count() )
         return false;       // todo: Implement line ends
@@ -1215,7 +1215,7 @@ bool Writer::Impl_writeStroke( SvtGraphicStroke& rStroke )
 */
 bool Writer::Impl_writeFilling( SvtGraphicFill& rFilling )
 {
-    PolyPolygon aPolyPolygon;
+    tools::PolyPolygon aPolyPolygon;
     rFilling.getPath( aPolyPolygon );
 
     Rectangle aOldRect( aPolyPolygon.GetBoundRect() );
@@ -1365,7 +1365,7 @@ void Writer::Impl_handleLineInfoPolyPolygons(const LineInfo& rInfo, const basegf
             for(sal_uInt32 a(0); a < aFillPolyPolygon.count(); a++)
             {
                 const Polygon aPolygon(aFillPolyPolygon.getB2DPolygon(a));
-                Impl_writePolyPolygon(PolyPolygon(Polygon(aPolygon)), true );
+                Impl_writePolyPolygon(tools::PolyPolygon(Polygon(aPolygon)), true );
             }
 
             mpVDev->SetLineColor(aOldLineColor);
@@ -1510,7 +1510,7 @@ void Writer::Impl_writeActions( const GDIMetaFile& rMtf )
             case( META_POLYPOLYGON_ACTION ):
             {
                 const MetaPolyPolygonAction*    pA = (const MetaPolyPolygonAction*) pAction;
-                const PolyPolygon&              rPolyPoly = pA->GetPolyPolygon();
+                const tools::PolyPolygon&              rPolyPoly = pA->GetPolyPolygon();
 
                 if( rPolyPoly.Count() )
                     Impl_writePolyPolygon( rPolyPoly, true );
@@ -1546,7 +1546,7 @@ void Writer::Impl_writeActions( const GDIMetaFile& rMtf )
             case( META_TRANSPARENT_ACTION ):
             {
                 const MetaTransparentAction*    pA = (const MetaTransparentAction*) pAction;
-                const PolyPolygon&              rPolyPoly = pA->GetPolyPolygon();
+                const tools::PolyPolygon&              rPolyPoly = pA->GetPolyPolygon();
 
                 if( rPolyPoly.Count() )
                 {
diff --git a/filter/source/flash/swfwriter2.cxx b/filter/source/flash/swfwriter2.cxx
index 0e6110c..b1fe002 100644
--- a/filter/source/flash/swfwriter2.cxx
+++ b/filter/source/flash/swfwriter2.cxx
@@ -459,7 +459,7 @@ sal_uInt16 FlashFont::getGlyph( sal_uInt16 nChar, VirtualDevice* pVDev )
     aOldFont.SetOrientation(0);
 
     // let the virtual device convert the character to polygons
-    PolyPolygon aPolyPoly;
+    tools::PolyPolygon aPolyPoly;
     pVDev->GetTextOutline( aPolyPoly, OUString(nChar) );
 
     maGlyphOffsets.push_back( _uInt16( maGlyphData.getOffset() ) );
diff --git a/filter/source/graphicfilter/eos2met/eos2met.cxx b/filter/source/graphicfilter/eos2met/eos2met.cxx
index e6b7fc3..8aaa5b2 100644
--- a/filter/source/graphicfilter/eos2met/eos2met.cxx
+++ b/filter/source/graphicfilter/eos2met/eos2met.cxx
@@ -208,7 +208,7 @@ private:
     void METMove(Point aPt);
     void METLine(Point aPt1, Point aPt2);
     void METLine(const Polygon & rPolygon);
-    void METLine(const PolyPolygon & rPolyPolygon);
+    void METLine(const tools::PolyPolygon & rPolyPolygon);
     void METLineAtCurPos(Point aPt);
     void METBox(bool bFill, bool bBoundary,
                 Rectangle aRect, sal_uInt32 nHAxis, sal_uInt32 nVAxis);
@@ -1314,7 +1314,7 @@ void METWriter::METLine(const Polygon & rPolygon)
 }
 
 
-void METWriter::METLine(const PolyPolygon & rPolyPolygon)
+void METWriter::METLine(const tools::PolyPolygon & rPolyPolygon)
 {
     sal_uInt16 i,nCount;
     nCount=rPolyPolygon.Count();
@@ -1818,7 +1818,7 @@ void METWriter::WriteOrders( const GDIMetaFile* pMTF )
             {
                 const MetaPolyPolygonAction* pA = (const MetaPolyPolygonAction*) pMA;
 
-                PolyPolygon aSimplePolyPoly( pA->GetPolyPolygon() );
+                tools::PolyPolygon aSimplePolyPoly( pA->GetPolyPolygon() );
                 sal_uInt16 i, nCount = aSimplePolyPoly.Count();
                 for ( i = 0; i < nCount; i++ )
                 {
diff --git a/filter/source/graphicfilter/epict/epict.cxx b/filter/source/graphicfilter/epict/epict.cxx
index 1d574aa..e5fee90 100644
--- a/filter/source/graphicfilter/epict/epict.cxx
+++ b/filter/source/graphicfilter/epict/epict.cxx
@@ -110,7 +110,7 @@ private:
         // counts the bitmaps and actions (nNumberOfActions and nNumberOfBitmaps
         // have to be set to 0 at the beginning, since this method is recursive)
 
-    Polygon PolyPolygonToPolygon(const PolyPolygon & rPoly);
+    Polygon PolyPolygonToPolygon(const tools::PolyPolygon & rPoly);
         // generates a relatively sane polygon on the basis of a PolyPolygon
 
     Rectangle MapRectangle( const Rectangle& rRect );
@@ -219,7 +219,7 @@ void PictWriter::CountActionsAndBitmaps(const GDIMetaFile & rMTF)
 }
 
 
-Polygon PictWriter::PolyPolygonToPolygon(const PolyPolygon & rPolyPoly)
+Polygon PictWriter::PolyPolygonToPolygon(const tools::PolyPolygon & rPolyPoly)
 {
     sal_uInt16 nCount,nSize1,nSize2,np,i1,i2,i3,nBestIdx1,nBestIdx2;
     long nDistSqr,nBestDistSqr, nCountdownTests;
@@ -1667,9 +1667,9 @@ void PictWriter::WriteOpcodes( const GDIMetaFile & rMTF )
             {
                 const MetaPolyPolygonAction* pA = (const MetaPolyPolygonAction*) pMA;
 
-                const PolyPolygon& rPolyPoly = pA->GetPolyPolygon();
+                const tools::PolyPolygon& rPolyPoly = pA->GetPolyPolygon();
                 sal_uInt16 nPolyCount = rPolyPoly.Count();
-                PolyPolygon aSimplePolyPoly( rPolyPoly );
+                tools::PolyPolygon aSimplePolyPoly( rPolyPoly );
                 for ( sal_uInt16 i = 0; i < nPolyCount; i++ )
                 {
                     if ( aSimplePolyPoly[ i ].HasFlags() )
@@ -2074,7 +2074,7 @@ void PictWriter::WriteOpcodes( const GDIMetaFile & rMTF )
 
             case META_TRANSPARENT_ACTION:
             {
-                const PolyPolygon& rPolyPoly = ( (const MetaTransparentAction*) pMA )->GetPolyPolygon();
+                const tools::PolyPolygon& rPolyPoly = ( (const MetaTransparentAction*) pMA )->GetPolyPolygon();
 
                 if (aFillColor!=Color( COL_TRANSPARENT ))
                 {
diff --git a/filter/source/graphicfilter/eps/eps.cxx b/filter/source/graphicfilter/eps/eps.cxx
index 7cf09e8..c9b8dd5 100644
--- a/filter/source/graphicfilter/eps/eps.cxx
+++ b/filter/source/graphicfilter/eps/eps.cxx
@@ -202,9 +202,9 @@ private:
     void                ImplWriteLineInfo( const LineInfo& rLineInfo );
     void                ImplRect( const Rectangle & rRectangle );
     void                ImplRectFill ( const Rectangle & rRectangle );
-    void                ImplWriteGradient( const PolyPolygon& rPolyPoly, const Gradient& rGradient, VirtualDevice& rVDev );
-    void                ImplIntersect( const PolyPolygon& rPolyPoly );
-    void                ImplPolyPoly( const PolyPolygon & rPolyPolygon, bool bTextOutline = false );
+    void                ImplWriteGradient( const tools::PolyPolygon& rPolyPoly, const Gradient& rGradient, VirtualDevice& rVDev );
+    void                ImplIntersect( const tools::PolyPolygon& rPolyPoly );
+    void                ImplPolyPoly( const tools::PolyPolygon & rPolyPolygon, bool bTextOutline = false );
     void                ImplPolyLine( const Polygon & rPolygon );
 
     void                ImplSetClipRegion( vcl::Region& rRegion );
@@ -654,7 +654,7 @@ void PSWriter::ImplWriteEpilog()
 
 void PSWriter::ImplWriteActions( const GDIMetaFile& rMtf, VirtualDevice& rVDev )
 {
-    PolyPolygon aFillPath;
+    tools::PolyPolygon aFillPath;
 
     for( size_t nCurAction = 0, nCount = rMtf.GetActionSize(); nCurAction < nCount; nCurAction++ )
     {
@@ -715,7 +715,7 @@ void PSWriter::ImplWriteActions( const GDIMetaFile& rMtf, VirtualDevice& rVDev )
                 Rectangle   aRect = ( ( (const MetaEllipseAction*) pMA )->GetRect() );
                 Point       aCenter = aRect.Center();
                 Polygon     aPoly( aCenter, aRect.GetWidth() / 2, aRect.GetHeight() / 2 );
-                PolyPolygon aPolyPoly( aPoly );
+                tools::PolyPolygon aPolyPoly( aPoly );
                 ImplPolyPoly( aPolyPoly );
             }
             break;
@@ -724,7 +724,7 @@ void PSWriter::ImplWriteActions( const GDIMetaFile& rMtf, VirtualDevice& rVDev )
             {
                 Polygon aPoly( ( (const MetaArcAction*)pMA )->GetRect(), ( (const MetaArcAction*)pMA )->GetStartPoint(),
                     ( (const MetaArcAction*)pMA )->GetEndPoint(), POLY_ARC );
-                PolyPolygon aPolyPoly( aPoly );
+                tools::PolyPolygon aPolyPoly( aPoly );
                 ImplPolyPoly( aPolyPoly );
             }
             break;
@@ -733,7 +733,7 @@ void PSWriter::ImplWriteActions( const GDIMetaFile& rMtf, VirtualDevice& rVDev )
             {
                 Polygon aPoly( ( (const MetaPieAction*)pMA )->GetRect(), ( (const MetaPieAction*)pMA )->GetStartPoint(),
                     ( (const MetaPieAction*)pMA )->GetEndPoint(), POLY_PIE );
-                PolyPolygon aPolyPoly( aPoly );
+                tools::PolyPolygon aPolyPoly( aPoly );
                 ImplPolyPoly( aPolyPoly );
             }
             break;
@@ -742,7 +742,7 @@ void PSWriter::ImplWriteActions( const GDIMetaFile& rMtf, VirtualDevice& rVDev )
             {
                 Polygon aPoly( ( (const MetaChordAction*)pMA )->GetRect(), ( (const MetaChordAction*)pMA )->GetStartPoint(),
                     ( (const MetaChordAction*)pMA )->GetEndPoint(), POLY_CHORD );
-                PolyPolygon aPolyPoly( aPoly );
+                tools::PolyPolygon aPolyPoly( aPoly );
                 ImplPolyPoly( aPolyPoly );
             }
             break;
@@ -791,7 +791,7 @@ void PSWriter::ImplWriteActions( const GDIMetaFile& rMtf, VirtualDevice& rVDev )
 
             case META_POLYGON_ACTION :
             {
-                PolyPolygon aPolyPoly( ( (const MetaPolygonAction*) pMA )->GetPolygon() );
+                tools::PolyPolygon aPolyPoly( ( (const MetaPolygonAction*) pMA )->GetPolygon() );
                 ImplPolyPoly( aPolyPoly );
             }
             break;
@@ -926,14 +926,14 @@ void PSWriter::ImplWriteActions( const GDIMetaFile& rMtf, VirtualDevice& rVDev )
 
             case META_GRADIENT_ACTION :
             {
-                PolyPolygon aPolyPoly( ( (const MetaGradientAction*)pMA)->GetRect() );
+                tools::PolyPolygon aPolyPoly( ( (const MetaGradientAction*)pMA)->GetRect() );
                 ImplWriteGradient( aPolyPoly, ( (const MetaGradientAction*) pMA )->GetGradient(), rVDev );
             }
             break;
 
             case META_GRADIENTEX_ACTION :
             {
-                PolyPolygon aPolyPoly( ( (const MetaGradientExAction*)pMA)->GetPolyPolygon() );
+                tools::PolyPolygon aPolyPoly( ( (const MetaGradientExAction*)pMA)->GetPolyPolygon() );
                 ImplWriteGradient( aPolyPoly, ( (const MetaGradientExAction*) pMA )->GetGradient(), rVDev );
             }
             break;
@@ -1282,7 +1282,7 @@ void PSWriter::ImplWriteActions( const GDIMetaFile& rMtf, VirtualDevice& rVDev )
                 {
                     if ( aFillPath.Count() )
                     {
-                        aFillPath = PolyPolygon();
+                        aFillPath = tools::PolyPolygon();
                         ImplWriteLine( "gr" );
                     }
                 }
@@ -1304,8 +1304,8 @@ void PSWriter::ImplWriteActions( const GDIMetaFile& rMtf, VirtualDevice& rVDev )
                             Polygon aPath;
                             aStroke.getPath( aPath );
 
-                            PolyPolygon aStartArrow;
-                            PolyPolygon aEndArrow;
+                            tools::PolyPolygon aStartArrow;
+                            tools::PolyPolygon aEndArrow;
 //                          double fTransparency( aStroke.getTransparency() );
                             double fStrokeWidth( aStroke.getStrokeWidth() );
                             SvtGraphicStroke::JoinType eJT( aStroke.getJoinType() );
@@ -1341,7 +1341,7 @@ void PSWriter::ImplWriteActions( const GDIMetaFile& rMtf, VirtualDevice& rVDev )
                                 case SvtGraphicFill::fillSolid :
                                 {
                                     bSkipSequence = true;
-                                    PolyPolygon aPolyPoly;
+                                    tools::PolyPolygon aPolyPoly;
                                     aFill.getPath( aPolyPoly );
                                     sal_uInt16 i, nPolyCount = aPolyPoly.Count();
                                     if ( nPolyCount )
@@ -1416,7 +1416,7 @@ void PSWriter::ImplWriteActions( const GDIMetaFile& rMtf, VirtualDevice& rVDev )
                                         aTempMtf.AddAction( rMtf.GetAction( nBitmapAction )->Clone() );
                                         ImplWriteActions( aTempMtf, rVDev );
                                         ImplWriteLine( "gr" );
-                                        aFillPath = PolyPolygon();
+                                        aFillPath = tools::PolyPolygon();
                                     }
                                     else
                                         nCurAction = nCommentStartAction + 1;
@@ -1588,7 +1588,7 @@ void PSWriter::ImplAddPath( const Polygon & rPolygon )
 
 
 
-void PSWriter::ImplIntersect( const PolyPolygon& rPolyPoly )
+void PSWriter::ImplIntersect( const tools::PolyPolygon& rPolyPoly )
 {
     sal_uInt16 i, nPolyCount = rPolyPoly.Count();
     for ( i = 0; i < nPolyCount; )
@@ -1606,7 +1606,7 @@ void PSWriter::ImplIntersect( const PolyPolygon& rPolyPoly )
 
 
 
-void PSWriter::ImplWriteGradient( const PolyPolygon& rPolyPoly, const Gradient& rGradient, VirtualDevice& rVDev )
+void PSWriter::ImplWriteGradient( const tools::PolyPolygon& rPolyPoly, const Gradient& rGradient, VirtualDevice& rVDev )
 {
     VirtualDevice   l_aVDev;
     GDIMetaFile     aTmpMtf;
@@ -1617,7 +1617,7 @@ void PSWriter::ImplWriteGradient( const PolyPolygon& rPolyPoly, const Gradient&
 
 
 
-void PSWriter::ImplPolyPoly( const PolyPolygon & rPolyPoly, bool bTextOutline )
+void PSWriter::ImplPolyPoly( const tools::PolyPolygon & rPolyPoly, bool bTextOutline )
 {
     sal_uInt16 i, nPolyCount = rPolyPoly.Count();
     if ( nPolyCount )
@@ -2158,7 +2158,7 @@ void PSWriter::ImplText( const OUString& rUniString, const Point& rPos, const lo
         }
         bool bOldLineColor = bLineColor;
         bLineColor = false;
-        std::vector<PolyPolygon> aPolyPolyVec;
+        std::vector<tools::PolyPolygon> aPolyPolyVec;
         if ( aVirDev.GetTextOutlines( aPolyPolyVec, rUniString, 0, 0, -1, true, nWidth, pDXArry ) )
         {
             // always adjust text position to match baseline alignment
@@ -2171,7 +2171,7 @@ void PSWriter::ImplText( const OUString& rUniString, const Point& rPos, const lo
                 ImplWriteF( nRotation, 1 );
                 mpPS->WriteCharPtr( "r " );
             }
-            std::vector<PolyPolygon>::iterator aIter( aPolyPolyVec.begin() );
+            std::vector<tools::PolyPolygon>::iterator aIter( aPolyPolyVec.begin() );
             while ( aIter != aPolyPolyVec.end() )
                 ImplPolyPoly( *aIter++, true );
             ImplWriteLine( "pom" );
diff --git a/filter/source/graphicfilter/icgm/actimpr.cxx b/filter/source/graphicfilter/icgm/actimpr.cxx
index 80f2d9c..ad03946 100644
--- a/filter/source/graphicfilter/icgm/actimpr.cxx
+++ b/filter/source/graphicfilter/icgm/actimpr.cxx
@@ -717,7 +717,7 @@ void CGMImpressOutAct::DrawPolybezier( Polygon& rPolygon )
 
 
 
-void CGMImpressOutAct::DrawPolyPolygon( PolyPolygon& rPolyPolygon )
+void CGMImpressOutAct::DrawPolyPolygon( tools::PolyPolygon& rPolyPolygon )
 {
     sal_uInt32 nNumPolys = rPolyPolygon.Count();
     if ( nNumPolys && ImplCreateShape( "com.sun.star.drawing.ClosedBezierShape" ) )
diff --git a/filter/source/graphicfilter/icgm/class4.cxx b/filter/source/graphicfilter/icgm/class4.cxx
index 64086a1..f10cb18d 100644
--- a/filter/source/graphicfilter/icgm/class4.cxx
+++ b/filter/source/graphicfilter/icgm/class4.cxx
@@ -273,7 +273,7 @@ void CGM::ImplDoClass4()
                 sal_uInt16      nPoints = 0;
                 boost::scoped_array<Point> pPoints(new Point[ 0x4000 ]);
 
-                PolyPolygon aPolyPolygon;
+                tools::PolyPolygon aPolyPolygon;
                 FloatPoint  aFloatPoint;
                 sal_uInt32      nEdgeFlag;
                 while ( mnParaSize < mnElementSize )
diff --git a/filter/source/graphicfilter/icgm/outact.hxx b/filter/source/graphicfilter/icgm/outact.hxx
index 7e5fd3a..49712e1 100644
--- a/filter/source/graphicfilter/icgm/outact.hxx
+++ b/filter/source/graphicfilter/icgm/outact.hxx
@@ -55,7 +55,7 @@ class CGMOutAct
         sal_uInt16                  mnIndex;                // figure
         sal_uInt8*                  mpFlags;
         Point*                  mpPoints;
-        PolyPolygon             maPolyPolygon;
+        tools::PolyPolygon             maPolyPolygon;
         ::com::sun::star::awt::Gradient*            mpGradient;
 
         CGM*                    mpCGM;
@@ -85,7 +85,7 @@ class CGMOutAct
     virtual void                DrawPolygon( Polygon& ) {} ;
     virtual void                DrawPolyLine( Polygon& ) {} ;
     virtual void                DrawPolybezier( Polygon& ) {} ;
-    virtual void                DrawPolyPolygon( PolyPolygon& ) {} ;
+    virtual void                DrawPolyPolygon( tools::PolyPolygon& ) {} ;
     virtual void                DrawText( ::com::sun::star::awt::Point&, ::com::sun::star::awt::Size&, char*, sal_uInt32, FinalFlag ) {} ;
     virtual void                AppendText( char*, sal_uInt32, FinalFlag ) {} ;
     virtual sal_uInt32              DrawText( TextEntry*, NodeFrameSet&, sal_uInt32 ) { return 0; } ;
@@ -126,7 +126,7 @@ public:
     virtual void                DrawPolygon( Polygon& ) SAL_OVERRIDE ;
     virtual void                DrawPolyLine( Polygon& ) SAL_OVERRIDE ;
     virtual void                DrawPolybezier( Polygon& ) SAL_OVERRIDE ;
-    virtual void                DrawPolyPolygon( PolyPolygon& ) SAL_OVERRIDE ;
+    virtual void                DrawPolyPolygon( tools::PolyPolygon& ) SAL_OVERRIDE ;
     virtual void                DrawText( ::com::sun::star::awt::Point& TextRectPos, ::com::sun::star::awt::Size& TextRectSize, char* String, sal_uInt32 StringSize, FinalFlag ) SAL_OVERRIDE ;
     virtual void                AppendText( char* String, sal_uInt32 StringSize, FinalFlag ) SAL_OVERRIDE ;
     virtual sal_uInt32              DrawText( TextEntry*, NodeFrameSet&, sal_uInt32 ) SAL_OVERRIDE ;
diff --git a/filter/source/graphicfilter/idxf/dxf2mtf.cxx b/filter/source/graphicfilter/idxf/dxf2mtf.cxx
index ba8f3fe..a849b47 100644
--- a/filter/source/graphicfilter/idxf/dxf2mtf.cxx
+++ b/filter/source/graphicfilter/idxf/dxf2mtf.cxx
@@ -572,7 +572,7 @@ void DXF2GDIMetaFile::DrawHatchEntity(const DXFHatchEntity & rE, const DXFTransf
     {
         SetAreaAttribute( rE );
         sal_Int32 j = 0;
-        PolyPolygon aPolyPoly;
+        tools::PolyPolygon aPolyPoly;
         for ( j = 0; j < rE.nBoundaryPathCount; j++ )
         {
             DXFPointArray aPtAry;
diff --git a/filter/source/graphicfilter/ios2met/ios2met.cxx b/filter/source/graphicfilter/ios2met/ios2met.cxx
index 89e1c9b..cc2d6bb 100644
--- a/filter/source/graphicfilter/ios2met/ios2met.cxx
+++ b/filter/source/graphicfilter/ios2met/ios2met.cxx
@@ -213,7 +213,7 @@ struct OSPalette {
 struct OSArea {
     OSArea    * pSucc;
     sal_uInt8   nFlags;
-    PolyPolygon aPPoly;
+    tools::PolyPolygon aPPoly;
     bool    bClosed;
     Color       aCol;
     Color       aBgCol;
@@ -226,7 +226,7 @@ struct OSPath
 {
     OSPath*     pSucc;
     sal_uInt32  nID;
-    PolyPolygon aPPoly;
+    tools::PolyPolygon aPPoly;
     bool    bClosed;
     bool    bStroke;
 };
@@ -395,7 +395,7 @@ private:
     bool    IsLineInfo();
     void        DrawPolyLine( const Polygon& rPolygon );
     void        DrawPolygon( const Polygon& rPolygon );
-    void        DrawPolyPolygon( const PolyPolygon& rPolygon );
+    void        DrawPolyPolygon( const tools::PolyPolygon& rPolygon );
     sal_uInt16  ReadBigEndianWord();
     sal_uLong   ReadBigEndian3BytesLong();
     sal_uLong   ReadLittleEndian3BytesLong();
@@ -493,7 +493,7 @@ void OS2METReader::DrawPolygon( const Polygon& rPolygon )
         pVirDev->DrawPolygon( rPolygon );
 }
 
-void OS2METReader::DrawPolyPolygon( const PolyPolygon& rPolyPolygon )
+void OS2METReader::DrawPolyPolygon( const tools::PolyPolygon& rPolyPolygon )
 {
     if ( IsLineInfo() )
     {
@@ -513,7 +513,7 @@ void OS2METReader::AddPointsToArea(const Polygon & rPoly)
     sal_uInt16 nOldSize, nNewSize,i;
 
     if (pAreaStack==NULL || rPoly.GetSize()==0) return;
-    PolyPolygon * pPP=&(pAreaStack->aPPoly);
+    tools::PolyPolygon * pPP=&(pAreaStack->aPPoly);
     if (pPP->Count()==0 || pAreaStack->bClosed) pPP->Insert(rPoly);
     else {
         Polygon aLastPoly(pPP->GetObject(pPP->Count()-1));
@@ -534,7 +534,7 @@ void OS2METReader::AddPointsToPath(const Polygon & rPoly)
     sal_uInt16 nOldSize, nNewSize,i;
 
     if (pPathStack==NULL || rPoly.GetSize()==0) return;
-    PolyPolygon * pPP=&(pPathStack->aPPoly);
+    tools::PolyPolygon * pPP=&(pPathStack->aPPoly);
     if (pPP->Count()==0 /*|| pPathStack->bClosed==sal_True*/) pPP->Insert(rPoly);
     else {
         Polygon aLastPoly(pPP->GetObject(pPP->Count()-1));
@@ -1190,7 +1190,7 @@ void OS2METReader::ReadPartialArc(bool bGivenPos, sal_uInt16 nOrderSize)
 void OS2METReader::ReadPolygons()
 {
     sal_uInt32 i,j,nNumPolys, nNumPoints;
-    PolyPolygon aPolyPoly;
+    tools::PolyPolygon aPolyPoly;
     Polygon aPoly;
     Point aPoint;
     sal_uInt8 nFlags;
diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx
index cac923a..2f6961b 100644
--- a/filter/source/msfilter/escherex.cxx
+++ b/filter/source/msfilter/escherex.cxx
@@ -862,7 +862,7 @@ bool EscherPropertyContainer::GetLineArrow( const bool bLineStart,
     if ( EscherPropertyValueHelper::GetPropertyValue(
             aAny, rXPropSet, sLine, false ) )
     {
-        PolyPolygon aPolyPoly( EscherPropertyContainer::GetPolyPolygon( aAny ) );
+        tools::PolyPolygon aPolyPoly( EscherPropertyContainer::GetPolyPolygon( aAny ) );
         if ( aPolyPoly.Count() && aPolyPoly[ 0 ].GetSize() )
         {
             bIsArrow = true;
@@ -1401,7 +1401,7 @@ GraphicObject lclDrawHatch( const ::com::sun::star::drawing::Hatch& rHatch, cons
     aOut.SetLineColor();
     aOut.SetFillColor(bFillBackground ? rBackColor : Color(COL_TRANSPARENT));
     aOut.DrawRect(rRect);
-    aOut.DrawHatch(PolyPolygon(rRect), Hatch((HatchStyle)rHatch.Style, Color(rHatch.Color), rHatch.Distance, (sal_uInt16)rHatch.Angle));
+    aOut.DrawHatch(tools::PolyPolygon(rRect), Hatch((HatchStyle)rHatch.Style, Color(rHatch.Color), rHatch.Distance, (sal_uInt16)rHatch.Angle));
     aMtf.Stop();
     aMtf.WindStart();
     aMtf.SetPrefMapMode(MapMode(MAP_100TH_MM));
@@ -1774,9 +1774,9 @@ bool EscherPropertyContainer::CreateGraphicProperties(
     return bRetValue;
 }
 
-PolyPolygon EscherPropertyContainer::GetPolyPolygon( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rXShape )
+tools::PolyPolygon EscherPropertyContainer::GetPolyPolygon( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rXShape )
 {
-    PolyPolygon aRetPolyPoly;
+    tools::PolyPolygon aRetPolyPoly;
     ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > aXPropSet;
     ::com::sun::star::uno::Any aAny( rXShape->queryInterface(
         cppu::UnoType<com::sun::star::beans::XPropertySet>::get()));
@@ -1801,12 +1801,12 @@ PolyPolygon EscherPropertyContainer::GetPolyPolygon( const ::com::sun::star::uno
     return aRetPolyPoly;
 }
 
-PolyPolygon EscherPropertyContainer::GetPolyPolygon( const ::com::sun::star::uno::Any& rAny )
+tools::PolyPolygon EscherPropertyContainer::GetPolyPolygon( const ::com::sun::star::uno::Any& rAny )
 {
     bool bNoError = true;
 
     Polygon aPolygon;
-    PolyPolygon aPolyPolygon;
+    tools::PolyPolygon aPolyPolygon;
 
     if ( rAny.getValueType() == cppu::UnoType<com::sun::star::drawing::PolyPolygonBezierCoords>::get())
     {
@@ -2024,7 +2024,7 @@ bool EscherPropertyContainer::CreatePolygonProperties(
     bool    bRetValue = true;
     bool    bLine = ( nFlags & ESCHER_CREATEPOLYGON_LINE ) != 0;
 
-    PolyPolygon aPolyPolygon;
+    tools::PolyPolygon aPolyPolygon;
 
     if ( pPolygon )
         aPolyPolygon.Insert( *pPolygon, POLYPOLY_APPEND );
@@ -2385,7 +2385,7 @@ bool EscherPropertyContainer::CreateConnectorProperties(
                                 {
                                     if ( EscherPropertyValueHelper::GetPropertyValue( aAny, aXPropSet, sEdgePath ) )
                                     {
-                                        PolyPolygon aPolyPolygon = GetPolyPolygon( aAny );
+                                        tools::PolyPolygon aPolyPolygon = GetPolyPolygon( aAny );
                                         Polygon aPoly;
                                         if ( aPolyPolygon.Count() > 0 )
                                         {
@@ -4792,7 +4792,7 @@ sal_uInt32 EscherConnectorListEntry::GetConnectorRule( bool bFirst )
 
                         // #i74631# use explicit constructor here. Also XPolyPolygon is not necessary,
                         // reducing to PolyPolygon
-                        const PolyPolygon aPolyPoly(((SdrPathObj*)pPoly)->GetPathPoly());
+                        const tools::PolyPolygon aPolyPoly(((SdrPathObj*)pPoly)->GetPathPoly());
 
                         for ( a = 0; a < aPolyPoly.Count(); a++ )
                         {
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx
index c2962de..5b4599e 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -518,7 +518,7 @@ void SvxMSDffManager::SolveSolver( const SvxMSDffSolverContainer& rSolver )
                                     {
                                         bool bNotFound = true;
 
-                                        PolyPolygon aPolyPoly( EscherPropertyContainer::GetPolyPolygon( aXShape ) );
+                                        tools::PolyPolygon aPolyPoly( EscherPropertyContainer::GetPolyPolygon( aXShape ) );
                                         sal_uInt16 k, j, nPolySize = aPolyPoly.Count();
                                         if ( nPolySize )
                                         {
diff --git a/filter/source/svg/svgfontexport.cxx b/filter/source/svg/svgfontexport.cxx
index b1dd2a5..4454b89 100644
--- a/filter/source/svg/svgfontexport.cxx
+++ b/filter/source/svg/svgfontexport.cxx
@@ -234,7 +234,7 @@ void SVGFontExport::implEmbedFont( const vcl::Font& rFont )
 
                     {
                         const Point         aPos;
-                        const PolyPolygon   aMissingGlyphPolyPoly( Rectangle( aPos, aSize ) );
+                        const tools::PolyPolygon   aMissingGlyphPolyPoly( Rectangle( aPos, aSize ) );
 
                         mrExport.AddAttribute( XML_NAMESPACE_NONE, "d", SVGActionWriter::GetPathString( aMissingGlyphPolyPoly, false ) );
 
@@ -258,7 +258,7 @@ void SVGFontExport::implEmbedFont( const vcl::Font& rFont )
 
 void SVGFontExport::implEmbedGlyph( OutputDevice& rOut, const OUString& rCellStr )
 {
-    PolyPolygon         aPolyPoly;
+    tools::PolyPolygon         aPolyPoly;
     const sal_Unicode   nSpace = ' ';
 
     if( rOut.GetTextOutline( aPolyPoly, rCellStr ) )
diff --git a/filter/source/svg/svgwriter.cxx b/filter/source/svg/svgwriter.cxx
index 5eb5bb4..97967fd 100644
--- a/filter/source/svg/svgwriter.cxx
+++ b/filter/source/svg/svgwriter.cxx
@@ -1698,11 +1698,11 @@ Polygon& SVGActionWriter::ImplMap( const Polygon& rPoly, Polygon& rDstPoly ) con
     return( rDstPoly );
 }
 
-PolyPolygon& SVGActionWriter::ImplMap( const PolyPolygon& rPolyPoly, PolyPolygon& rDstPolyPoly ) const
+tools::PolyPolygon& SVGActionWriter::ImplMap( const tools::PolyPolygon& rPolyPoly, tools::PolyPolygon& rDstPolyPoly ) const
 {
     Polygon aPoly;
 
-    rDstPolyPoly = PolyPolygon();
+    rDstPolyPoly = tools::PolyPolygon();
 
     for( sal_uInt16 i = 0, nCount = rPolyPoly.Count(); i < nCount; ++i )
     {
@@ -1712,7 +1712,7 @@ PolyPolygon& SVGActionWriter::ImplMap( const PolyPolygon& rPolyPoly, PolyPolygon
     return( rDstPolyPoly );
 }
 
-OUString SVGActionWriter::GetPathString( const PolyPolygon& rPolyPoly, bool bLine )
+OUString SVGActionWriter::GetPathString( const tools::PolyPolygon& rPolyPoly, bool bLine )
 {
     OUString         aPathData;
     const OUString   aBlank( " " );
@@ -1919,10 +1919,10 @@ void SVGActionWriter::ImplAddLineAttr( const LineInfo &rAttrs,
 
 }
 
-void SVGActionWriter::ImplWritePolyPolygon( const PolyPolygon& rPolyPoly, bool bLineOnly,
+void SVGActionWriter::ImplWritePolyPolygon( const tools::PolyPolygon& rPolyPoly, bool bLineOnly,
                                             bool bApplyMapping )
 {
-    PolyPolygon aPolyPoly;
+    tools::PolyPolygon aPolyPoly;
 
     if( bApplyMapping )
         ImplMap( rPolyPoly, aPolyPoly );
@@ -1940,7 +1940,7 @@ void SVGActionWriter::ImplWritePolyPolygon( const PolyPolygon& rPolyPoly, bool b
 
 void SVGActionWriter::ImplWriteShape( const SVGShapeDescriptor& rShape, bool bApplyMapping )
 {
-    PolyPolygon aPolyPoly;
+    tools::PolyPolygon aPolyPoly;
 
     if( bApplyMapping )
         ImplMap( rShape.maShapePolyPoly, aPolyPoly );
@@ -2029,7 +2029,7 @@ void SVGActionWriter::ImplWriteShape( const SVGShapeDescriptor& rShape, bool bAp
     ImplWritePolyPolygon( aPolyPoly, bLineOnly, false );
 }
 
-void SVGActionWriter::ImplWritePattern( const PolyPolygon& rPolyPoly,
+void SVGActionWriter::ImplWritePattern( const tools::PolyPolygon& rPolyPoly,
                                         const Hatch* pHatch,
                                         const Gradient* pGradient,
                                         sal_uInt32 nWriteFlags )
@@ -2086,7 +2086,7 @@ void SVGActionWriter::ImplWritePattern( const PolyPolygon& rPolyPoly,
     }
 }
 
-void SVGActionWriter::ImplWriteGradientEx( const PolyPolygon& rPolyPoly, const Gradient& rGradient,
+void SVGActionWriter::ImplWriteGradientEx( const tools::PolyPolygon& rPolyPoly, const Gradient& rGradient,
                                            sal_uInt32 nWriteFlags)
 {
     if ( rGradient.GetStyle() == GradientStyle_LINEAR ||
@@ -2100,7 +2100,7 @@ void SVGActionWriter::ImplWriteGradientEx( const PolyPolygon& rPolyPoly, const G
     }
 }
 
-void SVGActionWriter::ImplWriteGradientLinear( const PolyPolygon& rPolyPoly,
+void SVGActionWriter::ImplWriteGradientLinear( const tools::PolyPolygon& rPolyPoly,
                                                const Gradient& rGradient )
 {
     if( rPolyPoly.Count() )
@@ -2282,7 +2282,7 @@ void SVGActionWriter::ImplWriteMask( GDIMetaFile& rMtf,
         {
             SvXMLElementExport aElemMask( mrExport, XML_NAMESPACE_NONE, aXMLElemMask, true, true );
 
-            const PolyPolygon aPolyPolygon( PolyPolygon( Rectangle( rDestPt, rDestSize ) ) );
+            const tools::PolyPolygon aPolyPolygon( tools::PolyPolygon( Rectangle( rDestPt, rDestSize ) ) );
             Gradient aGradient( rGradient );
 
             // swap gradient stops to adopt SVG mask
@@ -2858,7 +2858,7 @@ void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf,
                 if( nWriteFlags & SVGWRITER_WRITE_FILL )
                 {
                     const MetaPolyPolygonAction*    pA = (const MetaPolyPolygonAction*) pAction;
-                    const PolyPolygon&              rPolyPoly = pA->GetPolyPolygon();
+                    const tools::PolyPolygon&              rPolyPoly = pA->GetPolyPolygon();
 
                     if( rPolyPoly.Count() )
                     {
@@ -2875,7 +2875,7 @@ void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf,
                 {
                     const MetaGradientAction*   pA = (const MetaGradientAction*) pAction;
                     const Polygon               aRectPoly( pA->GetRect() );
-                    const PolyPolygon           aRectPolyPoly( aRectPoly );
+                    const tools::PolyPolygon           aRectPolyPoly( aRectPoly );
 
                     ImplWriteGradientEx( aRectPolyPoly, pA->GetGradient(), nWriteFlags );
                 }
@@ -2907,7 +2907,7 @@ void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf,
                 if( nWriteFlags & SVGWRITER_WRITE_FILL )
                 {
                     const MetaTransparentAction*    pA = (const MetaTransparentAction*) pAction;
-                    const PolyPolygon&              rPolyPoly = pA->GetPolyPolygon();
+                    const tools::PolyPolygon&              rPolyPoly = pA->GetPolyPolygon();
 
                     if( rPolyPoly.Count() )
                     {
@@ -3010,7 +3010,7 @@ void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf,
 
                     if( bSkip )
                     {
-                        PolyPolygon aShapePolyPoly;
+                        tools::PolyPolygon aShapePolyPoly;
 
                         aFill.getPath( aShapePolyPoly );
 
@@ -3076,7 +3076,7 @@ void SVGActionWriter::ImplWriteActions( const GDIMetaFile& rMtf,
                 {
                     SvMemoryStream      aMemStm( (void*) pA->GetData(), pA->GetDataSize(), STREAM_READ );
                     SvtGraphicStroke    aStroke;
-                    PolyPolygon         aStartArrow, aEndArrow;
+                    tools::PolyPolygon         aStartArrow, aEndArrow;
 
                     ReadSvtGraphicStroke( aMemStm, aStroke );
                     aStroke.getStartArrow( aStartArrow );
diff --git a/filter/source/svg/svgwriter.hxx b/filter/source/svg/svgwriter.hxx
index 6e18668..459978c 100644
--- a/filter/source/svg/svgwriter.hxx
+++ b/filter/source/svg/svgwriter.hxx
@@ -127,7 +127,7 @@ public:
 
 struct SVGShapeDescriptor
 {
-    PolyPolygon                 maShapePolyPoly;
+    tools::PolyPolygon                 maShapePolyPoly;
     Color                       maShapeFillColor;
     Color                       maShapeLineColor;
     sal_Int32                   mnStrokeWidth;
@@ -334,7 +334,7 @@ private:
     Size&                   ImplMap( const Size& rSz, Size& rDstSz ) const;
     Rectangle&              ImplMap( const Rectangle& rRect, Rectangle& rDstRect ) const;
     Polygon&                ImplMap( const Polygon& rPoly, Polygon& rDstPoly ) const;
-    PolyPolygon&            ImplMap( const PolyPolygon& rPolyPoly, PolyPolygon& rDstPolyPoly ) const;
+    tools::PolyPolygon&            ImplMap( const tools::PolyPolygon& rPolyPoly, tools::PolyPolygon& rDstPolyPoly ) const;
 
     void                    ImplWriteLine( const Point& rPt1, const Point& rPt2, const Color* pLineColor = NULL,
                                            bool bApplyMapping = true );
@@ -342,14 +342,14 @@ private:
                                            bool bApplyMapping = true );
     void                    ImplWriteEllipse( const Point& rCenter, long nRadX, long nRadY,
                                               bool bApplyMapping = true );
-    void                    ImplWritePattern( const PolyPolygon& rPolyPoly, const Hatch* pHatch, const Gradient* pGradient, sal_uInt32 nWriteFlags );
+    void                    ImplWritePattern( const tools::PolyPolygon& rPolyPoly, const Hatch* pHatch, const Gradient* pGradient, sal_uInt32 nWriteFlags );
     void                    ImplAddLineAttr( const LineInfo &rAttrs,
                                              bool bApplyMapping = true );
-    void                    ImplWritePolyPolygon( const PolyPolygon& rPolyPoly, bool bLineOnly,
+    void                    ImplWritePolyPolygon( const tools::PolyPolygon& rPolyPoly, bool bLineOnly,
                                                   bool bApplyMapping = true );
     void                    ImplWriteShape( const SVGShapeDescriptor& rShape, bool bApplyMapping = true );
-    void                    ImplWriteGradientEx( const PolyPolygon& rPolyPoly, const Gradient& rGradient, sal_uInt32 nWriteFlags);
-    void                    ImplWriteGradientLinear( const PolyPolygon& rPolyPoly, const Gradient& rGradient );
+    void                    ImplWriteGradientEx( const tools::PolyPolygon& rPolyPoly, const Gradient& rGradient, sal_uInt32 nWriteFlags);
+    void                    ImplWriteGradientLinear( const tools::PolyPolygon& rPolyPoly, const Gradient& rGradient );
     void                    ImplWriteGradientStop( const Color& rColor, double fOffset );
     Color                   ImplGetColorWithIntensity( const Color& rColor, sal_uInt16 nIntensity );
     Color                   ImplGetGradientColor( const Color& rStartColor, const Color& rEndColor, double fOffset );
@@ -372,7 +372,7 @@ private:
 
 public:
 
-    static OUString  GetPathString( const PolyPolygon& rPolyPoly, bool bLine );
+    static OUString  GetPathString( const tools::PolyPolygon& rPolyPoly, bool bLine );
     static sal_uLong        GetChecksum( const MetaAction* pAction );
 
 public:
diff --git a/include/basegfx/polygon/b2dlinegeometry.hxx b/include/basegfx/polygon/b2dlinegeometry.hxx
index 9d6ae0b..ca9fb18 100644
--- a/include/basegfx/polygon/b2dlinegeometry.hxx
+++ b/include/basegfx/polygon/b2dlinegeometry.hxx
@@ -126,7 +126,7 @@ namespace basegfx
             to [F_PI .. 0.01 * F_PI].
 
             @return
-            The PolyPolygon containing the geometry of the extended line by
+            The tools::PolyPolygon containing the geometry of the extended line by
             it's line width. Contains bezier segments and edge roundings as
             needed and defined.
         */
diff --git a/include/basegfx/polygon/b2dpolygonclipper.hxx b/include/basegfx/polygon/b2dpolygonclipper.hxx
index 821ed5b..7fb2430 100644
--- a/include/basegfx/polygon/b2dpolygonclipper.hxx
+++ b/include/basegfx/polygon/b2dpolygonclipper.hxx
@@ -33,7 +33,7 @@ namespace basegfx
 
     namespace tools
     {
-        // This method clips the given PolyPolygon against a horizontal or vertical axis (parallell to X or Y axis). The axis is
+        // This method clips the given tools::PolyPolygon against a horizontal or vertical axis (parallell to X or Y axis). The axis is
         // defined by bParallelToXAxis (true -> it's parallel to the X-Axis of the coordinate system, else to the Y-Axis) and the
         // fValueOnOtherAxis (gives the translation to the coordinate system axis). For example, when You want to define
         // a clip axis parallel to X.Axis and 100 above it, use bParallelToXAxis = true and fValueOnOtherAxis = 100.
@@ -42,16 +42,16 @@ namespace basegfx
         BASEGFX_DLLPUBLIC B2DPolyPolygon clipPolyPolygonOnParallelAxis(const B2DPolyPolygon& rCandidate, bool bParallelToXAxis, bool bAboveAxis, double fValueOnOtherAxis, bool bStroke);
         BASEGFX_DLLPUBLIC B2DPolyPolygon clipPolygonOnParallelAxis(const B2DPolygon& rCandidate, bool bParallelToXAxis, bool bAboveAxis, double fValueOnOtherAxis, bool bStroke);
 
-        // Clip the given PolyPolygon against the given range. bInside defines if the result will contain the
+        // Clip the given tools::PolyPolygon against the given range. bInside defines if the result will contain the
         // parts which are contained in the range or vice versa.
         // The switch bStroke decides if the polygon is interpreted as area (false) or strokes (true).
         BASEGFX_DLLPUBLIC B2DPolyPolygon clipPolyPolygonOnRange(const B2DPolyPolygon& rCandidate, const B2DRange& rRange, bool bInside, bool bStroke);
         BASEGFX_DLLPUBLIC B2DPolyPolygon clipPolygonOnRange(const B2DPolygon& rCandidate, const B2DRange& rRange, bool bInside, bool bStroke);
 
-        // Clip given PolyPolygon against given clipping polygon.
+        // Clip given tools::PolyPolygon against given clipping polygon.
         // The switch bStroke decides if the polygon is interpreted as area (false) or strokes (true).
         // With stroke polygons, You get all line snippets inside rCip.
-        // With filled polygons, You get all PolyPolygon parts which were inside rClip.
+        // With filled polygons, You get all tools::PolyPolygon parts which were inside rClip.
         // The switch bInside decides if the parts inside the clip polygon or outside shall be created.
         // The clip polygon is always assumed closed, even when it's isClosed() is false.
         BASEGFX_DLLPUBLIC B2DPolyPolygon clipPolyPolygonOnPolyPolygon(const B2DPolyPolygon& rCandidate, const B2DPolyPolygon& rClip, bool bInside, bool bStroke);
diff --git a/include/basegfx/polygon/b2dpolygoncutandtouch.hxx b/include/basegfx/polygon/b2dpolygoncutandtouch.hxx
index c5a2a0fb..89cf101 100644
--- a/include/basegfx/polygon/b2dpolygoncutandtouch.hxx
+++ b/include/basegfx/polygon/b2dpolygoncutandtouch.hxx
@@ -34,7 +34,7 @@ namespace basegfx
         // extra points there. Result will have no touches or intersections on an edge, only on points
         BASEGFX_DLLPUBLIC B2DPolygon addPointsAtCutsAndTouches(const B2DPolygon& rCandidate);
 
-        // look for polypolygon-intersections and polypolygon-touches (point of poly A on an edge of poly B) in given PolyPolygon and add
+        // look for polypolygon-intersections and polypolygon-touches (point of poly A on an edge of poly B) in given tools::PolyPolygon and add
         // extra points there. Result will have no touches or intersections between contained polygons on an edge, only on points. For
         // convenience, the correction for self-intersections for each member polygon will be used, too.
         // Changed: Self intersections are searched by default, but may be switched off by 2nd parameter.
diff --git a/include/basegfx/polygon/b2dpolygontools.hxx b/include/basegfx/polygon/b2dpolygontools.hxx
index 4e5fc51..0fb90cb 100644
--- a/include/basegfx/polygon/b2dpolygontools.hxx
+++ b/include/basegfx/polygon/b2dpolygontools.hxx
@@ -292,7 +292,7 @@ namespace basegfx
         // third coordinate.
         BASEGFX_DLLPUBLIC B3DPolygon createB3DPolygonFromB2DPolygon(const B2DPolygon& rCandidate, double fZCoordinate = 0.0);
 
-        // create 2d PolyPolygon from given 3d PolyPolygon. All coordinates are transformed using the given
+        // create 2d tools::PolyPolygon from given 3d PolyPolygon. All coordinates are transformed using the given
         // matrix and the resulting x,y is used to form the new polygon.
         BASEGFX_DLLPUBLIC B2DPolygon createB2DPolygonFromB3DPolygon(const B3DPolygon& rCandidate, const B3DHomMatrix& rMat);
 
diff --git a/include/basegfx/polygon/b2dpolypolygon.hxx b/include/basegfx/polygon/b2dpolypolygon.hxx
index 203db76..07bffcd 100644
--- a/include/basegfx/polygon/b2dpolypolygon.hxx
+++ b/include/basegfx/polygon/b2dpolypolygon.hxx
@@ -111,7 +111,7 @@ namespace basegfx
         // flip polygon direction
         void flip();
 
-        // test if PolyPolygon has double points
+        // test if tools::PolyPolygon has double points
         bool hasDoublePoints() const;
 
         // remove double points, at the begin/end and follow-ups, too
diff --git a/include/basegfx/polygon/b2dpolypolygoncutter.hxx b/include/basegfx/polygon/b2dpolypolygoncutter.hxx
index 3171432..cfa2449 100644
--- a/include/basegfx/polygon/b2dpolypolygoncutter.hxx
+++ b/include/basegfx/polygon/b2dpolypolygoncutter.hxx
@@ -138,7 +138,7 @@ namespace basegfx
             @param rInput
             The source PolyPolygons
 
-            @return A single PolyPolygon containing the Or-merged result
+            @return A single tools::PolyPolygon containing the Or-merged result
         */
         BASEGFX_DLLPUBLIC B2DPolyPolygon mergeToSinglePolyPolygon(const B2DPolyPolygonVector& rInput);
 
diff --git a/include/basegfx/polygon/b2dpolypolygontools.hxx b/include/basegfx/polygon/b2dpolypolygontools.hxx
index e92fe5a..11fed47 100644
--- a/include/basegfx/polygon/b2dpolypolygontools.hxx
+++ b/include/basegfx/polygon/b2dpolypolygontools.hxx
@@ -124,7 +124,7 @@ namespace basegfx
         };
 
         /** the PointIndexSet itself; it allows to define a 'selection'of
-            points in a PolyPolygon by giving the polygon and point index.
+            points in a tools::PolyPolygon by giving the polygon and point index.
             Adding points double makes no sense, hence the std::set
          */
         typedef std::set< PointIndex > PointIndexSet;
@@ -181,11 +181,11 @@ namespace basegfx
         // organisation, e.g. same amount of polygons
         BASEGFX_DLLPUBLIC B2DPolyPolygon interpolate(const B2DPolyPolygon& rOld1, const B2DPolyPolygon& rOld2, double t);
 
-        // create 3d PolyPolygon from given 2d PolyPolygon. The given fZCoordinate is used to expand the
+        // create 3d tools::PolyPolygon from given 2d PolyPolygon. The given fZCoordinate is used to expand the
         // third coordinate.
         BASEGFX_DLLPUBLIC B3DPolyPolygon createB3DPolyPolygonFromB2DPolyPolygon(const B2DPolyPolygon& rCandidate, double fZCoordinate = 0.0);
 
-        // create 2d PolyPolygon from given 3d PolyPolygon. All coordinates are transformed using the given
+        // create 2d tools::PolyPolygon from given 3d PolyPolygon. All coordinates are transformed using the given
         // matrix and the resulting x,y is used to form the new polygon.
         BASEGFX_DLLPUBLIC B2DPolyPolygon createB2DPolyPolygonFromB3DPolyPolygon(const B3DPolyPolygon& rCandidate, const B3DHomMatrix& rMat);
 
@@ -205,7 +205,7 @@ namespace basegfx
         /** Predicate whether a given poly-polygon is a rectangle.
 
             @param rPoly
-            PolyPolygon to check
+            tools::PolyPolygon to check
 
             @return true, if the poly-polygon describes a rectangle
             (contains exactly one polygon, polygon is closed, and the
diff --git a/include/basegfx/polygon/b2dtrapezoid.hxx b/include/basegfx/polygon/b2dtrapezoid.hxx
index 569f142..d56c48f 100644
--- a/include/basegfx/polygon/b2dtrapezoid.hxx
+++ b/include/basegfx/polygon/b2dtrapezoid.hxx
@@ -107,7 +107,7 @@ namespace basegfx
             double fLineWidth = 1.0);
 
         // create trapezoids for all edges of the given polyPolygon. The closed state of
-        // the PolyPolygon is taken into account. If curves are contaned, the default
+        // the tools::PolyPolygon is taken into account. If curves are contaned, the default
         // AdaptiveSubdivision will be used.
         BASEGFX_DLLPUBLIC void createLineTrapezoidFromB2DPolyPolygon(
             B2DTrapezoidVector& ro_Result,
diff --git a/include/basegfx/polygon/b3dpolypolygon.hxx b/include/basegfx/polygon/b3dpolypolygon.hxx
index 461a325..3ca1e10 100644
--- a/include/basegfx/polygon/b3dpolypolygon.hxx
+++ b/include/basegfx/polygon/b3dpolypolygon.hxx
@@ -95,7 +95,7 @@ namespace basegfx
         // flip polygon direction
         void flip();
 
-        // test if PolyPolygon has double points
+        // test if tools::PolyPolygon has double points
         bool hasDoublePoints() const;
 
         // remove double points, at the begin/end and follow-ups, too
diff --git a/include/cppcanvas/canvas.hxx b/include/cppcanvas/canvas.hxx
index 9b5ce34..2104dee 100644
--- a/include/cppcanvas/canvas.hxx
+++ b/include/cppcanvas/canvas.hxx
@@ -47,7 +47,7 @@ namespace cppcanvas
     class PolyPolygon;
     class Canvas;
 
-    // forward declaration, since PolyPolygon also references Canvas
+    // forward declaration, since tools::PolyPolygon also references Canvas
     typedef ::boost::shared_ptr< PolyPolygon > PolyPolygonSharedPtr;
 
     // forward declaration, since cloneCanvas() also references Canvas
diff --git a/include/cppcanvas/canvasgraphic.hxx b/include/cppcanvas/canvasgraphic.hxx
index ca3db47..09d8018 100644
--- a/include/cppcanvas/canvasgraphic.hxx
+++ b/include/cppcanvas/canvasgraphic.hxx
@@ -37,7 +37,7 @@ namespace basegfx
 
 namespace cppcanvas
 {
-    // forward declaration, since PolyPolygon also derives from CanvasGraphic
+    // forward declaration, since tools::PolyPolygon also derives from CanvasGraphic
     typedef ::boost::shared_ptr< class PolyPolygon > PolyPolygonSharedPtr;
 
 
diff --git a/include/cppcanvas/polypolygon.hxx b/include/cppcanvas/polypolygon.hxx
index 1db71e2..3cb1863 100644
--- a/include/cppcanvas/polypolygon.hxx
+++ b/include/cppcanvas/polypolygon.hxx
@@ -37,12 +37,12 @@ namespace com { namespace sun { namespace star { namespace rendering
 } } } }
 
 
-/* Definition of PolyPolygon interface */
+/* Definition of tools::PolyPolygon interface */
 
 namespace cppcanvas
 {
 
-    /** This interface defines a PolyPolygon canvas object
+    /** This interface defines a tools::PolyPolygon canvas object
 
         Consider this object part of the view, and not of the model
         data. Although the given polygon is typically copied and held
diff --git a/include/cppcanvas/vclfactory.hxx b/include/cppcanvas/vclfactory.hxx
index 9d85248..a48c624 100644
--- a/include/cppcanvas/vclfactory.hxx
+++ b/include/cppcanvas/vclfactory.hxx
@@ -35,7 +35,7 @@ namespace vcl { class Window; }
 class Bitmap;
 class BitmapEx;
 class Polygon;
-class PolyPolygon;
+namespace tools { class PolyPolygon; }
 class Size;
 class Graphic;
 class GDIMetaFile;
diff --git a/include/drawinglayer/primitive2d/maskprimitive2d.hxx b/include/drawinglayer/primitive2d/maskprimitive2d.hxx
index 1aae7c1..b7b2e10 100644
--- a/include/drawinglayer/primitive2d/maskprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/maskprimitive2d.hxx
@@ -34,16 +34,16 @@ namespace drawinglayer
         /** MaskPrimitive2D class
 
             This is the central masking primitive. It's a grouping
-            primitive and contains a PolyPolygon which defines the visible
+            primitive and contains a tools::PolyPolygon which defines the visible
             area. Only visualisation parts of the Child primitive sequence
-            inside of the mask PolyPolygon is defined to be visible.
+            inside of the mask tools::PolyPolygon is defined to be visible.
 
             This primitive should be handled by a renderer. If it is not handled,
             it decomposes to its Child content, and thus the visualisation would
             contaiun no clips.
 
             The geometrc range of this primitive is completely defined by the Mask
-            PolyPolygon since by definition nothing outside of the mask is visible.
+            tools::PolyPolygon since by definition nothing outside of the mask is visible.
          */
         class DRAWINGLAYER_DLLPUBLIC MaskPrimitive2D : public GroupPrimitive2D
         {
diff --git a/include/drawinglayer/primitive2d/patternfillprimitive2d.hxx b/include/drawinglayer/primitive2d/patternfillprimitive2d.hxx
index a22a891..9776978 100644
--- a/include/drawinglayer/primitive2d/patternfillprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/patternfillprimitive2d.hxx
@@ -33,10 +33,10 @@ namespace drawinglayer
     {
         /** PatternFillPrimitive2D class
 
-            This primitive allows filling a given PolyPolygon with a pattern
+            This primitive allows filling a given tools::PolyPolygon with a pattern
             defined by a sequence of primitives which are mapped to  the unit range.
             The pattern is defined using a reference range which defines a rectangular
-            area relative to the PolyPolygon (in unit coordinates) which is virtually
+            area relative to the tools::PolyPolygon (in unit coordinates) which is virtually
             infinitely repeated.
          */
         class DRAWINGLAYER_DLLPUBLIC PatternFillPrimitive2D : public BufferedDecompositionPrimitive2D
diff --git a/include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx b/include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx
index e659522..f80e519 100644
--- a/include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx
@@ -201,14 +201,14 @@ namespace drawinglayer
     {
         /** PolyPolygonColorPrimitive2D class
 
-            This primitive defines a PolyPolygon filled with a single color.
+            This primitive defines a tools::PolyPolygon filled with a single color.
             This is one of the non-decomposable primitives, so a renderer
             should process it.
          */
         class DRAWINGLAYER_DLLPUBLIC PolyPolygonColorPrimitive2D : public BasePrimitive2D
         {
         private:
-            /// the PolyPolygon geometry
+            /// the tools::PolyPolygon geometry
             basegfx::B2DPolyPolygon                 maPolyPolygon;
 
             /// the polygon fill color
@@ -245,14 +245,14 @@ namespace drawinglayer
     {
         /** PolyPolygonColorPrimitive2D class
 
-            This primitive defines a PolyPolygon filled with a gradient. The
+            This primitive defines a tools::PolyPolygon filled with a gradient. The
             decomosition will create a MaskPrimitive2D containing a
             FillGradientPrimitive2D.
          */
         class DRAWINGLAYER_DLLPUBLIC PolyPolygonGradientPrimitive2D : public BufferedDecompositionPrimitive2D
         {
         private:
-            /// the PolyPolygon geometry
+            /// the tools::PolyPolygon geometry
             basegfx::B2DPolyPolygon                     maPolyPolygon;
 
             /// the definition range
@@ -298,14 +298,14 @@ namespace drawinglayer
     {
         /** PolyPolygonHatchPrimitive2D class
 
-            This primitive defines a PolyPolygon filled with a hatch. The
+            This primitive defines a tools::PolyPolygon filled with a hatch. The
             decomosition will create a MaskPrimitive2D containing a
             FillHatchPrimitive2D.
          */
         class DRAWINGLAYER_DLLPUBLIC PolyPolygonHatchPrimitive2D : public BufferedDecompositionPrimitive2D
         {
         private:
-            /// the PolyPolygon geometry
+            /// the tools::PolyPolygon geometry
             basegfx::B2DPolyPolygon                     maPolyPolygon;
 
             /// the definition range
@@ -357,14 +357,14 @@ namespace drawinglayer
     {
         /** PolyPolygonGraphicPrimitive2D class
 
-            This primitive defines a PolyPolygon filled with bitmap data
+            This primitive defines a tools::PolyPolygon filled with bitmap data
             (including transparence). The decomosition will create a MaskPrimitive2D
             containing a FillGraphicPrimitive2D.
          */
         class DRAWINGLAYER_DLLPUBLIC PolyPolygonGraphicPrimitive2D : public BufferedDecompositionPrimitive2D
         {
         private:
-            /// the PolyPolygon geometry
+            /// the tools::PolyPolygon geometry
             basegfx::B2DPolyPolygon                     maPolyPolygon;
 

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list