drawinglayer/inc/pch/precompiled_drawinglayer.hxx                    |   11 
 drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx       |    2 
 drawinglayer/source/primitive2d/borderlineprimitive2d.cxx            |    2 
 drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx          |    2 
 drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx             |    2 
 drawinglayer/source/primitive2d/mediaprimitive2d.cxx                 |    2 
 drawinglayer/source/primitive2d/polygonprimitive2d.cxx               |    3 
 drawinglayer/source/primitive2d/polypolygonprimitive2d.cxx           |   10 
 drawinglayer/source/primitive2d/sdrdecompositiontools2d.cxx          |    3 
 drawinglayer/source/primitive2d/svggradientprimitive2d.cxx           |    2 
 drawinglayer/source/primitive2d/textprimitive2d.cxx                  |    2 
 drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx   |    2 
 drawinglayer/source/processor2d/contourextractor2d.cxx               |    2 
 drawinglayer/source/processor2d/hittestprocessor2d.cxx               |    2 
 drawinglayer/source/processor2d/linegeometryextractor2d.cxx          |    2 
 drawinglayer/source/processor2d/textaspolygonextractor2d.cxx         |    3 
 drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx           |    8 
 drawinglayer/source/processor2d/vclpixelprocessor2d.cxx              |    9 
 drawinglayer/source/processor2d/vclprocessor2d.cxx                   |    9 
 drawinglayer/source/processor3d/geometry2dextractor.cxx              |    2 
 drawinglayer/source/processor3d/shadow3dextractor.cxx                |    2 
 drawinglayer/source/tools/emfphelperdata.cxx                         |    8 
 drawinglayer/source/tools/primitive2dxmldump.cxx                     |    8 
 drawinglayer/source/tools/wmfemfhelper.cxx                           |    9 
 include/drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx     |   67 +
 include/drawinglayer/primitive2d/PolyPolygonGradientPrimitive2D.hxx  |   76 +
 include/drawinglayer/primitive2d/PolyPolygonGraphicPrimitive2D.hxx   |   73 +
 include/drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx  |   79 +
 include/drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx     |   83 ++
 include/drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx    |   88 ++
 include/drawinglayer/primitive2d/PolyPolygonSelectionPrimitive2D.hxx |   85 ++
 include/drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx    |   87 ++
 include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx          |  415 
----------
 sc/source/ui/view/hintwin.cxx                                        |    2 
 sc/source/ui/view/overlayobject.cxx                                  |    2 
 sfx2/inc/pch/precompiled_sfx.hxx                                     |   12 
 sfx2/source/control/emojiviewitem.cxx                                |    2 
 sfx2/source/control/templateviewitem.cxx                             |    3 
 sfx2/source/control/thumbnailview.cxx                                |    2 
 sfx2/source/control/thumbnailviewitem.cxx                            |    2 
 sfx2/source/dialog/infobar.cxx                                       |    3 
 svgio/source/svgreader/svgstyleattributes.cxx                        |    3 
 svx/inc/pch/precompiled_svxcore.hxx                                  |   79 -
 svx/source/sdr/contact/viewcontactofsdrpage.cxx                      |    3 
 svx/source/sdr/contact/viewobjectcontactofpageobj.cxx                |    2 
 svx/source/sdr/contact/viewobjectcontactofsdrole2obj.cxx             |    2 
 svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx                |    2 
 svx/source/sdr/overlay/overlayobjectcell.cxx                         |    2 
 svx/source/sdr/overlay/overlaypolypolygon.cxx                        |    3 
 svx/source/sdr/overlay/overlayrollingrectangle.cxx                   |    4 
 svx/source/sdr/overlay/overlayselection.cxx                          |    3 
 svx/source/sdr/overlay/overlaytools.cxx                              |    4 
 svx/source/sdr/overlay/overlaytriangle.cxx                           |    2 
 svx/source/sdr/primitive2d/sdrdecompositiontools.cxx                 |    5 
 svx/source/svdraw/svddrgmt.cxx                                       |    3 
 svx/source/table/tablehandles.cxx                                    |    2 
 svx/source/xoutdev/xtabgrdt.cxx                                      |    2 
 svx/source/xoutdev/xtabhtch.cxx                                      |    2 
 sw/inc/pch/precompiled_sw.hxx                                        |    3 
 sw/source/core/crsr/overlayrangesoutline.cxx                         |    2 
 sw/source/core/layout/paintfrm.cxx                                   |    2 
 sw/source/uibase/docvw/AnchorOverlayObject.cxx                       |    2 
 sw/source/uibase/docvw/DashedLine.cxx                                |    2 
 sw/source/uibase/docvw/HeaderFooterWin.cxx                           |    2 
 sw/source/uibase/docvw/OverlayRanges.cxx                             |    3 
 sw/source/uibase/docvw/PageBreakWin.cxx                              |    3 
 66 files changed, 806 insertions(+), 524 deletions(-)

New commits:
commit ab5ef15366b473db1068cc5a9e402c4f4f2e6fcd
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Thu Apr 2 14:23:08 2020 +0200
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Fri Apr 3 17:31:55 2020 +0200

    split up polypolygonprimitive2d.hxx into separate files
    
    This patch splits the polypolygonprimitive2d.hxx into:
    - PolyPolygonColorPrimitive2D.hxx
    - PolyPolygonGradientPrimitive2D.hxx
    - PolyPolygonGraphicPrimitive2D.hxx
    - PolyPolygonHairlinePrimitive2D.hxx
    - PolyPolygonHatchPrimitive2D.hxx
    - PolyPolygonMarkerPrimitive2D.hxx
    - PolyPolygonSelectionPrimitive2D.hxx
    - PolyPolygonStrokePrimitive2D.hxx
    ... and fixes the include files and pre-compiled headers
    
    Change-Id: I23982e0c81e8992f69e14cbac8e86858266b9999
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91603
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/drawinglayer/inc/pch/precompiled_drawinglayer.hxx 
b/drawinglayer/inc/pch/precompiled_drawinglayer.hxx
index b5fb42d97e6e..25a23a7d3a9e 100644
--- a/drawinglayer/inc/pch/precompiled_drawinglayer.hxx
+++ b/drawinglayer/inc/pch/precompiled_drawinglayer.hxx
@@ -13,7 +13,7 @@
  manual changes will be rewritten by the next run of update_pch.sh (which 
presumably
  also fixes all possible problems, so it's usually better to use it).
 
- Generated on 2020-03-20 13:37:39 using:
+ Generated on 2020-04-02 22:28:40 using:
  ./bin/update_pch drawinglayer drawinglayer --cutoff=4 --exclude:system 
--exclude:module --exclude:local
 
  If after updating build fails, use the following command to locate 
conflicting headers:
@@ -138,6 +138,13 @@
 #include <drawinglayer/geometry/viewinformation2d.hxx>
 #include <drawinglayer/geometry/viewinformation3d.hxx>
 #include <drawinglayer/primitive2d/CommonTypes.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGradientPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGraphicPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx>
 #include <drawinglayer/primitive2d/Primitive2DContainer.hxx>
 #include <drawinglayer/primitive2d/Primitive2DVisitor.hxx>
 #include <drawinglayer/primitive2d/Tools.hxx>
@@ -155,7 +162,7 @@
 #include <drawinglayer/primitive2d/objectinfoprimitive2d.hxx>
 #include <drawinglayer/primitive2d/pagepreviewprimitive2d.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/primitivetools2d.hxx>
 #include <drawinglayer/primitive2d/svggradientprimitive2d.hxx>
 #include <drawinglayer/primitive2d/textdecoratedprimitive2d.hxx>
 #include <drawinglayer/primitive2d/textlayoutdevice.hxx>
diff --git a/drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx 
b/drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx
index c8cabfa35770..ba0f47193b49 100644
--- a/drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx
@@ -20,7 +20,7 @@
 #include <drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/geometry/viewinformation2d.hxx>
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
 
diff --git a/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx 
b/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
index d2b669747a5b..71dfe1629085 100644
--- a/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
@@ -22,7 +22,7 @@
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 
 #include <algorithm>
 
diff --git a/drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx 
b/drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx
index bab1b5e7dfdc..5368016069a9 100644
--- a/drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx
@@ -21,7 +21,7 @@
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <texture/texture.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
 
 
diff --git a/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx 
b/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx
index ceffef12e4b3..c408c04701b5 100644
--- a/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx
@@ -19,7 +19,7 @@
 
 #include <primitive2d/fillhatchprimitive2d.hxx>
 #include <texture/texture.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
diff --git a/drawinglayer/source/primitive2d/mediaprimitive2d.cxx 
b/drawinglayer/source/primitive2d/mediaprimitive2d.cxx
index 956871c2adef..5158c6822492 100644
--- a/drawinglayer/source/primitive2d/mediaprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/mediaprimitive2d.cxx
@@ -20,7 +20,7 @@
 #include <drawinglayer/primitive2d/mediaprimitive2d.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <vcl/GraphicObject.hxx>
 #include <drawinglayer/primitive2d/graphicprimitive2d.hxx>
 #include <drawinglayer/geometry/viewinformation2d.hxx>
diff --git a/drawinglayer/source/primitive2d/polygonprimitive2d.cxx 
b/drawinglayer/source/primitive2d/polygonprimitive2d.cxx
index a93deae3817f..3331bbf53c5c 100644
--- a/drawinglayer/source/primitive2d/polygonprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/polygonprimitive2d.cxx
@@ -19,7 +19,8 @@
 
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
 #include <drawinglayer/geometry/viewinformation2d.hxx>
 #include <basegfx/polygon/b2dlinegeometry.hxx>
diff --git a/drawinglayer/source/primitive2d/polypolygonprimitive2d.cxx 
b/drawinglayer/source/primitive2d/polypolygonprimitive2d.cxx
index 959ae69a2159..02e3d5705f95 100644
--- a/drawinglayer/source/primitive2d/polypolygonprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/polypolygonprimitive2d.cxx
@@ -17,7 +17,15 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGradientPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGraphicPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonSelectionPrimitive2D.hxx>
+
 #include <basegfx/polygon/b2dpolypolygontools.hxx>
 #include <drawinglayer/primitive2d/fillgradientprimitive2d.hxx>
 #include <drawinglayer/primitive2d/maskprimitive2d.hxx>
diff --git a/drawinglayer/source/primitive2d/sdrdecompositiontools2d.cxx 
b/drawinglayer/source/primitive2d/sdrdecompositiontools2d.cxx
index ee4a7a08497b..5080a92a8cd6 100644
--- a/drawinglayer/source/primitive2d/sdrdecompositiontools2d.cxx
+++ b/drawinglayer/source/primitive2d/sdrdecompositiontools2d.cxx
@@ -21,7 +21,8 @@
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <basegfx/matrix/b2dhommatrix.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx>
 #include <drawinglayer/primitive2d/hiddengeometryprimitive2d.hxx>
 
 
diff --git a/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx 
b/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
index 20d3182e5ba8..94346d9e5b90 100644
--- a/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
@@ -19,7 +19,7 @@
 
 #include <drawinglayer/primitive2d/svggradientprimitive2d.hxx>
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx>
 #include <basegfx/matrix/b2dhommatrixtools.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
diff --git a/drawinglayer/source/primitive2d/textprimitive2d.cxx 
b/drawinglayer/source/primitive2d/textprimitive2d.cxx
index f4fbab7c2bfa..02aa6195ebb6 100644
--- a/drawinglayer/source/primitive2d/textprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/textprimitive2d.cxx
@@ -20,7 +20,7 @@
 #include <drawinglayer/primitive2d/textprimitive2d.hxx>
 #include <drawinglayer/primitive2d/textlayoutdevice.hxx>
 #include <basegfx/polygon/b2dpolypolygon.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
 #include <primitive2d/texteffectprimitive2d.hxx>
 #include <basegfx/matrix/b2dhommatrixtools.hxx>
diff --git a/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx 
b/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx
index 8c245c63a61d..70cfe675046e 100644
--- a/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx
@@ -21,7 +21,7 @@
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <basegfx/color/bcolor.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/transparenceprimitive2d.hxx>
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
diff --git a/drawinglayer/source/processor2d/contourextractor2d.cxx 
b/drawinglayer/source/processor2d/contourextractor2d.cxx
index eea65f9c7128..8abec2f50f9d 100644
--- a/drawinglayer/source/processor2d/contourextractor2d.cxx
+++ b/drawinglayer/source/processor2d/contourextractor2d.cxx
@@ -20,7 +20,7 @@
 #include <drawinglayer/processor2d/contourextractor2d.hxx>
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/bitmapprimitive2d.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <drawinglayer/primitive2d/metafileprimitive2d.hxx>
diff --git a/drawinglayer/source/processor2d/hittestprocessor2d.cxx 
b/drawinglayer/source/processor2d/hittestprocessor2d.cxx
index 159ef863d0c2..525dceaef429 100644
--- a/drawinglayer/source/processor2d/hittestprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/hittestprocessor2d.cxx
@@ -21,7 +21,7 @@
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
 #include <drawinglayer/primitive2d/transformprimitive2d.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <basegfx/polygon/b2dpolypolygontools.hxx>
 #include <drawinglayer/primitive2d/transparenceprimitive2d.hxx>
diff --git a/drawinglayer/source/processor2d/linegeometryextractor2d.cxx 
b/drawinglayer/source/processor2d/linegeometryextractor2d.cxx
index f252e6813c53..9262e23e4509 100644
--- a/drawinglayer/source/processor2d/linegeometryextractor2d.cxx
+++ b/drawinglayer/source/processor2d/linegeometryextractor2d.cxx
@@ -20,7 +20,7 @@
 #include <drawinglayer/processor2d/linegeometryextractor2d.hxx>
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/transformprimitive2d.hxx>
 
 
diff --git a/drawinglayer/source/processor2d/textaspolygonextractor2d.cxx 
b/drawinglayer/source/processor2d/textaspolygonextractor2d.cxx
index 7d51b43ec70a..e3a584f86172 100644
--- a/drawinglayer/source/processor2d/textaspolygonextractor2d.cxx
+++ b/drawinglayer/source/processor2d/textaspolygonextractor2d.cxx
@@ -19,7 +19,8 @@
 
 #include <drawinglayer/processor2d/textaspolygonextractor2d.hxx>
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 #include <drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx>
 #include <drawinglayer/primitive2d/transformprimitive2d.hxx>
diff --git a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx 
b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
index f3d6bf0c281d..77d83a649ad5 100644
--- a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
@@ -26,7 +26,13 @@
 #include <vcl/gradient.hxx>
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
 #include <drawinglayer/primitive2d/textprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGradientPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGraphicPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 #include <drawinglayer/primitive2d/bitmapprimitive2d.hxx>
 #include <drawinglayer/primitive2d/maskprimitive2d.hxx>
diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx 
b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
index 2bbfe6b1ec50..972c08481040 100644
--- a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
@@ -24,7 +24,14 @@
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
 #include <drawinglayer/primitive2d/Tools.hxx>
 #include <drawinglayer/primitive2d/textprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGradientPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGraphicPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonSelectionPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 #include <drawinglayer/primitive2d/bitmapprimitive2d.hxx>
 #include <drawinglayer/primitive2d/fillgraphicprimitive2d.hxx>
diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx 
b/drawinglayer/source/processor2d/vclprocessor2d.cxx
index 72c8a038ebaa..ced2cc96998c 100644
--- a/drawinglayer/source/processor2d/vclprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx
@@ -28,7 +28,14 @@
 #include <drawinglayer/primitive2d/bitmapprimitive2d.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <drawinglayer/primitive2d/fillgraphicprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGradientPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGraphicPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonSelectionPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/maskprimitive2d.hxx>
 #include <basegfx/polygon/b2dpolypolygontools.hxx>
 #include "vclhelperbufferdevice.hxx"
diff --git a/drawinglayer/source/processor3d/geometry2dextractor.cxx 
b/drawinglayer/source/processor3d/geometry2dextractor.cxx
index f91452cdf866..c90eebe6819d 100644
--- a/drawinglayer/source/processor3d/geometry2dextractor.cxx
+++ b/drawinglayer/source/processor3d/geometry2dextractor.cxx
@@ -26,7 +26,7 @@
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 #include <drawinglayer/primitive3d/polypolygonprimitive3d.hxx>
 #include <basegfx/polygon/b2dpolypolygontools.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <primitive3d/textureprimitive3d.hxx>
 
 
diff --git a/drawinglayer/source/processor3d/shadow3dextractor.cxx 
b/drawinglayer/source/processor3d/shadow3dextractor.cxx
index 99664ce03d35..69f0ecb8156f 100644
--- a/drawinglayer/source/processor3d/shadow3dextractor.cxx
+++ b/drawinglayer/source/processor3d/shadow3dextractor.cxx
@@ -27,7 +27,7 @@
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 #include <drawinglayer/primitive3d/polypolygonprimitive3d.hxx>
 #include <basegfx/polygon/b2dpolypolygontools.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive3d/drawinglayer_primitivetypes3d.hxx>
 
 
diff --git a/drawinglayer/source/tools/emfphelperdata.cxx 
b/drawinglayer/source/tools/emfphelperdata.cxx
index 7ec2b165de9b..a52ad4b5e8cf 100644
--- a/drawinglayer/source/tools/emfphelperdata.cxx
+++ b/drawinglayer/source/tools/emfphelperdata.cxx
@@ -30,7 +30,13 @@
 #include <basegfx/curve/b2dcubicbezier.hxx>
 #include <wmfemfhelper.hxx>
 #include <drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGradientPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGraphicPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/svggradientprimitive2d.hxx>
 #include <drawinglayer/primitive2d/textdecoratedprimitive2d.hxx>
 #include <drawinglayer/primitive2d/textprimitive2d.hxx>
diff --git a/drawinglayer/source/tools/primitive2dxmldump.cxx 
b/drawinglayer/source/tools/primitive2dxmldump.cxx
index 7d706849c63c..489161736b19 100644
--- a/drawinglayer/source/tools/primitive2dxmldump.cxx
+++ b/drawinglayer/source/tools/primitive2dxmldump.cxx
@@ -19,7 +19,13 @@
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
 #include <drawinglayer/primitive2d/Tools.hxx>
 #include <drawinglayer/primitive2d/transformprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGradientPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGraphicPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/hiddengeometryprimitive2d.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 #include <drawinglayer/primitive2d/textprimitive2d.hxx>
diff --git a/drawinglayer/source/tools/wmfemfhelper.cxx 
b/drawinglayer/source/tools/wmfemfhelper.cxx
index b68f5b15cc92..d147c2747127 100644
--- a/drawinglayer/source/tools/wmfemfhelper.cxx
+++ b/drawinglayer/source/tools/wmfemfhelper.cxx
@@ -24,7 +24,14 @@
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 #include <drawinglayer/primitive2d/transformprimitive2d.hxx>
 #include <basegfx/matrix/b2dhommatrixtools.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGradientPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGraphicPrimitive2D.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <drawinglayer/primitive2d/discretebitmapprimitive2d.hxx>
 #include <drawinglayer/primitive2d/bitmapprimitive2d.hxx>
diff --git a/include/drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx 
b/include/drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx
new file mode 100644
index 000000000000..8bb4000d12b8
--- /dev/null
+++ b/include/drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx
@@ -0,0 +1,67 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include <drawinglayer/drawinglayerdllapi.h>
+#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
+#include <drawinglayer/primitive2d/primitivetools2d.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <basegfx/color/bcolor.hxx>
+
+namespace drawinglayer::primitive2d
+{
+/** PolyPolygonColorPrimitive2D class
+
+    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 final : public 
BasePrimitive2D
+{
+private:
+    /// the tools::PolyPolygon geometry
+    basegfx::B2DPolyPolygon maPolyPolygon;
+
+    /// the polygon fill color
+    basegfx::BColor maBColor;
+
+public:
+    /// constructor
+    PolyPolygonColorPrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
+                                const basegfx::BColor& rBColor);
+
+    /// data read access
+    const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return 
maPolyPolygon; }
+    const basegfx::BColor& getBColor() const { return maBColor; }
+
+    /// compare operator
+    virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
+
+    /// get range
+    virtual basegfx::B2DRange
+    getB2DRange(const geometry::ViewInformation2D& rViewInformation) const 
override;
+
+    /// provide unique ID
+    virtual sal_uInt32 getPrimitive2DID() const override;
+};
+
+} // end of namespace primitive2d::drawinglayer
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git 
a/include/drawinglayer/primitive2d/PolyPolygonGradientPrimitive2D.hxx 
b/include/drawinglayer/primitive2d/PolyPolygonGradientPrimitive2D.hxx
new file mode 100644
index 000000000000..3b20921b5ccb
--- /dev/null
+++ b/include/drawinglayer/primitive2d/PolyPolygonGradientPrimitive2D.hxx
@@ -0,0 +1,76 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include <drawinglayer/drawinglayerdllapi.h>
+#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
+#include <drawinglayer/primitive2d/primitivetools2d.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <drawinglayer/attribute/fillgradientattribute.hxx>
+
+namespace drawinglayer::primitive2d
+{
+/** PolyPolygonColorPrimitive2D class
+
+    This primitive defines a tools::PolyPolygon filled with a gradient. The
+    decomosition will create a MaskPrimitive2D containing a
+    FillGradientPrimitive2D.
+ */
+class DRAWINGLAYER_DLLPUBLIC PolyPolygonGradientPrimitive2D final
+    : public BufferedDecompositionPrimitive2D
+{
+private:
+    /// the tools::PolyPolygon geometry
+    basegfx::B2DPolyPolygon maPolyPolygon;
+
+    /// the definition range
+    basegfx::B2DRange maDefinitionRange;
+
+    /// the gradient definition
+    attribute::FillGradientAttribute maFillGradient;
+
+    /// local decomposition.
+    virtual void
+    create2DDecomposition(Primitive2DContainer& rContainer,
+                          const geometry::ViewInformation2D& rViewInformation) 
const override;
+
+public:
+    /// constructors. The one without definition range will use output range 
as definition range
+    PolyPolygonGradientPrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
+                                   const attribute::FillGradientAttribute& 
rFillGradient);
+    PolyPolygonGradientPrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
+                                   const basegfx::B2DRange& rDefinitionRange,
+                                   const attribute::FillGradientAttribute& 
rFillGradient);
+
+    /// data read access
+    const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return 
maPolyPolygon; }
+    const basegfx::B2DRange& getDefinitionRange() const { return 
maDefinitionRange; }
+    const attribute::FillGradientAttribute& getFillGradient() const { return 
maFillGradient; }
+
+    /// compare operator
+    virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
+
+    /// provide unique ID
+    virtual sal_uInt32 getPrimitive2DID() const override;
+};
+
+} // end of namespace primitive2d::drawinglayer
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/drawinglayer/primitive2d/PolyPolygonGraphicPrimitive2D.hxx 
b/include/drawinglayer/primitive2d/PolyPolygonGraphicPrimitive2D.hxx
new file mode 100644
index 000000000000..0b3910936dd5
--- /dev/null
+++ b/include/drawinglayer/primitive2d/PolyPolygonGraphicPrimitive2D.hxx
@@ -0,0 +1,73 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include <drawinglayer/drawinglayerdllapi.h>
+#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
+#include <drawinglayer/primitive2d/primitivetools2d.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <drawinglayer/attribute/fillgraphicattribute.hxx>
+
+namespace drawinglayer::primitive2d
+{
+/** PolyPolygonGraphicPrimitive2D class
+
+    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 final
+    : public BufferedDecompositionPrimitive2D
+{
+private:
+    /// the tools::PolyPolygon geometry
+    basegfx::B2DPolyPolygon maPolyPolygon;
+
+    /// the definition range
+    basegfx::B2DRange maDefinitionRange;
+
+    /// the bitmap fill definition (may include tiling)
+    attribute::FillGraphicAttribute maFillGraphic;
+
+    /// local decomposition.
+    virtual void
+    create2DDecomposition(Primitive2DContainer& rContainer,
+                          const geometry::ViewInformation2D& rViewInformation) 
const override;
+
+public:
+    PolyPolygonGraphicPrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
+                                  const basegfx::B2DRange& rDefinitionRange,
+                                  const attribute::FillGraphicAttribute& 
rFillGraphic);
+
+    /// data read access
+    const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return 
maPolyPolygon; }
+    const basegfx::B2DRange& getDefinitionRange() const { return 
maDefinitionRange; }
+    const attribute::FillGraphicAttribute& getFillGraphic() const { return 
maFillGraphic; }
+
+    /// compare operator
+    virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
+
+    /// provide unique ID
+    virtual sal_uInt32 getPrimitive2DID() const override;
+};
+
+} // end of namespace primitive2d::drawinglayer
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git 
a/include/drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx 
b/include/drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx
new file mode 100644
index 000000000000..482345140306
--- /dev/null
+++ b/include/drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx
@@ -0,0 +1,79 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include <drawinglayer/drawinglayerdllapi.h>
+
+#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
+#include <drawinglayer/attribute/fillgraphicattribute.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <drawinglayer/attribute/lineattribute.hxx>
+#include <drawinglayer/attribute/strokeattribute.hxx>
+#include <drawinglayer/attribute/fillgradientattribute.hxx>
+#include <drawinglayer/attribute/fillhatchattribute.hxx>
+#include <drawinglayer/primitive2d/primitivetools2d.hxx>
+#include <basegfx/color/bcolor.hxx>
+
+namespace drawinglayer::primitive2d
+{
+/** PolyPolygonHairlinePrimitive2D class
+
+    This primitive defines a multi-PolygonHairlinePrimitive2D and is
+    just for convenience. The definition is not different from the single
+        defined PolygonHairlinePrimitive2Ds.
+ */
+class DRAWINGLAYER_DLLPUBLIC PolyPolygonHairlinePrimitive2D final
+    : public BufferedDecompositionPrimitive2D
+{
+private:
+    /// the hairline geometry
+    basegfx::B2DPolyPolygon maPolyPolygon;
+
+    /// the hairline color
+    basegfx::BColor maBColor;
+
+    /// local decomposition.
+    virtual void
+    create2DDecomposition(Primitive2DContainer& rContainer,
+                          const geometry::ViewInformation2D& rViewInformation) 
const override;
+
+public:
+    /// constructor
+    PolyPolygonHairlinePrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
+                                   const basegfx::BColor& rBColor);
+
+    /// data read access
+    const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return 
maPolyPolygon; }
+    const basegfx::BColor& getBColor() const { return maBColor; }
+
+    /// compare operator
+    virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
+
+    /// get range
+    virtual basegfx::B2DRange
+    getB2DRange(const geometry::ViewInformation2D& rViewInformation) const 
override;
+
+    /// provide unique ID
+    virtual sal_uInt32 getPrimitive2DID() const override;
+};
+
+} // end of namespace primitive2d::drawinglayer
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx 
b/include/drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx
new file mode 100644
index 000000000000..4078c87858f3
--- /dev/null
+++ b/include/drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx
@@ -0,0 +1,83 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include <drawinglayer/drawinglayerdllapi.h>
+#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
+#include <drawinglayer/primitive2d/primitivetools2d.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <basegfx/color/bcolor.hxx>
+#include <drawinglayer/attribute/fillhatchattribute.hxx>
+
+namespace drawinglayer::primitive2d
+{
+/** PolyPolygonHatchPrimitive2D class
+
+    This primitive defines a tools::PolyPolygon filled with a hatch. The
+    decomosition will create a MaskPrimitive2D containing a
+    FillHatchPrimitive2D.
+ */
+class DRAWINGLAYER_DLLPUBLIC PolyPolygonHatchPrimitive2D final
+    : public BufferedDecompositionPrimitive2D
+{
+private:
+    /// the tools::PolyPolygon geometry
+    basegfx::B2DPolyPolygon maPolyPolygon;
+
+    /// the definition range
+    basegfx::B2DRange maDefinitionRange;
+
+    /// the hatch background color (if used)
+    basegfx::BColor maBackgroundColor;
+
+    /// the hatch definition
+    attribute::FillHatchAttribute maFillHatch;
+
+    /// local decomposition.
+    virtual void
+    create2DDecomposition(Primitive2DContainer& rContainer,
+                          const geometry::ViewInformation2D& rViewInformation) 
const override;
+
+public:
+    /// constructors. The one without definition range will use output range 
as definition range
+    PolyPolygonHatchPrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
+                                const basegfx::BColor& rBackgroundColor,
+                                const attribute::FillHatchAttribute& 
rFillHatch);
+    PolyPolygonHatchPrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
+                                const basegfx::B2DRange& rDefinitionRange,
+                                const basegfx::BColor& rBackgroundColor,
+                                const attribute::FillHatchAttribute& 
rFillHatch);
+
+    /// data read access
+    const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return 
maPolyPolygon; }
+    const basegfx::B2DRange& getDefinitionRange() const { return 
maDefinitionRange; }
+    const basegfx::BColor& getBackgroundColor() const { return 
maBackgroundColor; }
+    const attribute::FillHatchAttribute& getFillHatch() const { return 
maFillHatch; }
+
+    /// compare operator
+    virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
+
+    /// provide unique ID
+    virtual sal_uInt32 getPrimitive2DID() const override;
+};
+
+} // end of namespace primitive2d::drawinglayer
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx 
b/include/drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx
new file mode 100644
index 000000000000..dabd673ab1fa
--- /dev/null
+++ b/include/drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx
@@ -0,0 +1,88 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include <drawinglayer/drawinglayerdllapi.h>
+
+#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
+#include <drawinglayer/attribute/fillgraphicattribute.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <drawinglayer/attribute/lineattribute.hxx>
+#include <drawinglayer/attribute/strokeattribute.hxx>
+#include <drawinglayer/attribute/fillgradientattribute.hxx>
+#include <drawinglayer/attribute/fillhatchattribute.hxx>
+#include <drawinglayer/primitive2d/primitivetools2d.hxx>
+#include <basegfx/color/bcolor.hxx>
+
+namespace drawinglayer::primitive2d
+{
+// PolyPolygonMarkerPrimitive2D class
+
+/** PolyPolygonMarkerPrimitive2D class
+
+    This primitive defines a multi-PolygonMarkerPrimitive2D and is
+    just for convenience. The definition is not different from the single
+    defined PolygonMarkerPrimitive2Ds.
+ */
+class DRAWINGLAYER_DLLPUBLIC PolyPolygonMarkerPrimitive2D final
+    : public BufferedDecompositionPrimitive2D
+{
+private:
+    /// the marker hairline geometry
+    basegfx::B2DPolyPolygon maPolyPolygon;
+
+    /// the two colors
+    basegfx::BColor maRGBColorA;
+    basegfx::BColor maRGBColorB;
+
+    /// the dash distance in 'pixels'
+    double mfDiscreteDashLength;
+
+    /// local decomposition.
+    virtual void
+    create2DDecomposition(Primitive2DContainer& rContainer,
+                          const geometry::ViewInformation2D& rViewInformation) 
const override;
+
+public:
+    /// constructor
+    PolyPolygonMarkerPrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
+                                 const basegfx::BColor& rRGBColorA,
+                                 const basegfx::BColor& rRGBColorB, double 
fDiscreteDashLength);
+
+    // data read access
+    const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return 
maPolyPolygon; }
+    const basegfx::BColor& getRGBColorA() const { return maRGBColorA; }
+    const basegfx::BColor& getRGBColorB() const { return maRGBColorB; }
+    double getDiscreteDashLength() const { return mfDiscreteDashLength; }
+
+    /// compare operator
+    virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
+
+    /// get range
+    virtual basegfx::B2DRange
+    getB2DRange(const geometry::ViewInformation2D& rViewInformation) const 
override;
+
+    /// provide unique ID
+    virtual sal_uInt32 getPrimitive2DID() const override;
+};
+
+} // end of namespace primitive2d::drawinglayer
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git 
a/include/drawinglayer/primitive2d/PolyPolygonSelectionPrimitive2D.hxx 
b/include/drawinglayer/primitive2d/PolyPolygonSelectionPrimitive2D.hxx
new file mode 100644
index 000000000000..d88d7f66fc9f
--- /dev/null
+++ b/include/drawinglayer/primitive2d/PolyPolygonSelectionPrimitive2D.hxx
@@ -0,0 +1,85 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include <drawinglayer/drawinglayerdllapi.h>
+#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
+#include <drawinglayer/primitive2d/primitivetools2d.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <basegfx/color/bcolor.hxx>
+
+namespace drawinglayer::primitive2d
+{
+/** PolyPolygonSelectionPrimitive2D class
+
+    This primitive defines a tools::PolyPolygon which gets filled with a 
defined color
+    and a defined transparence, but also gets extended ('grown') by the given
+    discrete size (thus being a view-dependent primitive)
+ */
+class DRAWINGLAYER_DLLPUBLIC PolyPolygonSelectionPrimitive2D final
+    : public DiscreteMetricDependentPrimitive2D
+{
+private:
+    /// the tools::PolyPolygon geometry
+    basegfx::B2DPolyPolygon maPolyPolygon;
+
+    /// the color
+    basegfx::BColor maColor;
+
+    /// the transparence [0.0 .. 1.0]
+    double mfTransparence;
+
+    /// the discrete grow size ('pixels'), only positive values allowed
+    double mfDiscreteGrow;
+
+    /// draw polygons filled when fill is set
+    bool mbFill : 1;
+
+    /// local decomposition.
+    virtual void
+    create2DDecomposition(Primitive2DContainer& rContainer,
+                          const geometry::ViewInformation2D& rViewInformation) 
const override;
+
+public:
+    /// constructor
+    PolyPolygonSelectionPrimitive2D(const basegfx::B2DPolyPolygon& 
rPolyPolygon,
+                                    const basegfx::BColor& rColor, double 
fTransparence,
+                                    double fDiscreteGrow, bool bFill);
+
+    /// data read access
+    const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return 
maPolyPolygon; }
+    const basegfx::BColor& getColor() const { return maColor; }
+    double getTransparence() const { return mfTransparence; }
+    double getDiscreteGrow() const { return mfDiscreteGrow; }
+    bool getFill() const { return mbFill; }
+
+    /// compare operator
+    virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
+
+    /// get range
+    virtual basegfx::B2DRange
+    getB2DRange(const geometry::ViewInformation2D& rViewInformation) const 
override;
+
+    /// provide unique ID
+    virtual sal_uInt32 getPrimitive2DID() const override;
+};
+} // end of namespace primitive2d::drawinglayer
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx 
b/include/drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx
new file mode 100644
index 000000000000..8463c80783e1
--- /dev/null
+++ b/include/drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx
@@ -0,0 +1,87 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include <drawinglayer/drawinglayerdllapi.h>
+
+#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
+#include <drawinglayer/attribute/fillgraphicattribute.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <drawinglayer/attribute/lineattribute.hxx>
+#include <drawinglayer/attribute/strokeattribute.hxx>
+#include <drawinglayer/attribute/fillgradientattribute.hxx>
+#include <drawinglayer/attribute/fillhatchattribute.hxx>
+#include <drawinglayer/primitive2d/primitivetools2d.hxx>
+#include <basegfx/color/bcolor.hxx>
+
+namespace drawinglayer::primitive2d
+{
+/** PolyPolygonStrokePrimitive2D class
+
+    This primitive defines a multi-PolygonStrokePrimitive2D and is
+    just for convenience. The definition is not different from the single
+    defined PolygonStrokePrimitive2Ds.
+ */
+class DRAWINGLAYER_DLLPUBLIC PolyPolygonStrokePrimitive2D final
+    : public BufferedDecompositionPrimitive2D
+{
+private:
+    /// the line geometry
+    basegfx::B2DPolyPolygon maPolyPolygon;
+
+    /// the line attributes like width, join and color
+    attribute::LineAttribute maLineAttribute;
+
+    /// the line stroking (if used)
+    attribute::StrokeAttribute maStrokeAttribute;
+
+    /// local decomposition.
+    virtual void
+    create2DDecomposition(Primitive2DContainer& rContainer,
+                          const geometry::ViewInformation2D& rViewInformation) 
const override;
+
+public:
+    /// constructor
+    PolyPolygonStrokePrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
+                                 const attribute::LineAttribute& 
rLineAttribute,
+                                 const attribute::StrokeAttribute& 
rStrokeAttribute);
+
+    PolyPolygonStrokePrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
+                                 const attribute::LineAttribute& 
rLineAttribute);
+
+    /// data read access
+    const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return 
maPolyPolygon; }
+    const attribute::LineAttribute& getLineAttribute() const { return 
maLineAttribute; }
+    const attribute::StrokeAttribute& getStrokeAttribute() const { return 
maStrokeAttribute; }
+
+    /// compare operator
+    virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
+
+    /// get range
+    virtual basegfx::B2DRange
+    getB2DRange(const geometry::ViewInformation2D& rViewInformation) const 
override;
+
+    /// provide unique ID
+    virtual sal_uInt32 getPrimitive2DID() const override;
+};
+
+} // end of namespace primitive2d::drawinglayer
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx 
b/include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx
deleted file mode 100644
index bb3637aad394..000000000000
--- a/include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx
+++ /dev/null
@@ -1,415 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#pragma once
-
-#include <drawinglayer/drawinglayerdllapi.h>
-
-#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
-#include <drawinglayer/attribute/fillgraphicattribute.hxx>
-#include <basegfx/polygon/b2dpolypolygon.hxx>
-#include <drawinglayer/attribute/lineattribute.hxx>
-#include <drawinglayer/attribute/strokeattribute.hxx>
-#include <drawinglayer/attribute/fillgradientattribute.hxx>
-#include <drawinglayer/attribute/fillhatchattribute.hxx>
-#include <drawinglayer/primitive2d/primitivetools2d.hxx>
-#include <basegfx/color/bcolor.hxx>
-
-namespace drawinglayer::primitive2d
-{
-// PolyPolygonHairlinePrimitive2D class
-
-/** PolyPolygonHairlinePrimitive2D class
-
-    This primitive defines a multi-PolygonHairlinePrimitive2D and is
-    just for convenience. The definition is not different from the single
-        defined PolygonHairlinePrimitive2Ds.
- */
-class DRAWINGLAYER_DLLPUBLIC PolyPolygonHairlinePrimitive2D final
-    : public BufferedDecompositionPrimitive2D
-{
-private:
-    /// the hairline geometry
-    basegfx::B2DPolyPolygon maPolyPolygon;
-
-    /// the hairline color
-    basegfx::BColor maBColor;
-
-    /// local decomposition.
-    virtual void
-    create2DDecomposition(Primitive2DContainer& rContainer,
-                          const geometry::ViewInformation2D& rViewInformation) 
const override;
-
-public:
-    /// constructor
-    PolyPolygonHairlinePrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
-                                   const basegfx::BColor& rBColor);
-
-    /// data read access
-    const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return 
maPolyPolygon; }
-    const basegfx::BColor& getBColor() const { return maBColor; }
-
-    /// compare operator
-    virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
-
-    /// get range
-    virtual basegfx::B2DRange
-    getB2DRange(const geometry::ViewInformation2D& rViewInformation) const 
override;
-
-    /// provide unique ID
-    virtual sal_uInt32 getPrimitive2DID() const override;
-};
-
-// PolyPolygonMarkerPrimitive2D class
-
-/** PolyPolygonMarkerPrimitive2D class
-
-    This primitive defines a multi-PolygonMarkerPrimitive2D and is
-    just for convenience. The definition is not different from the single
-    defined PolygonMarkerPrimitive2Ds.
- */
-class DRAWINGLAYER_DLLPUBLIC PolyPolygonMarkerPrimitive2D final
-    : public BufferedDecompositionPrimitive2D
-{
-private:
-    /// the marker hairline geometry
-    basegfx::B2DPolyPolygon maPolyPolygon;
-
-    /// the two colors
-    basegfx::BColor maRGBColorA;
-    basegfx::BColor maRGBColorB;
-
-    /// the dash distance in 'pixels'
-    double mfDiscreteDashLength;
-
-    /// local decomposition.
-    virtual void
-    create2DDecomposition(Primitive2DContainer& rContainer,
-                          const geometry::ViewInformation2D& rViewInformation) 
const override;
-
-public:
-    /// constructor
-    PolyPolygonMarkerPrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
-                                 const basegfx::BColor& rRGBColorA,
-                                 const basegfx::BColor& rRGBColorB, double 
fDiscreteDashLength);
-
-    // data read access
-    const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return 
maPolyPolygon; }
-    const basegfx::BColor& getRGBColorA() const { return maRGBColorA; }
-    const basegfx::BColor& getRGBColorB() const { return maRGBColorB; }
-    double getDiscreteDashLength() const { return mfDiscreteDashLength; }
-
-    /// compare operator
-    virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
-
-    /// get range
-    virtual basegfx::B2DRange
-    getB2DRange(const geometry::ViewInformation2D& rViewInformation) const 
override;
-
-    /// provide unique ID
-    virtual sal_uInt32 getPrimitive2DID() const override;
-};
-
-// PolyPolygonStrokePrimitive2D class
-
-/** PolyPolygonStrokePrimitive2D class
-
-    This primitive defines a multi-PolygonStrokePrimitive2D and is
-    just for convenience. The definition is not different from the single
-    defined PolygonStrokePrimitive2Ds.
- */
-class DRAWINGLAYER_DLLPUBLIC PolyPolygonStrokePrimitive2D final
-    : public BufferedDecompositionPrimitive2D
-{
-private:
-    /// the line geometry
-    basegfx::B2DPolyPolygon maPolyPolygon;
-
-    /// the line attributes like width, join and color
-    attribute::LineAttribute maLineAttribute;
-
-    /// the line stroking (if used)
-    attribute::StrokeAttribute maStrokeAttribute;
-
-    /// local decomposition.
-    virtual void
-    create2DDecomposition(Primitive2DContainer& rContainer,
-                          const geometry::ViewInformation2D& rViewInformation) 
const override;
-
-public:
-    /// constructor
-    PolyPolygonStrokePrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
-                                 const attribute::LineAttribute& 
rLineAttribute,
-                                 const attribute::StrokeAttribute& 
rStrokeAttribute);
-
-    PolyPolygonStrokePrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
-                                 const attribute::LineAttribute& 
rLineAttribute);
-
-    /// data read access
-    const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return 
maPolyPolygon; }
-    const attribute::LineAttribute& getLineAttribute() const { return 
maLineAttribute; }
-    const attribute::StrokeAttribute& getStrokeAttribute() const { return 
maStrokeAttribute; }
-
-    /// compare operator
-    virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
-
-    /// get range
-    virtual basegfx::B2DRange
-    getB2DRange(const geometry::ViewInformation2D& rViewInformation) const 
override;
-
-    /// provide unique ID
-    virtual sal_uInt32 getPrimitive2DID() const override;
-};
-
-// PolyPolygonColorPrimitive2D class
-
-/** PolyPolygonColorPrimitive2D class
-
-    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 final : public 
BasePrimitive2D
-{
-private:
-    /// the tools::PolyPolygon geometry
-    basegfx::B2DPolyPolygon maPolyPolygon;
-
-    /// the polygon fill color
-    basegfx::BColor maBColor;
-
-public:
-    /// constructor
-    PolyPolygonColorPrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
-                                const basegfx::BColor& rBColor);
-
-    /// data read access
-    const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return 
maPolyPolygon; }
-    const basegfx::BColor& getBColor() const { return maBColor; }
-
-    /// compare operator
-    virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
-
-    /// get range
-    virtual basegfx::B2DRange
-    getB2DRange(const geometry::ViewInformation2D& rViewInformation) const 
override;
-
-    /// provide unique ID
-    virtual sal_uInt32 getPrimitive2DID() const override;
-};
-
-// PolyPolygonGradientPrimitive2D class
-
-/** PolyPolygonColorPrimitive2D class
-
-    This primitive defines a tools::PolyPolygon filled with a gradient. The
-    decomosition will create a MaskPrimitive2D containing a
-    FillGradientPrimitive2D.
- */
-class DRAWINGLAYER_DLLPUBLIC PolyPolygonGradientPrimitive2D final
-    : public BufferedDecompositionPrimitive2D
-{
-private:
-    /// the tools::PolyPolygon geometry
-    basegfx::B2DPolyPolygon maPolyPolygon;
-
-    /// the definition range
-    basegfx::B2DRange maDefinitionRange;
-
-    /// the gradient definition
-    attribute::FillGradientAttribute maFillGradient;
-
-    /// local decomposition.
-    virtual void
-    create2DDecomposition(Primitive2DContainer& rContainer,
-                          const geometry::ViewInformation2D& rViewInformation) 
const override;
-
-public:
-    /// constructors. The one without definition range will use output range 
as definition range
-    PolyPolygonGradientPrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
-                                   const attribute::FillGradientAttribute& 
rFillGradient);
-    PolyPolygonGradientPrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
-                                   const basegfx::B2DRange& rDefinitionRange,
-                                   const attribute::FillGradientAttribute& 
rFillGradient);
-
-    /// data read access
-    const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return 
maPolyPolygon; }
-    const basegfx::B2DRange& getDefinitionRange() const { return 
maDefinitionRange; }
-    const attribute::FillGradientAttribute& getFillGradient() const { return 
maFillGradient; }
-
-    /// compare operator
-    virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
-
-    /// provide unique ID
-    virtual sal_uInt32 getPrimitive2DID() const override;
-};
-
-// PolyPolygonHatchPrimitive2D class
-
-/** PolyPolygonHatchPrimitive2D class
-
-    This primitive defines a tools::PolyPolygon filled with a hatch. The
-    decomosition will create a MaskPrimitive2D containing a
-    FillHatchPrimitive2D.
- */
-class DRAWINGLAYER_DLLPUBLIC PolyPolygonHatchPrimitive2D final
-    : public BufferedDecompositionPrimitive2D
-{
-private:
-    /// the tools::PolyPolygon geometry
-    basegfx::B2DPolyPolygon maPolyPolygon;
-
-    /// the definition range
-    basegfx::B2DRange maDefinitionRange;
-
-    /// the hatch background color (if used)
-    basegfx::BColor maBackgroundColor;
-
-    /// the hatch definition
-    attribute::FillHatchAttribute maFillHatch;
-
-    /// local decomposition.
-    virtual void
-    create2DDecomposition(Primitive2DContainer& rContainer,
-                          const geometry::ViewInformation2D& rViewInformation) 
const override;
-
-public:
-    /// constructors. The one without definition range will use output range 
as definition range
-    PolyPolygonHatchPrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
-                                const basegfx::BColor& rBackgroundColor,
-                                const attribute::FillHatchAttribute& 
rFillHatch);
-    PolyPolygonHatchPrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
-                                const basegfx::B2DRange& rDefinitionRange,
-                                const basegfx::BColor& rBackgroundColor,
-                                const attribute::FillHatchAttribute& 
rFillHatch);
-
-    /// data read access
-    const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return 
maPolyPolygon; }
-    const basegfx::B2DRange& getDefinitionRange() const { return 
maDefinitionRange; }
-    const basegfx::BColor& getBackgroundColor() const { return 
maBackgroundColor; }
-    const attribute::FillHatchAttribute& getFillHatch() const { return 
maFillHatch; }
-
-    /// compare operator
-    virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
-
-    /// provide unique ID
-    virtual sal_uInt32 getPrimitive2DID() const override;
-};
-
-// PolyPolygonGraphicPrimitive2D class
-
-/** PolyPolygonGraphicPrimitive2D class
-
-    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 final
-    : public BufferedDecompositionPrimitive2D
-{
-private:
-    /// the tools::PolyPolygon geometry
-    basegfx::B2DPolyPolygon maPolyPolygon;
-
-    /// the definition range
-    basegfx::B2DRange maDefinitionRange;
-
-    /// the bitmap fill definition (may include tiling)
-    attribute::FillGraphicAttribute maFillGraphic;
-
-    /// local decomposition.
-    virtual void
-    create2DDecomposition(Primitive2DContainer& rContainer,
-                          const geometry::ViewInformation2D& rViewInformation) 
const override;
-
-public:
-    PolyPolygonGraphicPrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon,
-                                  const basegfx::B2DRange& rDefinitionRange,
-                                  const attribute::FillGraphicAttribute& 
rFillGraphic);
-
-    /// data read access
-    const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return 
maPolyPolygon; }
-    const basegfx::B2DRange& getDefinitionRange() const { return 
maDefinitionRange; }
-    const attribute::FillGraphicAttribute& getFillGraphic() const { return 
maFillGraphic; }
-
-    /// compare operator
-    virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
-
-    /// provide unique ID
-    virtual sal_uInt32 getPrimitive2DID() const override;
-};
-
-// PolyPolygonSelectionPrimitive2D class
-
-/** PolyPolygonSelectionPrimitive2D class
-
-    This primitive defines a tools::PolyPolygon which gets filled with a 
defined color
-    and a defined transparence, but also gets extended ('grown') by the given
-    discrete size (thus being a view-dependent primitive)
- */
-class DRAWINGLAYER_DLLPUBLIC PolyPolygonSelectionPrimitive2D final
-    : public DiscreteMetricDependentPrimitive2D
-{
-private:
-    /// the tools::PolyPolygon geometry
-    basegfx::B2DPolyPolygon maPolyPolygon;
-
-    /// the color
-    basegfx::BColor maColor;
-
-    /// the transparence [0.0 .. 1.0]
-    double mfTransparence;
-
-    /// the discrete grow size ('pixels'), only positive values allowed
-    double mfDiscreteGrow;
-
-    /// draw polygons filled when fill is set
-    bool mbFill : 1;
-
-    /// local decomposition.
-    virtual void
-    create2DDecomposition(Primitive2DContainer& rContainer,
-                          const geometry::ViewInformation2D& rViewInformation) 
const override;
-
-public:
-    /// constructor
-    PolyPolygonSelectionPrimitive2D(const basegfx::B2DPolyPolygon& 
rPolyPolygon,
-                                    const basegfx::BColor& rColor, double 
fTransparence,
-                                    double fDiscreteGrow, bool bFill);
-
-    /// data read access
-    const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return 
maPolyPolygon; }
-    const basegfx::BColor& getColor() const { return maColor; }
-    double getTransparence() const { return mfTransparence; }
-    double getDiscreteGrow() const { return mfDiscreteGrow; }
-    bool getFill() const { return mbFill; }
-
-    /// compare operator
-    virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
-
-    /// get range
-    virtual basegfx::B2DRange
-    getB2DRange(const geometry::ViewInformation2D& rViewInformation) const 
override;
-
-    /// provide unique ID
-    virtual sal_uInt32 getPrimitive2DID() const override;
-};
-} // end of namespace primitive2d::drawinglayer
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/view/hintwin.cxx b/sc/source/ui/view/hintwin.cxx
index 2a1a9570b0b7..d690ab33d002 100644
--- a/sc/source/ui/view/hintwin.cxx
+++ b/sc/source/ui/view/hintwin.cxx
@@ -22,7 +22,7 @@
 #include <drawinglayer/attribute/fontattribute.hxx>
 #include <drawinglayer/geometry/viewinformation2d.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/textlayoutdevice.hxx>
 #include <drawinglayer/primitive2d/textprimitive2d.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
diff --git a/sc/source/ui/view/overlayobject.cxx 
b/sc/source/ui/view/overlayobject.cxx
index 06b8a9ba627e..50702170c043 100644
--- a/sc/source/ui/view/overlayobject.cxx
+++ b/sc/source/ui/view/overlayobject.cxx
@@ -23,7 +23,7 @@
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <svx/sdr/overlay/overlaymanager.hxx>
 #include <drawinglayer/primitive2d/baseprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx>
 #include <officecfg/Office/Common.hxx>
 
 using sdr::overlay::OverlayObject;
diff --git a/sfx2/inc/pch/precompiled_sfx.hxx b/sfx2/inc/pch/precompiled_sfx.hxx
index ac2f242cc5ef..0230f34ebec9 100644
--- a/sfx2/inc/pch/precompiled_sfx.hxx
+++ b/sfx2/inc/pch/precompiled_sfx.hxx
@@ -13,7 +13,7 @@
  manual changes will be rewritten by the next run of update_pch.sh (which 
presumably
  also fixes all possible problems, so it's usually better to use it).
 
- Generated on 2020-02-17 12:26:08 using:
+ Generated on 2020-04-02 13:40:55 using:
  ./bin/update_pch sfx2 sfx --cutoff=3 --exclude:system --exclude:module 
--exclude:local
 
  If after updating build fails, use the following command to locate 
conflicting headers:
@@ -31,6 +31,7 @@
 #include <map>
 #include <memory>
 #include <new>
+#include <optional>
 #include <ostream>
 #include <set>
 #include <stddef.h>
@@ -130,6 +131,7 @@
 #include <basegfx/matrix/b2dhommatrix.hxx>
 #include <basegfx/matrix/b2dhommatrixtools.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
 #include <basic/basicdllapi.h>
 #include <basic/basicmanagerrepository.hxx>
 #include <basic/basmgr.hxx>
@@ -214,6 +216,7 @@
 #include <com/sun/star/sdbc/XResultSet.hpp>
 #include <com/sun/star/sdbc/XRow.hpp>
 #include <com/sun/star/security/DocumentDigitalSignatures.hpp>
+#include <com/sun/star/security/DocumentSignatureInformation.hpp>
 #include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
 #include <com/sun/star/system/SystemShellExecute.hpp>
 #include <com/sun/star/system/SystemShellExecuteFlags.hpp>
@@ -289,9 +292,12 @@
 #include <cppuhelper/supportsservice.hxx>
 #include <cppuhelper/weak.hxx>
 #include <cppuhelper/weakref.hxx>
+#include <drawinglayer/attribute/fillgraphicattribute.hxx>
 #include <drawinglayer/drawinglayerdllapi.h>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonSelectionPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
 #include <drawinglayer/primitive2d/textlayoutdevice.hxx>
 #include <drawinglayer/processor2d/baseprocessor2d.hxx>
 #include <framework/fwedllapi.h>
@@ -299,7 +305,6 @@
 #include <i18nlangtag/lang.h>
 #include <i18nlangtag/languagetag.hxx>
 #include <o3tl/cow_wrapper.hxx>
-#include <optional>
 #include <o3tl/safeint.hxx>
 #include <o3tl/typed_flags_set.hxx>
 #include <officecfg/Office/Common.hxx>
@@ -445,7 +450,6 @@
 #include <sfx2/sidebar/SidebarDockingWindow.hxx>
 #include <sfx2/sidebar/TabBar.hxx>
 #include <sfx2/sidebar/Theme.hxx>
-#include <sidebar/Tools.hxx>
 #include <sfx2/signaturestate.hxx>
 #include <sfx2/stbitem.hxx>
 #include <sfx2/styfitem.hxx>
diff --git a/sfx2/source/control/emojiviewitem.cxx 
b/sfx2/source/control/emojiviewitem.cxx
index 665e24eb79ee..e7c772dc421d 100644
--- a/sfx2/source/control/emojiviewitem.cxx
+++ b/sfx2/source/control/emojiviewitem.cxx
@@ -10,7 +10,7 @@
 #include <emojiviewitem.hxx>
 
 #include <basegfx/matrix/b2dhommatrixtools.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonSelectionPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/textlayoutdevice.hxx>
 #include <drawinglayer/processor2d/baseprocessor2d.hxx>
 #include <com/sun/star/lang/Locale.hpp>
diff --git a/sfx2/source/control/templateviewitem.cxx 
b/sfx2/source/control/templateviewitem.cxx
index 6d8a99e925b5..c1b6609698de 100644
--- a/sfx2/source/control/templateviewitem.cxx
+++ b/sfx2/source/control/templateviewitem.cxx
@@ -14,7 +14,8 @@
 #include <drawinglayer/attribute/fillgraphicattribute.hxx>
 #include <drawinglayer/primitive2d/fillgraphicprimitive2d.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonSelectionPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/discretebitmapprimitive2d.hxx>
 #include <drawinglayer/processor2d/baseprocessor2d.hxx>
 #include <tools/poly.hxx>
diff --git a/sfx2/source/control/thumbnailview.cxx 
b/sfx2/source/control/thumbnailview.cxx
index 1662fcf8e9af..fda8a28dc7ad 100644
--- a/sfx2/source/control/thumbnailview.cxx
+++ b/sfx2/source/control/thumbnailview.cxx
@@ -17,7 +17,7 @@
 #include <basegfx/color/bcolortools.hxx>
 #include <comphelper/processfactory.hxx>
 #include <drawinglayer/attribute/fontattribute.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/textlayoutdevice.hxx>
 #include <drawinglayer/processor2d/baseprocessor2d.hxx>
 #include <drawinglayer/processor2d/processorfromoutputdevice.hxx>
diff --git a/sfx2/source/control/thumbnailviewitem.cxx 
b/sfx2/source/control/thumbnailviewitem.cxx
index 8936a16627da..40a68ec3ed20 100644
--- a/sfx2/source/control/thumbnailviewitem.cxx
+++ b/sfx2/source/control/thumbnailviewitem.cxx
@@ -27,7 +27,7 @@
 #include <drawinglayer/attribute/fillgraphicattribute.hxx>
 #include <drawinglayer/primitive2d/fillgraphicprimitive2d.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonSelectionPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/textlayoutdevice.hxx>
 #include <drawinglayer/primitive2d/textprimitive2d.hxx>
 #include <drawinglayer/processor2d/baseprocessor2d.hxx>
diff --git a/sfx2/source/dialog/infobar.cxx b/sfx2/source/dialog/infobar.cxx
index d73f71838ac3..2c8d18bc0f04 100644
--- a/sfx2/source/dialog/infobar.cxx
+++ b/sfx2/source/dialog/infobar.cxx
@@ -9,7 +9,8 @@
 
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx>
 #include <drawinglayer/processor2d/baseprocessor2d.hxx>
 #include <drawinglayer/processor2d/processorfromoutputdevice.hxx>
 #include <memory>
diff --git a/svgio/source/svgreader/svgstyleattributes.cxx 
b/svgio/source/svgreader/svgstyleattributes.cxx
index 03c932405323..383545bf49da 100644
--- a/svgio/source/svgreader/svgstyleattributes.cxx
+++ b/svgio/source/svgreader/svgstyleattributes.cxx
@@ -23,7 +23,8 @@
 
 #include <svgstyleattributes.hxx>
 #include <drawinglayer/primitive2d/transformprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx>
 #include <svgnode.hxx>
 #include <svgdocument.hxx>
 #include <drawinglayer/primitive2d/svggradientprimitive2d.hxx>
diff --git a/svx/inc/pch/precompiled_svxcore.hxx 
b/svx/inc/pch/precompiled_svxcore.hxx
index 1de3d34c0636..a1cc6960717e 100644
--- a/svx/inc/pch/precompiled_svxcore.hxx
+++ b/svx/inc/pch/precompiled_svxcore.hxx
@@ -13,7 +13,7 @@
  manual changes will be rewritten by the next run of update_pch.sh (which 
presumably
  also fixes all possible problems, so it's usually better to use it).
 
- Generated on 2020-02-19 12:45:36 using:
+ Generated on 2020-04-02 13:54:02 using:
  ./bin/update_pch svx svxcore --cutoff=7 --exclude:system --include:module 
--exclude:local
 
  If after updating build fails, use the following command to locate 
conflicting headers:
@@ -37,6 +37,7 @@
 #include <math.h>
 #include <memory>
 #include <new>
+#include <optional>
 #include <ostream>
 #include <set>
 #include <stack>
@@ -62,7 +63,6 @@
 #include <osl/getglobalmutex.hxx>
 #include <osl/interlck.h>
 #include <osl/mutex.hxx>
-#include <osl/thread.h>
 #include <osl/time.h>
 #include <rtl/alloc.h>
 #include <rtl/character.hxx>
@@ -103,7 +103,6 @@
 #include <vcl/animate/Animation.hxx>
 #include <vcl/animate/AnimationBitmap.hxx>
 #include <vcl/bitmap.hxx>
-#include <vcl/bitmapaccess.hxx>
 #include <vcl/bitmapex.hxx>
 #include <vcl/builder.hxx>
 #include <vcl/canvastools.hxx>
@@ -121,6 +120,7 @@
 #include <vcl/floatwin.hxx>
 #include <vcl/fntstyle.hxx>
 #include <vcl/font.hxx>
+#include <vcl/gdimtf.hxx>
 #include <vcl/gfxlink.hxx>
 #include <vcl/graph.hxx>
 #include <vcl/graphicfilter.hxx>
@@ -132,7 +132,6 @@
 #include <vcl/lstbox.hxx>
 #include <vcl/mapmod.hxx>
 #include <vcl/menu.hxx>
-#include <vcl/metaact.hxx>
 #include <vcl/mnemonicengine.hxx>
 #include <vcl/outdev.hxx>
 #include <vcl/ptrstyle.hxx>
@@ -168,6 +167,7 @@
 #include <basegfx/matrix/b3dhommatrix.hxx>
 #include <basegfx/numeric/ftools.hxx>
 #include <basegfx/point/b2dpoint.hxx>
+#include <basegfx/point/b2ipoint.hxx>
 #include <basegfx/point/b3dpoint.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
@@ -177,15 +177,18 @@
 #include <basegfx/range/b2drange.hxx>
 #include <basegfx/range/b3drange.hxx>
 #include <basegfx/range/basicrange.hxx>
+#include <basegfx/tuple/b2dtuple.hxx>
+#include <basegfx/tuple/b2ituple.hxx>
 #include <basegfx/tuple/b3dtuple.hxx>
+#include <basegfx/utils/common.hxx>
 #include <basegfx/vector/b2dsize.hxx>
 #include <basegfx/vector/b2dvector.hxx>
 #include <basegfx/vector/b2enums.hxx>
+#include <basegfx/vector/b2ivector.hxx>
 #include <basegfx/vector/b3dvector.hxx>
 #include <basic/basicdllapi.h>
 #include <basic/sbxcore.hxx>
 #include <basic/sbxdef.hxx>
-#include <basic/sbxvar.hxx>
 #include <com/sun/star/awt/Key.hpp>
 #include <com/sun/star/awt/KeyGroup.hpp>
 #include <com/sun/star/awt/XBitmap.hpp>
@@ -197,6 +200,7 @@
 #include <com/sun/star/beans/XFastPropertySet.hpp>
 #include <com/sun/star/beans/XMultiPropertySet.hpp>
 #include <com/sun/star/beans/XPropertiesChangeListener.hpp>
+#include <com/sun/star/beans/XPropertyChangeListener.hpp>
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/beans/XPropertySetInfo.hpp>
 #include <com/sun/star/beans/XPropertySetOption.hpp>
@@ -226,11 +230,11 @@
 #include <com/sun/star/frame/XFrame.hpp>
 #include <com/sun/star/frame/XStatusListener.hpp>
 #include <com/sun/star/frame/XTerminateListener.hpp>
-#include <com/sun/star/frame/XToolbarController.hpp>
 #include <com/sun/star/graphic/XGraphic.hpp>
 #include <com/sun/star/graphic/XPrimitive2D.hpp>
 #include <com/sun/star/graphic/XPrimitive3D.hpp>
 #include <com/sun/star/i18n/Calendar2.hpp>
+#include <com/sun/star/i18n/CharacterIteratorMode.hpp>
 #include <com/sun/star/i18n/WordType.hpp>
 #include <com/sun/star/lang/DisposedException.hpp>
 #include <com/sun/star/lang/EventObject.hpp>
@@ -239,13 +243,11 @@
 #include <com/sun/star/lang/XComponent.hpp>
 #include <com/sun/star/lang/XEventListener.hpp>
 #include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/lang/XTypeProvider.hpp>
 #include <com/sun/star/lang/XUnoTunnel.hpp>
-#include <com/sun/star/sdb/CommandType.hpp>
-#include <com/sun/star/sdbc/DataType.hpp>
 #include <com/sun/star/style/NumberingType.hpp>
+#include <com/sun/star/text/textfield/Type.hpp>
 #include <com/sun/star/uno/Any.h>
 #include <com/sun/star/uno/Any.hxx>
 #include <com/sun/star/uno/Exception.hpp>
@@ -267,10 +269,8 @@
 #include <com/sun/star/util/DateTime.hpp>
 #include <com/sun/star/util/Time.hpp>
 #include <com/sun/star/util/XAccounting.hpp>
-#include <com/sun/star/util/XUpdatable.hpp>
 #include <com/sun/star/xml/sax/XFastAttributeList.hpp>
 #include <comphelper/broadcasthelper.hxx>
-#include <comphelper/classids.hxx>
 #include <comphelper/comphelperdllapi.h>
 #include <comphelper/interfacecontainer2.hxx>
 #include <comphelper/lok.hxx>
@@ -299,29 +299,32 @@
 #include <cppuhelper/implbase_ex_post.hxx>
 #include <cppuhelper/implbase_ex_pre.hxx>
 #include <cppuhelper/interfacecontainer.h>
-#include <cppuhelper/interfacecontainer.hxx>
 #include <cppuhelper/propshlp.hxx>
 #include <cppuhelper/supportsservice.hxx>
-#include <cppuhelper/typeprovider.hxx>
 #include <cppuhelper/weak.hxx>
 #include <cppuhelper/weakagg.hxx>
 #include <cppuhelper/weakref.hxx>
 #include <drawinglayer/attribute/fillgradientattribute.hxx>
+#include <drawinglayer/attribute/fillgraphicattribute.hxx>
+#include <drawinglayer/attribute/fillhatchattribute.hxx>
+#include <drawinglayer/attribute/lineattribute.hxx>
 #include <drawinglayer/attribute/sdrallattribute3d.hxx>
 #include <drawinglayer/attribute/sdrfillattribute.hxx>
 #include <drawinglayer/attribute/sdrlineattribute.hxx>
 #include <drawinglayer/attribute/sdrlinestartendattribute.hxx>
 #include <drawinglayer/attribute/sdrobjectattribute3d.hxx>
 #include <drawinglayer/attribute/sdrshadowattribute.hxx>
+#include <drawinglayer/attribute/strokeattribute.hxx>
 #include <drawinglayer/drawinglayerdllapi.h>
 #include <drawinglayer/geometry/viewinformation2d.hxx>
 #include <drawinglayer/primitive2d/CommonTypes.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/Primitive2DContainer.hxx>
 #include <drawinglayer/primitive2d/Primitive2DVisitor.hxx>
 #include <drawinglayer/primitive2d/baseprimitive2d.hxx>
 #include <drawinglayer/primitive2d/groupprimitive2d.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/primitivetools2d.hxx>
 #include <drawinglayer/primitive2d/sdrdecompositiontools2d.hxx>
 #include <drawinglayer/primitive2d/transformprimitive2d.hxx>
 #include <drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx>
@@ -329,28 +332,21 @@
 #include <drawinglayer/primitive3d/sdrextrudelathetools3d.hxx>
 #include <drawinglayer/processor2d/baseprocessor2d.hxx>
 #include <drawinglayer/processor2d/processor2dtools.hxx>
-#include <editeng/adjustitem.hxx>
-#include <editeng/boxitem.hxx>
 #include <editeng/colritem.hxx>
 #include <editeng/editdata.hxx>
-#include <editeng/editeng.hxx>
 #include <editeng/editengdllapi.h>
 #include <editeng/editobj.hxx>
 #include <editeng/editstat.hxx>
+#include <editeng/eedata.hxx>
 #include <editeng/eeitem.hxx>
-#include <editeng/fhgtitem.hxx>
 #include <editeng/flditem.hxx>
-#include <editeng/fontitem.hxx>
-#include <editeng/outliner.hxx>
 #include <editeng/outlobj.hxx>
 #include <editeng/svxenum.hxx>
-#include <editeng/writingmodeitem.hxx>
 #include <i18nlangtag/i18nlangtagdllapi.h>
 #include <i18nlangtag/lang.h>
 #include <libxml/xmlwriter.h>
 #include <o3tl/cow_wrapper.hxx>
 #include <o3tl/deleter.hxx>
-#include <optional>
 #include <o3tl/safeint.hxx>
 #include <o3tl/strong_int.hxx>
 #include <o3tl/typed_flags_set.hxx>
@@ -361,12 +357,9 @@
 #include <salhelper/thread.hxx>
 #include <sax/fastattribs.hxx>
 #include <sax/saxdllapi.h>
-#include <sfx2/app.hxx>
 #include <sfx2/basedlgs.hxx>
-#include <sfx2/bindings.hxx>
 #include <sfx2/dispatch.hxx>
 #include <sfx2/dllapi.h>
-#include <sfx2/docfile.hxx>
 #include <sfx2/objsh.hxx>
 #include <sfx2/shell.hxx>
 #include <sfx2/viewfrm.hxx>
@@ -374,23 +367,24 @@
 #include <sot/exchange.hxx>
 #include <sot/formats.hxx>
 #include <sot/sotdllapi.h>
-#include <sot/storage.hxx>
 #include <svl/SfxBroadcaster.hxx>
+#include <svl/cenumitm.hxx>
+#include <svl/cintitem.hxx>
 #include <svl/eitem.hxx>
 #include <svl/hint.hxx>
 #include <svl/intitem.hxx>
-#include <svl/itemiter.hxx>
 #include <svl/itempool.hxx>
 #include <svl/itemset.hxx>
 #include <svl/languageoptions.hxx>
 #include <svl/lstner.hxx>
 #include <svl/poolitem.hxx>
-#include <svl/stritem.hxx>
 #include <svl/style.hxx>
 #include <svl/svldllapi.h>
 #include <svl/typedwhich.hxx>
+#include <svl/undo.hxx>
 #include <svl/whiter.hxx>
 #include <svtools/colorcfg.hxx>
+#include <svtools/optionsdrawinglayer.hxx>
 #include <svtools/svtdllapi.h>
 #include <svtools/valueset.hxx>
 #include <toolkit/helper/vclunohelper.hxx>
@@ -406,6 +400,7 @@
 #include <tools/gen.hxx>
 #include <tools/globname.hxx>
 #include <tools/helpers.hxx>
+#include <tools/lineend.hxx>
 #include <tools/link.hxx>
 #include <tools/mapunit.hxx>
 #include <tools/ref.hxx>
@@ -418,7 +413,6 @@
 #include <typelib/typeclass.h>
 #include <typelib/typedescription.h>
 #include <typelib/uik.h>
-#include <ucbhelper/content.hxx>
 #include <uno/any2.h>
 #include <uno/data.h>
 #include <uno/sequence2.h>
@@ -426,9 +420,7 @@
 #include <unotools/configmgr.hxx>
 #include <unotools/localedatawrapper.hxx>
 #include <unotools/options.hxx>
-#include <unotools/pathoptions.hxx>
 #include <unotools/resmgr.hxx>
-#include <unotools/streamwrap.hxx>
 #include <unotools/syslocale.hxx>
 #include <unotools/ucbstreamhelper.hxx>
 #include <unotools/unotoolsdllapi.h>
@@ -442,11 +434,9 @@
 #include <fmpgeimp.hxx>
 #include <fmprop.hxx>
 #include <fmservs.hxx>
-#include <fmshimp.hxx>
 #include <fmundo.hxx>
 #include <svx/dialmgr.hxx>
 #include <svx/e3dsceneupdater.hxx>
-#include <svx/fmglob.hxx>
 #include <svx/fmmodel.hxx>
 #include <svx/fmpage.hxx>
 #include <svx/fmshell.hxx>
@@ -460,21 +450,19 @@
 #include <svx/lathe3d.hxx>
 #include <svx/obj3d.hxx>
 #include <svx/scene3d.hxx>
-#include <svx/sdasitm.hxx>
 #include <svx/sdmetitm.hxx>
 #include <svx/sdooitm.hxx>
 #include <svx/sdr/animation/scheduler.hxx>
 #include <svx/sdr/contact/displayinfo.hxx>
 #include <svx/sdr/contact/objectcontact.hxx>
-#include <svx/sdr/contact/objectcontactofpageview.hxx>
 #include <svx/sdr/contact/viewcontact.hxx>
 #include <svx/sdr/contact/viewcontactofe3dscene.hxx>
 #include <svx/sdr/contact/viewobjectcontact.hxx>
 #include <svx/sdr/overlay/overlaymanager.hxx>
 #include <svx/sdr/overlay/overlayobject.hxx>
-#include <svx/sdr/overlay/overlaypolypolygon.hxx>
 #include <svx/sdr/primitive2d/svx_primitivetypes2d.hxx>
 #include <svx/sdrhittesthelper.hxx>
+#include <svx/sdrobjectuser.hxx>
 #include <svx/sdrpagewindow.hxx>
 #include <svx/sdrpaintwindow.hxx>
 #include <svx/sdtfchim.hxx>
@@ -485,34 +473,36 @@
 #include <svx/svdedtv.hxx>
 #include <svx/svdetc.hxx>
 #include <svx/svdhdl.hxx>
+#include <svx/svdhlpln.hxx>
 #include <svx/svditer.hxx>
+#include <svx/svdlayer.hxx>
+#include <svx/svdmark.hxx>
 #include <svx/svdmodel.hxx>
 #include <svx/svdmrkv.hxx>
 #include <svx/svdoashp.hxx>
 #include <svx/svdobj.hxx>
 #include <svx/svdocapt.hxx>
-#include <svx/svdocirc.hxx>
 #include <svx/svdoedge.hxx>
 #include <svx/svdograf.hxx>
 #include <svx/svdogrp.hxx>
-#include <svx/svdomeas.hxx>
 #include <svx/svdoole2.hxx>
-#include <svx/svdopage.hxx>
 #include <svx/svdopath.hxx>
 #include <svx/svdorect.hxx>
 #include <svx/svdotable.hxx>
 #include <svx/svdotext.hxx>
 #include <svx/svdouno.hxx>
 #include <svx/svdoutl.hxx>
-#include <svx/svdovirt.hxx>
 #include <svx/svdpage.hxx>
 #include <svx/svdpagv.hxx>
+#include <svx/svdpntv.hxx>
 #include <svx/svdpoev.hxx>
 #include <svx/svdpool.hxx>
+#include <svx/svdsnpv.hxx>
+#include <svx/svdsob.hxx>
 #include <svx/svdtrans.hxx>
+#include <svx/svdtypes.hxx>
 #include <svx/svdundo.hxx>
 #include <svx/svdview.hxx>
-#include <svx/svdviter.hxx>
 #include <svx/svx3ditems.hxx>
 #include <svx/svxdlg.hxx>
 #include <svx/svxdllapi.h>
@@ -532,23 +522,18 @@
 #include <svx/xflgrit.hxx>
 #include <svx/xflhtit.hxx>
 #include <svx/xfltrit.hxx>
-#include <svx/xgrad.hxx>
 #include <svx/xlineit0.hxx>
-#include <svx/xlinjoit.hxx>
 #include <svx/xlnclit.hxx>
 #include <svx/xlndsit.hxx>
-#include <svx/xlnedcit.hxx>
 #include <svx/xlnedit.hxx>
 #include <svx/xlnedwit.hxx>
-#include <svx/xlnstcit.hxx>
 #include <svx/xlnstit.hxx>
 #include <svx/xlnstwit.hxx>
 #include <svx/xlntrit.hxx>
 #include <svx/xlnwtit.hxx>
 #include <svx/xpoly.hxx>
-#include <svx/xpool.hxx>
 #include <svx/xtable.hxx>
-#include <svx/xtextit0.hxx>
+#include <tablemodel.hxx>
 #endif // PCH_LEVEL >= 4
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/sdr/contact/viewcontactofsdrpage.cxx 
b/svx/source/sdr/contact/viewcontactofsdrpage.cxx
index 3c352e14352e..80d6ba00a180 100644
--- a/svx/source/sdr/contact/viewcontactofsdrpage.cxx
+++ b/svx/source/sdr/contact/viewcontactofsdrpage.cxx
@@ -28,7 +28,8 @@
 #include <vcl/svapp.hxx>
 #include <svx/sdr/contact/objectcontact.hxx>
 #include <drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
+#include <drawinglayer/attribute/fillgradientattribute.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <sdr/primitive2d/sdrattributecreator.hxx>
diff --git a/svx/source/sdr/contact/viewobjectcontactofpageobj.cxx 
b/svx/source/sdr/contact/viewobjectcontactofpageobj.cxx
index fefb01679717..ad1d0bf87a9e 100644
--- a/svx/source/sdr/contact/viewobjectcontactofpageobj.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofpageobj.cxx
@@ -24,7 +24,7 @@
 #include <svx/sdr/contact/displayinfo.hxx>
 #include <svtools/colorcfg.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 #include <sdr/contact/objectcontactofobjlistpainter.hxx>
 #include <basegfx/matrix/b2dhommatrix.hxx>
diff --git a/svx/source/sdr/contact/viewobjectcontactofsdrole2obj.cxx 
b/svx/source/sdr/contact/viewobjectcontactofsdrole2obj.cxx
index 37c162229566..200548577514 100644
--- a/svx/source/sdr/contact/viewobjectcontactofsdrole2obj.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofsdrole2obj.cxx
@@ -24,7 +24,7 @@
 #include <svx/sdr/contact/objectcontact.hxx>
 #include <svx/svdpagv.hxx>
 #include <svx/svdview.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <com/sun/star/embed/EmbedMisc.hpp>
 #include <com/sun/star/embed/EmbedStates.hpp>
diff --git a/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx 
b/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx
index fc9c06959044..796fe0e2368a 100644
--- a/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx
@@ -27,7 +27,7 @@
 #include <svx/sdr/contact/objectcontact.hxx>
 #include <drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/gridprimitive2d.hxx>
 #include <drawinglayer/primitive2d/helplineprimitive2d.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
diff --git a/svx/source/sdr/overlay/overlayobjectcell.cxx 
b/svx/source/sdr/overlay/overlayobjectcell.cxx
index d2d374667104..68ab8281e334 100644
--- a/svx/source/sdr/overlay/overlayobjectcell.cxx
+++ b/svx/source/sdr/overlay/overlayobjectcell.cxx
@@ -22,7 +22,7 @@
 #include <sdr/overlay/overlayobjectcell.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx>
 
 using namespace ::basegfx;
diff --git a/svx/source/sdr/overlay/overlaypolypolygon.cxx 
b/svx/source/sdr/overlay/overlaypolypolygon.cxx
index 45c1b17e9f93..650b6420794e 100644
--- a/svx/source/sdr/overlay/overlaypolypolygon.cxx
+++ b/svx/source/sdr/overlay/overlaypolypolygon.cxx
@@ -19,7 +19,8 @@
 
 #include <svx/sdr/overlay/overlaypolypolygon.hxx>
 #include <svx/sdr/overlay/overlaymanager.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonSelectionPrimitive2D.hxx>
 
 
 namespace sdr::overlay
diff --git a/svx/source/sdr/overlay/overlayrollingrectangle.cxx 
b/svx/source/sdr/overlay/overlayrollingrectangle.cxx
index 02ede0f9dd85..1619139dbb0f 100644
--- a/svx/source/sdr/overlay/overlayrollingrectangle.cxx
+++ b/svx/source/sdr/overlay/overlayrollingrectangle.cxx
@@ -22,8 +22,8 @@
 #include <svx/sdr/overlay/overlaymanager.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
-
+#include <drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonSelectionPrimitive2D.hxx>
 
 namespace sdr::overlay
 {
diff --git a/svx/source/sdr/overlay/overlayselection.cxx 
b/svx/source/sdr/overlay/overlayselection.cxx
index c915ed7ea395..4abcd2bd7182 100644
--- a/svx/source/sdr/overlay/overlayselection.cxx
+++ b/svx/source/sdr/overlay/overlayselection.cxx
@@ -20,7 +20,8 @@
 #include <svx/sdr/overlay/overlayselection.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx>
 #include <svtools/optionsdrawinglayer.hxx>
 #include <vcl/svapp.hxx>
 #include <vcl/outdev.hxx>
diff --git a/svx/source/sdr/overlay/overlaytools.cxx 
b/svx/source/sdr/overlay/overlaytools.cxx
index a7359060c0fc..6f58ceed190b 100644
--- a/svx/source/sdr/overlay/overlaytools.cxx
+++ b/svx/source/sdr/overlay/overlaytools.cxx
@@ -25,7 +25,9 @@
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx>
 #include <drawinglayer/geometry/viewinformation2d.hxx>
 #include <basegfx/matrix/b2dhommatrixtools.hxx>
 #include <drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx>
diff --git a/svx/source/sdr/overlay/overlaytriangle.cxx 
b/svx/source/sdr/overlay/overlaytriangle.cxx
index 96071bcf7668..f46fcf1e2685 100644
--- a/svx/source/sdr/overlay/overlaytriangle.cxx
+++ b/svx/source/sdr/overlay/overlaytriangle.cxx
@@ -19,7 +19,7 @@
 
 #include <sdr/overlay/overlaytriangle.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 
 
 namespace sdr::overlay
diff --git a/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx 
b/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
index e89b2a537b21..a6c20dfc9da0 100644
--- a/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
+++ b/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
@@ -19,7 +19,10 @@
 
 #include <sdr/primitive2d/sdrdecompositiontools.hxx>
 #include <drawinglayer/primitive2d/baseprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGradientPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGraphicPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx>
 #include <drawinglayer/primitive2d/transparenceprimitive2d.hxx>
 #include <basegfx/polygon/b2dpolypolygontools.hxx>
diff --git a/svx/source/svdraw/svddrgmt.cxx b/svx/source/svdraw/svddrgmt.cxx
index 14da888fdb40..53a1f072ee84 100644
--- a/svx/source/svdraw/svddrgmt.cxx
+++ b/svx/source/svdraw/svddrgmt.cxx
@@ -52,7 +52,8 @@
 #include <svx/svditer.hxx>
 #include <svx/svdopath.hxx>
 #include <svx/polypolygoneditor.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonSelectionPrimitive2D.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 #include <drawinglayer/primitive2d/transformprimitive2d.hxx>
 #include <drawinglayer/primitive2d/markerarrayprimitive2d.hxx>
diff --git a/svx/source/table/tablehandles.cxx 
b/svx/source/table/tablehandles.cxx
index 8b579dab08fc..110102788fb7 100644
--- a/svx/source/table/tablehandles.cxx
+++ b/svx/source/table/tablehandles.cxx
@@ -30,7 +30,7 @@
 #include <svx/sdrpaintwindow.hxx>
 #include <svx/svdmrkv.hxx>
 #include <svx/svdpagv.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHairlinePrimitive2D.hxx>
 #include <sdr/overlay/overlayrectangle.hxx>
 #include <drawinglayer/primitive2d/hiddengeometryprimitive2d.hxx>
 
diff --git a/svx/source/xoutdev/xtabgrdt.cxx b/svx/source/xoutdev/xtabgrdt.cxx
index 7ae6d0e39344..ab51c4d3889b 100644
--- a/svx/source/xoutdev/xtabgrdt.cxx
+++ b/svx/source/xoutdev/xtabgrdt.cxx
@@ -28,7 +28,7 @@
 #include <vcl/settings.hxx>
 
 #include <drawinglayer/attribute/fillgradientattribute.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonGradientPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 #include <drawinglayer/processor2d/baseprocessor2d.hxx>
 #include <drawinglayer/processor2d/processor2dtools.hxx>
diff --git a/svx/source/xoutdev/xtabhtch.cxx b/svx/source/xoutdev/xtabhtch.cxx
index 14c28a4ea27b..6fd1646d79f0 100644
--- a/svx/source/xoutdev/xtabhtch.cxx
+++ b/svx/source/xoutdev/xtabhtch.cxx
@@ -26,7 +26,7 @@
 #include <svx/dialmgr.hxx>
 
 #include <drawinglayer/attribute/fillhatchattribute.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 #include <drawinglayer/processor2d/baseprocessor2d.hxx>
 #include <drawinglayer/processor2d/processor2dtools.hxx>
diff --git a/sw/inc/pch/precompiled_sw.hxx b/sw/inc/pch/precompiled_sw.hxx
index 90cb78ee1fa4..f885cd5645af 100644
--- a/sw/inc/pch/precompiled_sw.hxx
+++ b/sw/inc/pch/precompiled_sw.hxx
@@ -13,7 +13,7 @@
  manual changes will be rewritten by the next run of update_pch.sh (which 
presumably
  also fixes all possible problems, so it's usually better to use it).
 
- Generated on 2020-03-04 21:22:05 using:
+ Generated on 2020-04-02 13:47:12 using:
  ./bin/update_pch sw sw --cutoff=7 --exclude:system --exclude:module 
--include:local
 
  If after updating build fails, use the following command to locate 
conflicting headers:
@@ -220,7 +220,6 @@
 #include <drawinglayer/primitive2d/CommonTypes.hxx>
 #include <drawinglayer/primitive2d/Primitive2DContainer.hxx>
 #include <drawinglayer/primitive2d/baseprimitive2d.hxx>
-#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
 #include <drawinglayer/processor2d/baseprocessor2d.hxx>
 #include <editeng/acorrcfg.hxx>
 #include <editeng/adjustitem.hxx>
diff --git a/sw/source/core/crsr/overlayrangesoutline.cxx 
b/sw/source/core/crsr/overlayrangesoutline.cxx
index 0a433b350313..1ec83370e544 100644
--- a/sw/source/core/crsr/overlayrangesoutline.cxx
+++ b/sw/source/core/crsr/overlayrangesoutline.cxx
@@ -22,7 +22,7 @@
 #include <basegfx/polygon/b2dpolypolygon.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>

... etc. - the rest is truncated
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to