[Libreoffice-commits] core.git: drawinglayer/source include/drawinglayer include/svx svx/inc svx/source

Noel Grandin noel at peralex.com
Tue Dec 15 00:58:37 PST 2015


 drawinglayer/source/primitive2d/embedded3dprimitive2d.cxx      |    8 -
 drawinglayer/source/primitive2d/sceneprimitive2d.cxx           |   10 -
 drawinglayer/source/primitive3d/baseprimitive3d.cxx            |   80 ++++++++--
 drawinglayer/source/primitive3d/groupprimitive3d.cxx           |    6 
 drawinglayer/source/primitive3d/hatchtextureprimitive3d.cxx    |   22 +-
 drawinglayer/source/primitive3d/hiddengeometryprimitive3d.cxx  |    8 -
 drawinglayer/source/primitive3d/modifiedcolorprimitive3d.cxx   |    2 
 drawinglayer/source/primitive3d/polygonprimitive3d.cxx         |    6 
 drawinglayer/source/primitive3d/polygontubeprimitive3d.cxx     |   56 +++----
 drawinglayer/source/primitive3d/sdrcubeprimitive3d.cxx         |   14 -
 drawinglayer/source/primitive3d/sdrdecompositiontools3d.cxx    |   34 ++--
 drawinglayer/source/primitive3d/sdrextrudeprimitive3d.cxx      |   28 +--
 drawinglayer/source/primitive3d/sdrlatheprimitive3d.cxx        |   28 +--
 drawinglayer/source/primitive3d/sdrpolypolygonprimitive3d.cxx  |   14 -
 drawinglayer/source/primitive3d/sdrsphereprimitive3d.cxx       |   14 -
 drawinglayer/source/primitive3d/shadowprimitive3d.cxx          |    2 
 drawinglayer/source/primitive3d/textureprimitive3d.cxx         |   18 +-
 drawinglayer/source/primitive3d/transformprimitive3d.cxx       |    4 
 drawinglayer/source/processor2d/hittestprocessor2d.cxx         |    7 
 drawinglayer/source/processor3d/baseprocessor3d.cxx            |   11 -
 drawinglayer/source/processor3d/cutfindprocessor3d.cxx         |    8 -
 drawinglayer/source/processor3d/defaultprocessor3d.cxx         |   16 +-
 drawinglayer/source/processor3d/geometry2dextractor.cxx        |    8 -
 include/drawinglayer/primitive2d/embedded3dprimitive2d.hxx     |    6 
 include/drawinglayer/primitive2d/sceneprimitive2d.hxx          |    6 
 include/drawinglayer/primitive3d/baseprimitive3d.hxx           |   39 +++-
 include/drawinglayer/primitive3d/groupprimitive3d.hxx          |    8 -
 include/drawinglayer/primitive3d/hatchtextureprimitive3d.hxx   |   12 -
 include/drawinglayer/primitive3d/hiddengeometryprimitive3d.hxx |    4 
 include/drawinglayer/primitive3d/modifiedcolorprimitive3d.hxx  |    2 
 include/drawinglayer/primitive3d/polygonprimitive3d.hxx        |    2 
 include/drawinglayer/primitive3d/polygontubeprimitive3d.hxx    |   10 -
 include/drawinglayer/primitive3d/sdrcubeprimitive3d.hxx        |    2 
 include/drawinglayer/primitive3d/sdrdecompositiontools3d.hxx   |   10 -
 include/drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx     |    4 
 include/drawinglayer/primitive3d/sdrlatheprimitive3d.hxx       |    4 
 include/drawinglayer/primitive3d/sdrpolypolygonprimitive3d.hxx |    2 
 include/drawinglayer/primitive3d/sdrsphereprimitive3d.hxx      |    2 
 include/drawinglayer/primitive3d/shadowprimitive3d.hxx         |    2 
 include/drawinglayer/primitive3d/textureprimitive3d.hxx        |   12 -
 include/drawinglayer/primitive3d/transformprimitive3d.hxx      |    2 
 include/drawinglayer/processor3d/baseprocessor3d.hxx           |    2 
 include/svx/sdr/contact/viewcontactofe3d.hxx                   |   16 +-
 include/svx/sdr/contact/viewcontactofe3dscene.hxx              |    2 
 svx/inc/sdr/contact/viewcontactofe3dcube.hxx                   |    2 
 svx/inc/sdr/contact/viewcontactofe3dextrude.hxx                |    2 
 svx/inc/sdr/contact/viewcontactofe3dlathe.hxx                  |    2 
 svx/inc/sdr/contact/viewcontactofe3dpolygon.hxx                |    2 
 svx/inc/sdr/contact/viewcontactofe3dsphere.hxx                 |    2 
 svx/inc/sdr/contact/viewobjectcontactofe3d.hxx                 |    8 -
 svx/source/engine3d/helperhittest3d.cxx                        |    6 
 svx/source/engine3d/helperminimaldepth3d.cxx                   |    6 
 svx/source/engine3d/obj3d.cxx                                  |   14 -
 svx/source/sdr/contact/viewcontactofe3d.cxx                    |   26 +--
 svx/source/sdr/contact/viewcontactofe3dcube.cxx                |    6 
 svx/source/sdr/contact/viewcontactofe3dextrude.cxx             |    6 
 svx/source/sdr/contact/viewcontactofe3dlathe.cxx               |    6 
 svx/source/sdr/contact/viewcontactofe3dpolygon.cxx             |    6 
 svx/source/sdr/contact/viewcontactofe3dscene.cxx               |   51 +++---
 svx/source/sdr/contact/viewcontactofe3dsphere.cxx              |    6 
 svx/source/sdr/contact/viewobjectcontactofe3d.cxx              |   18 +-
 61 files changed, 392 insertions(+), 330 deletions(-)

New commits:
commit 4463da0488099b52959544923407b15d73d3e172
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Dec 15 10:31:06 2015 +0200

    use vector as container for Primitive3DReference
    
    rather than uno::Sequence, since we modify this container a lot
    and uno::Sequence is expensive to update
    
    Change-Id: Id5bc5171cbc4b90b243e6dda6d572f21b3bdf00d

diff --git a/drawinglayer/source/primitive2d/embedded3dprimitive2d.cxx b/drawinglayer/source/primitive2d/embedded3dprimitive2d.cxx
index 284b91c..91dee61 100644
--- a/drawinglayer/source/primitive2d/embedded3dprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/embedded3dprimitive2d.cxx
@@ -43,7 +43,7 @@ namespace drawinglayer
             osl::MutexGuard aGuard( m_aMutex );
 
             // create on demand
-            if(!mbShadow3DChecked && getChildren3D().hasElements())
+            if(!mbShadow3DChecked && !getChildren3D().empty())
             {
                 // create shadow extraction processor
                 processor3d::Shadow3DExtractingProcessor aShadowProcessor(
@@ -77,7 +77,7 @@ namespace drawinglayer
         }
 
         Embedded3DPrimitive2D::Embedded3DPrimitive2D(
-            const primitive3d::Primitive3DSequence& rxChildren3D,
+            const primitive3d::Primitive3DContainer& rxChildren3D,
             const basegfx::B2DHomMatrix& rObjectTransformation,
             const geometry::ViewInformation3D& rViewInformation3D,
             const basegfx::B3DVector& rLightNormal,
@@ -103,7 +103,7 @@ namespace drawinglayer
             {
                 const Embedded3DPrimitive2D& rCompare = static_cast< const Embedded3DPrimitive2D& >(rPrimitive);
 
-                return (primitive3d::arePrimitive3DSequencesEqual(getChildren3D(), rCompare.getChildren3D())
+                return (getChildren3D() == rCompare.getChildren3D()
                     && getObjectTransformation() == rCompare.getObjectTransformation()
                     && getViewInformation3D() == rCompare.getViewInformation3D()
                     && getLightNormal() == rCompare.getLightNormal()
@@ -119,7 +119,7 @@ namespace drawinglayer
             if(maB2DRange.isEmpty())
             {
                 // use the 3d transformation stack to create a projection of the 3D range
-                basegfx::B3DRange a3DRange(primitive3d::getB3DRangeFromPrimitive3DSequence(getChildren3D(), getViewInformation3D()));
+                basegfx::B3DRange a3DRange(getChildren3D().getB3DRange(getViewInformation3D()));
                 a3DRange.transform(getViewInformation3D().getObjectToView());
 
                 // create 2d range from projected 3d and transform with scene's object transformation
diff --git a/drawinglayer/source/primitive2d/sceneprimitive2d.cxx b/drawinglayer/source/primitive2d/sceneprimitive2d.cxx
index 5aaf906..eddb892 100644
--- a/drawinglayer/source/primitive2d/sceneprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/sceneprimitive2d.cxx
@@ -48,11 +48,11 @@ namespace drawinglayer
             ::osl::MutexGuard aGuard( m_aMutex );
 
             // create on demand
-            if(!mbShadow3DChecked && getChildren3D().hasElements())
+            if(!mbShadow3DChecked && !getChildren3D().empty())
             {
                 basegfx::B3DVector aLightNormal;
                 const double fShadowSlant(getSdrSceneAttribute().getShadowSlant());
-                const basegfx::B3DRange aScene3DRange(primitive3d::getB3DRangeFromPrimitive3DSequence(getChildren3D(), getViewInformation3D()));
+                const basegfx::B3DRange aScene3DRange(getChildren3D().getB3DRange(getViewInformation3D()));
 
                 if(maSdrLightingAttribute.getLightVector().size())
                 {
@@ -320,7 +320,7 @@ namespace drawinglayer
             Primitive2DContainer aRetval;
 
             // create 2D projected geometry from 3D geometry
-            if(getChildren3D().hasElements())
+            if(!getChildren3D().empty())
             {
                 // create 2D geometry extraction processor
                 processor3d::Geometry2DExtractingProcessor aGeometryProcessor(
@@ -393,7 +393,7 @@ namespace drawinglayer
         }
 
         ScenePrimitive2D::ScenePrimitive2D(
-            const primitive3d::Primitive3DSequence& rxChildren3D,
+            const primitive3d::Primitive3DContainer& rxChildren3D,
             const attribute::SdrSceneAttribute& rSdrSceneAttribute,
             const attribute::SdrLightingAttribute& rSdrLightingAttribute,
             const basegfx::B2DHomMatrix& rObjectTransformation,
@@ -419,7 +419,7 @@ namespace drawinglayer
             {
                 const ScenePrimitive2D& rCompare = static_cast<const ScenePrimitive2D&>(rPrimitive);
 
-                return (primitive3d::arePrimitive3DSequencesEqual(getChildren3D(), rCompare.getChildren3D())
+                return (getChildren3D() == rCompare.getChildren3D()
                     && getSdrSceneAttribute() == rCompare.getSdrSceneAttribute()
                     && getSdrLightingAttribute() == rCompare.getSdrLightingAttribute()
                     && getObjectTransformation() == rCompare.getObjectTransformation()
diff --git a/drawinglayer/source/primitive3d/baseprimitive3d.cxx b/drawinglayer/source/primitive3d/baseprimitive3d.cxx
index a0fc5d2..20c4975 100644
--- a/drawinglayer/source/primitive3d/baseprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/baseprimitive3d.cxx
@@ -20,6 +20,7 @@
 #include <drawinglayer/primitive3d/baseprimitive3d.hxx>
 #include <drawinglayer/geometry/viewinformation3d.hxx>
 #include <basegfx/tools/canvastools.hxx>
+#include <comphelper/sequence.hxx>
 
 
 
@@ -47,18 +48,18 @@ namespace drawinglayer
 
         basegfx::B3DRange BasePrimitive3D::getB3DRange(const geometry::ViewInformation3D& rViewInformation) const
         {
-            return getB3DRangeFromPrimitive3DSequence(get3DDecomposition(rViewInformation), rViewInformation);
+            return get3DDecomposition(rViewInformation).getB3DRange(rViewInformation);
         }
 
-        Primitive3DSequence BasePrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
+        Primitive3DContainer BasePrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
         {
-            return Primitive3DSequence();
+            return Primitive3DContainer();
         }
 
         Primitive3DSequence SAL_CALL BasePrimitive3D::getDecomposition( const uno::Sequence< beans::PropertyValue >& rViewParameters ) throw ( uno::RuntimeException, std::exception )
         {
             const geometry::ViewInformation3D aViewInformation(rViewParameters);
-            return get3DDecomposition(aViewInformation);
+            return comphelper::containerToSequence(get3DDecomposition(aViewInformation));
         }
 
         css::geometry::RealRectangle3D SAL_CALL BasePrimitive3D::getRange( const uno::Sequence< beans::PropertyValue >& rViewParameters ) throw ( uno::RuntimeException, std::exception )
@@ -75,9 +76,9 @@ namespace drawinglayer
 {
     namespace primitive3d
     {
-        Primitive3DSequence BufferedDecompositionPrimitive3D::create3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
+        Primitive3DContainer BufferedDecompositionPrimitive3D::create3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
         {
-            return Primitive3DSequence();
+            return Primitive3DContainer();
         }
 
         BufferedDecompositionPrimitive3D::BufferedDecompositionPrimitive3D()
@@ -86,13 +87,13 @@ namespace drawinglayer
         {
         }
 
-        Primitive3DSequence BufferedDecompositionPrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const
+        Primitive3DContainer BufferedDecompositionPrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const
         {
             ::osl::MutexGuard aGuard( m_aMutex );
 
-            if(!getBuffered3DDecomposition().hasElements())
+            if(getBuffered3DDecomposition().empty())
             {
-                const Primitive3DSequence aNewSequence(create3DDecomposition(rViewInformation));
+                const Primitive3DContainer aNewSequence(create3DDecomposition(rViewInformation));
                 const_cast< BufferedDecompositionPrimitive3D* >(this)->setBuffered3DDecomposition(aNewSequence);
             }
 
@@ -134,18 +135,18 @@ namespace drawinglayer
             return aRetval;
         }
 
-        // get range3D from a given Primitive3DSequence
-        basegfx::B3DRange getB3DRangeFromPrimitive3DSequence(const Primitive3DSequence& rCandidate, const geometry::ViewInformation3D& aViewInformation)
+        // get range3D from a given Primitive3DContainer
+        basegfx::B3DRange Primitive3DContainer::getB3DRange(const geometry::ViewInformation3D& aViewInformation) const
         {
             basegfx::B3DRange aRetval;
 
-            if(rCandidate.hasElements())
+            if(!empty())
             {
-                const sal_Int32 nCount(rCandidate.getLength());
+                const size_t nCount(size());
 
-                for(sal_Int32 a(0L); a < nCount; a++)
+                for(size_t a(0L); a < nCount; a++)
                 {
-                    aRetval.expand(getB3DRangeFromPrimitive3DReference(rCandidate[a], aViewInformation));
+                    aRetval.expand(getB3DRangeFromPrimitive3DReference((*this)[a], aViewInformation));
                 }
             }
 
@@ -215,8 +216,40 @@ namespace drawinglayer
             return true;
         }
 
+        bool Primitive3DContainer::operator==(const Primitive3DContainer& rB) const
+        {
+            const bool bAHasElements(!empty());
+
+            if(bAHasElements != !rB.empty())
+            {
+                return false;
+            }
+
+            if(!bAHasElements)
+            {
+                return true;
+            }
+
+            const size_t nCount(size());
+
+            if(nCount != rB.size())
+            {
+                return false;
+            }
+
+            for(size_t a(0L); a < nCount; a++)
+            {
+                if(!arePrimitive3DReferencesEqual((*this)[a], rB[a]))
+                {
+                    return false;
+                }
+            }
+
+            return true;
+        }
+
         // concatenate sequence
-        void appendPrimitive3DSequenceToPrimitive3DSequence(Primitive3DSequence& rDest, const Primitive3DSequence& rSource)
+        void appendPrimitive3DContainerToPrimitive3DSequence(Primitive3DSequence& rDest, const Primitive3DSequence& rSource)
         {
             if(rSource.hasElements())
             {
@@ -249,6 +282,21 @@ namespace drawinglayer
             }
         }
 
+        void Primitive3DContainer::append(const Primitive3DContainer& rSource)
+        {
+            insert(end(), rSource.begin(), rSource.end());
+        }
+
+        void Primitive3DContainer::append(Primitive3DContainer&& rSource)
+        {
+            size_t n = size();
+            resize(n + rSource.size());
+            for (size_t i = 0; i<rSource.size(); ++i)
+            {
+                (*this)[n + i] = std::move( rSource[i] );
+            }
+        }
+
         // concatenate single Primitive3D
         void appendPrimitive3DReferenceToPrimitive3DSequence(Primitive3DSequence& rDest, const Primitive3DReference& rSource)
         {
diff --git a/drawinglayer/source/primitive3d/groupprimitive3d.cxx b/drawinglayer/source/primitive3d/groupprimitive3d.cxx
index 029ddf7..fc266ae 100644
--- a/drawinglayer/source/primitive3d/groupprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/groupprimitive3d.cxx
@@ -30,7 +30,7 @@ namespace drawinglayer
 {
     namespace primitive3d
     {
-        GroupPrimitive3D::GroupPrimitive3D( const Primitive3DSequence& rChildren )
+        GroupPrimitive3D::GroupPrimitive3D( const Primitive3DContainer& rChildren )
         :   BasePrimitive3D(),
             maChildren(rChildren)
         {
@@ -46,14 +46,14 @@ namespace drawinglayer
             {
                 const GroupPrimitive3D& rCompare = static_cast< const GroupPrimitive3D& >(rPrimitive);
 
-                return (arePrimitive3DSequencesEqual(getChildren(), rCompare.getChildren()));
+                return getChildren() == rCompare.getChildren();
             }
 
             return false;
         }
 
         /// default: just return children, so all renderers not supporting group will use it's content
-        Primitive3DSequence GroupPrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
+        Primitive3DContainer GroupPrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
         {
             return getChildren();
         }
diff --git a/drawinglayer/source/primitive3d/hatchtextureprimitive3d.cxx b/drawinglayer/source/primitive3d/hatchtextureprimitive3d.cxx
index c191db5..d3cf9fd 100644
--- a/drawinglayer/source/primitive3d/hatchtextureprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/hatchtextureprimitive3d.cxx
@@ -40,17 +40,17 @@ namespace drawinglayer
 {
     namespace primitive3d
     {
-        Primitive3DSequence HatchTexturePrimitive3D::impCreate3DDecomposition() const
+        Primitive3DContainer HatchTexturePrimitive3D::impCreate3DDecomposition() const
         {
-            Primitive3DSequence aRetval;
+            Primitive3DContainer aRetval;
 
-            if(getChildren().hasElements())
+            if(!getChildren().empty())
             {
-                const Primitive3DSequence aSource(getChildren());
-                const sal_uInt32 nSourceCount(aSource.getLength());
+                const Primitive3DContainer aSource(getChildren());
+                const size_t nSourceCount(aSource.size());
                 std::vector< Primitive3DReference > aDestination;
 
-                for(sal_uInt32 a(0); a < nSourceCount; a++)
+                for(size_t a(0); a < nSourceCount; a++)
                 {
                     // get reference
                     const Primitive3DReference xReference(aSource[a]);
@@ -265,7 +265,7 @@ namespace drawinglayer
 
                 // prepare return value
                 const sal_uInt32 nDestSize(aDestination.size());
-                aRetval.realloc(nDestSize);
+                aRetval.resize(nDestSize);
 
                 for(sal_uInt32 b(0); b < nDestSize; b++)
                 {
@@ -278,7 +278,7 @@ namespace drawinglayer
 
         HatchTexturePrimitive3D::HatchTexturePrimitive3D(
             const attribute::FillHatchAttribute& rHatch,
-            const Primitive3DSequence& rChildren,
+            const Primitive3DContainer& rChildren,
             const basegfx::B2DVector& rTextureSize,
             bool bModulate,
             bool bFilter)
@@ -300,13 +300,13 @@ namespace drawinglayer
             return false;
         }
 
-        Primitive3DSequence HatchTexturePrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
+        Primitive3DContainer HatchTexturePrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
         {
             ::osl::MutexGuard aGuard( m_aMutex );
 
-            if(!getBuffered3DDecomposition().hasElements())
+            if(getBuffered3DDecomposition().empty())
             {
-                const Primitive3DSequence aNewSequence(impCreate3DDecomposition());
+                const Primitive3DContainer aNewSequence(impCreate3DDecomposition());
                 const_cast< HatchTexturePrimitive3D* >(this)->setBuffered3DDecomposition(aNewSequence);
             }
 
diff --git a/drawinglayer/source/primitive3d/hiddengeometryprimitive3d.cxx b/drawinglayer/source/primitive3d/hiddengeometryprimitive3d.cxx
index cfa4e8f..69ccb85 100644
--- a/drawinglayer/source/primitive3d/hiddengeometryprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/hiddengeometryprimitive3d.cxx
@@ -31,20 +31,20 @@ namespace drawinglayer
     namespace primitive3d
     {
         HiddenGeometryPrimitive3D::HiddenGeometryPrimitive3D(
-            const Primitive3DSequence& rChildren)
+            const Primitive3DContainer& rChildren)
         :   GroupPrimitive3D(rChildren)
         {
         }
 
         basegfx::B3DRange HiddenGeometryPrimitive3D::getB3DRange(const geometry::ViewInformation3D& rViewInformation) const
         {
-            return getB3DRangeFromPrimitive3DSequence(getChildren(), rViewInformation);
+            return getChildren().getB3DRange(rViewInformation);
         }
 
-        Primitive3DSequence HiddenGeometryPrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
+        Primitive3DContainer HiddenGeometryPrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
         {
             // return empty sequence
-            return Primitive3DSequence();
+            return Primitive3DContainer();
         }
 
         // provide unique ID
diff --git a/drawinglayer/source/primitive3d/modifiedcolorprimitive3d.cxx b/drawinglayer/source/primitive3d/modifiedcolorprimitive3d.cxx
index c74dba7..06ded39 100644
--- a/drawinglayer/source/primitive3d/modifiedcolorprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/modifiedcolorprimitive3d.cxx
@@ -31,7 +31,7 @@ namespace drawinglayer
     namespace primitive3d
     {
         ModifiedColorPrimitive3D::ModifiedColorPrimitive3D(
-            const Primitive3DSequence& rChildren,
+            const Primitive3DContainer& rChildren,
             const basegfx::BColorModifierSharedPtr& rColorModifier)
         :   GroupPrimitive3D(rChildren),
             maColorModifier(rColorModifier)
diff --git a/drawinglayer/source/primitive3d/polygonprimitive3d.cxx b/drawinglayer/source/primitive3d/polygonprimitive3d.cxx
index 1367d0a..b7930bb 100644
--- a/drawinglayer/source/primitive3d/polygonprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/polygonprimitive3d.cxx
@@ -73,9 +73,9 @@ namespace drawinglayer
 {
     namespace primitive3d
     {
-        Primitive3DSequence PolygonStrokePrimitive3D::create3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
+        Primitive3DContainer PolygonStrokePrimitive3D::create3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
         {
-            Primitive3DSequence aRetval;
+            Primitive3DContainer aRetval;
 
             if(getB3DPolygon().count())
             {
@@ -92,7 +92,7 @@ namespace drawinglayer
                 }
 
                 // prepare result
-                aRetval.realloc(aHairLinePolyPolygon.count());
+                aRetval.resize(aHairLinePolyPolygon.count());
 
                 if(getLineAttribute().getWidth())
                 {
diff --git a/drawinglayer/source/primitive3d/polygontubeprimitive3d.cxx b/drawinglayer/source/primitive3d/polygontubeprimitive3d.cxx
index bbef152..74cc593 100644
--- a/drawinglayer/source/primitive3d/polygontubeprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/polygontubeprimitive3d.cxx
@@ -40,7 +40,7 @@ namespace drawinglayer
             {
             private:
                 // data for buffered tube primitives
-                Primitive3DSequence m_aLineTubeList;
+                Primitive3DContainer m_aLineTubeList;
                 sal_uInt32 m_nLineTubeSegments;
                 attribute::MaterialAttribute3D m_aLineMaterial;
                 ::osl::Mutex m_aMutex;
@@ -50,7 +50,7 @@ namespace drawinglayer
                 {
                 }
 
-                Primitive3DSequence getLineTubeSegments(
+                Primitive3DContainer getLineTubeSegments(
                     sal_uInt32 nSegments,
                     const attribute::MaterialAttribute3D& rMaterial)
                 {
@@ -61,10 +61,10 @@ namespace drawinglayer
                     {
                         m_nLineTubeSegments = nSegments;
                         m_aLineMaterial = rMaterial;
-                        m_aLineTubeList = Primitive3DSequence();
+                        m_aLineTubeList = Primitive3DContainer();
                     }
 
-                    if (!m_aLineTubeList.hasElements() && m_nLineTubeSegments != 0)
+                    if (m_aLineTubeList.empty() && m_nLineTubeSegments != 0)
                     {
                         const basegfx::B3DPoint aLeft(0.0, 0.0, 0.0);
                         const basegfx::B3DPoint aRight(1.0, 0.0, 0.0);
@@ -72,7 +72,7 @@ namespace drawinglayer
                         basegfx::B3DPoint aLastRight(1.0, 1.0, 0.0);
                         basegfx::B3DHomMatrix aRot;
                         aRot.rotate(F_2PI / (double)m_nLineTubeSegments, 0.0, 0.0);
-                        m_aLineTubeList.realloc(m_nLineTubeSegments);
+                        m_aLineTubeList.resize(m_nLineTubeSegments);
 
                         for(sal_uInt32 a = 0; a < m_nLineTubeSegments; ++a)
                         {
@@ -109,7 +109,7 @@ namespace drawinglayer
             struct theTubeBuffer :
                 public rtl::Static< TubeBuffer, theTubeBuffer > {};
 
-            Primitive3DSequence getLineTubeSegments(
+            Primitive3DContainer getLineTubeSegments(
                 sal_uInt32 nSegments,
                 const attribute::MaterialAttribute3D& rMaterial)
             {
@@ -122,7 +122,7 @@ namespace drawinglayer
             {
             private:
                 // data for buffered cap primitives
-                Primitive3DSequence m_aLineCapList;
+                Primitive3DContainer m_aLineCapList;
                 sal_uInt32 m_nLineCapSegments;
                 attribute::MaterialAttribute3D m_aLineMaterial;
                 ::osl::Mutex m_aMutex;
@@ -131,7 +131,7 @@ namespace drawinglayer
                     : m_nLineCapSegments(0)
                 {
                 }
-                Primitive3DSequence getLineCapSegments(
+                Primitive3DContainer getLineCapSegments(
                     sal_uInt32 nSegments,
                     const attribute::MaterialAttribute3D& rMaterial)
                 {
@@ -142,16 +142,16 @@ namespace drawinglayer
                     {
                         m_nLineCapSegments = nSegments;
                         m_aLineMaterial = rMaterial;
-                        m_aLineCapList = Primitive3DSequence();
+                        m_aLineCapList = Primitive3DContainer();
                     }
 
-                    if (!m_aLineCapList.hasElements() && m_nLineCapSegments != 0)
+                    if (m_aLineCapList.empty() && m_nLineCapSegments != 0)
                     {
                         const basegfx::B3DPoint aNull(0.0, 0.0, 0.0);
                         basegfx::B3DPoint aLast(0.0, 1.0, 0.0);
                         basegfx::B3DHomMatrix aRot;
                         aRot.rotate(F_2PI / (double)m_nLineCapSegments, 0.0, 0.0);
-                        m_aLineCapList.realloc(m_nLineCapSegments);
+                        m_aLineCapList.resize(m_nLineCapSegments);
 
                         for(sal_uInt32 a = 0; a < m_nLineCapSegments; ++a)
                         {
@@ -184,7 +184,7 @@ namespace drawinglayer
             struct theCapBuffer :
                 public rtl::Static< CapBuffer, theCapBuffer > {};
 
-            Primitive3DSequence getLineCapSegments(
+            Primitive3DContainer getLineCapSegments(
                 sal_uInt32 nSegments,
                 const attribute::MaterialAttribute3D& rMaterial)
             {
@@ -197,7 +197,7 @@ namespace drawinglayer
             {
             private:
                 // data for buffered capround primitives
-                Primitive3DSequence m_aLineCapRoundList;
+                Primitive3DContainer m_aLineCapRoundList;
                 sal_uInt32 m_nLineCapRoundSegments;
                 attribute::MaterialAttribute3D m_aLineMaterial;
                 ::osl::Mutex m_aMutex;
@@ -206,7 +206,7 @@ namespace drawinglayer
                     : m_nLineCapRoundSegments(0)
                 {
                 }
-                Primitive3DSequence getLineCapRoundSegments(
+                Primitive3DContainer getLineCapRoundSegments(
                     sal_uInt32 nSegments,
                     const attribute::MaterialAttribute3D& rMaterial)
                 {
@@ -217,10 +217,10 @@ namespace drawinglayer
                     {
                         m_nLineCapRoundSegments = nSegments;
                         m_aLineMaterial = rMaterial;
-                        m_aLineCapRoundList = Primitive3DSequence();
+                        m_aLineCapRoundList = Primitive3DContainer();
                     }
 
-                    if (!m_aLineCapRoundList.hasElements() && m_nLineCapRoundSegments)
+                    if (m_aLineCapRoundList.empty() && m_nLineCapRoundSegments)
                     {
                         // calculate new horizontal segments
                         sal_uInt32 nVerSeg(nSegments / 2);
@@ -251,7 +251,7 @@ namespace drawinglayer
                             aSphere.transformNormals(aSphereTrans);
 
                             // realloc for primitives and create based on polygon snippets
-                            m_aLineCapRoundList.realloc(nCount);
+                            m_aLineCapRoundList.resize(nCount);
 
                             for (sal_uInt32 a = 0; a < nCount; ++a)
                             {
@@ -277,7 +277,7 @@ namespace drawinglayer
                 public rtl::Static< CapRoundBuffer, theCapRoundBuffer > {};
 
 
-            Primitive3DSequence getLineCapRoundSegments(
+            Primitive3DContainer getLineCapRoundSegments(
                 sal_uInt32 nSegments,
                 const attribute::MaterialAttribute3D& rMaterial)
             {
@@ -286,7 +286,7 @@ namespace drawinglayer
                 return rTheBuffer.getLineCapRoundSegments(nSegments, rMaterial);
             }
 
-            Primitive3DSequence getLineJoinSegments(
+            Primitive3DContainer getLineJoinSegments(
                 sal_uInt32 nSegments,
                 const attribute::MaterialAttribute3D& rMaterial,
                 double fAngle,
@@ -496,7 +496,7 @@ namespace drawinglayer
                     }
                 }
 
-                Primitive3DSequence aRetval(aResultVector.size());
+                Primitive3DContainer aRetval(aResultVector.size());
 
                 for(size_t a(0); a < aResultVector.size(); a++)
                 {
@@ -535,7 +535,7 @@ namespace drawinglayer
 {
     namespace primitive3d
     {
-        Primitive3DSequence PolygonTubePrimitive3D::impCreate3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
+        Primitive3DContainer PolygonTubePrimitive3D::impCreate3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
         {
             const sal_uInt32 nPointCount(getB3DPolygon().count());
             std::vector< BasePrimitive3D* > aResultVector;
@@ -608,7 +608,7 @@ namespace drawinglayer
                             if(bNoLineJoin || (!bClosed && bFirst))
                             {
                                 // line start edge, build transformed primitiveVector3D
-                                Primitive3DSequence aSequence;
+                                Primitive3DContainer aSequence;
 
                                 if(bLineCapRound && bFirst)
                                 {
@@ -633,7 +633,7 @@ namespace drawinglayer
                                 {
                                     // line connect non-parallel, aBack, aForw, use getLineJoin()
                                     const double fAngle(acos(aBack.scalar(aForw) / (fForwLen * aBack.getLength()))); // 0.0 .. F_PI2
-                                    Primitive3DSequence aNewList(
+                                    Primitive3DContainer aNewList(
                                         getLineJoinSegments(
                                             nSegments,
                                             aMaterial,
@@ -696,7 +696,7 @@ namespace drawinglayer
                                 aBackCapTrans.translate(aCurr.getX(), aCurr.getY(), aCurr.getZ());
 
                                 // get primitiveVector3D
-                                Primitive3DSequence aSequence;
+                                Primitive3DContainer aSequence;
 
                                 if(bLineCapRound && bLast)
                                 {
@@ -730,7 +730,7 @@ namespace drawinglayer
             }
 
             // prepare return value
-            Primitive3DSequence aRetval(aResultVector.size());
+            Primitive3DContainer aRetval(aResultVector.size());
 
             for(size_t a(0); a < aResultVector.size(); a++)
             {
@@ -773,13 +773,13 @@ namespace drawinglayer
             return false;
         }
 
-        Primitive3DSequence PolygonTubePrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const
+        Primitive3DContainer PolygonTubePrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const
         {
             ::osl::MutexGuard aGuard( m_aMutex );
 
-            if(!getLast3DDecomposition().hasElements())
+            if(getLast3DDecomposition().empty())
             {
-                const Primitive3DSequence aNewSequence(impCreate3DDecomposition(rViewInformation));
+                const Primitive3DContainer aNewSequence(impCreate3DDecomposition(rViewInformation));
                 const_cast< PolygonTubePrimitive3D* >(this)->setLast3DDecomposition(aNewSequence);
             }
 
diff --git a/drawinglayer/source/primitive3d/sdrcubeprimitive3d.cxx b/drawinglayer/source/primitive3d/sdrcubeprimitive3d.cxx
index 86a8b24..54a0cd9 100644
--- a/drawinglayer/source/primitive3d/sdrcubeprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/sdrcubeprimitive3d.cxx
@@ -38,10 +38,10 @@ namespace drawinglayer
 {
     namespace primitive3d
     {
-        Primitive3DSequence SdrCubePrimitive3D::create3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
+        Primitive3DContainer SdrCubePrimitive3D::create3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
         {
             const basegfx::B3DRange aUnitRange(0.0, 0.0, 0.0, 1.0, 1.0, 1.0);
-            Primitive3DSequence aRetval;
+            Primitive3DContainer aRetval;
             basegfx::B3DPolyPolygon aFill(basegfx::tools::createCubeFillPolyPolygonFromB3DRange(aUnitRange));
 
             // normal creation
@@ -160,17 +160,17 @@ namespace drawinglayer
             if(!getSdrLFSAttribute().getLine().isDefault())
             {
                 basegfx::B3DPolyPolygon aLine(basegfx::tools::createCubePolyPolygonFromB3DRange(aUnitRange));
-                const Primitive3DSequence aLines(create3DPolyPolygonLinePrimitives(
+                const Primitive3DContainer aLines(create3DPolyPolygonLinePrimitives(
                     aLine, getTransform(), getSdrLFSAttribute().getLine()));
-                appendPrimitive3DSequenceToPrimitive3DSequence(aRetval, aLines);
+                aRetval.append(aLines);
             }
 
             // add shadow
-            if(!getSdrLFSAttribute().getShadow().isDefault() && aRetval.hasElements())
+            if(!getSdrLFSAttribute().getShadow().isDefault() && !aRetval.empty())
             {
-                const Primitive3DSequence aShadow(createShadowPrimitive3D(
+                const Primitive3DContainer aShadow(createShadowPrimitive3D(
                     aRetval, getSdrLFSAttribute().getShadow(), getSdr3DObjectAttribute().getShadow3D()));
-                appendPrimitive3DSequenceToPrimitive3DSequence(aRetval, aShadow);
+                aRetval.append(aShadow);
             }
 
             return aRetval;
diff --git a/drawinglayer/source/primitive3d/sdrdecompositiontools3d.cxx b/drawinglayer/source/primitive3d/sdrdecompositiontools3d.cxx
index da802dd..08be611 100644
--- a/drawinglayer/source/primitive3d/sdrdecompositiontools3d.cxx
+++ b/drawinglayer/source/primitive3d/sdrdecompositiontools3d.cxx
@@ -133,7 +133,7 @@ namespace drawinglayer
             }
         }
 
-        Primitive3DSequence create3DPolyPolygonLinePrimitives(
+        Primitive3DContainer create3DPolyPolygonLinePrimitives(
             const basegfx::B3DPolyPolygon& rUnitPolyPolygon,
             const basegfx::B3DHomMatrix& rObjectTransform,
             const attribute::SdrLineAttribute& rLine)
@@ -147,7 +147,7 @@ namespace drawinglayer
             const attribute::StrokeAttribute aStrokeAttribute(rLine.getDotDashArray(), rLine.getFullDotDashLen());
 
             // create primitives
-            Primitive3DSequence aRetval(aScaledPolyPolygon.count());
+            Primitive3DContainer aRetval(aScaledPolyPolygon.count());
 
             for(sal_uInt32 a(0L); a < aScaledPolyPolygon.count(); a++)
             {
@@ -159,13 +159,13 @@ namespace drawinglayer
             {
                 // create UnifiedTransparenceTexturePrimitive3D, add created primitives and exchange
                 const Primitive3DReference xRef(new UnifiedTransparenceTexturePrimitive3D(rLine.getTransparence(), aRetval));
-                aRetval = Primitive3DSequence(&xRef, 1L);
+                aRetval = { xRef };
             }
 
             return aRetval;
         }
 
-        Primitive3DSequence create3DPolyPolygonFillPrimitives(
+        Primitive3DContainer create3DPolyPolygonFillPrimitives(
             const ::std::vector< basegfx::B3DPolyPolygon >& r3DPolyPolygonVector,
             const basegfx::B3DHomMatrix& rObjectTransform,
             const basegfx::B2DVector& rTextureSize,
@@ -173,12 +173,12 @@ namespace drawinglayer
             const attribute::SdrFillAttribute& rFill,
             const attribute::FillGradientAttribute& rFillGradient)
         {
-            Primitive3DSequence aRetval;
+            Primitive3DContainer aRetval;
 
             if(r3DPolyPolygonVector.size())
             {
                 // create list of simple fill primitives
-                aRetval.realloc(r3DPolyPolygonVector.size());
+                aRetval.resize(r3DPolyPolygonVector.size());
 
                 for(size_t a(0); a < r3DPolyPolygonVector.size(); a++)
                 {
@@ -242,7 +242,7 @@ namespace drawinglayer
 
                     // exchange aRetval content with texture group
                     const Primitive3DReference xRef(pNewTexturePrimitive3D);
-                    aRetval = Primitive3DSequence(&xRef, 1L);
+                    aRetval = { xRef };
 
                     if(css::drawing::TextureKind2_LUMINANCE == aSdr3DObjectAttribute.getTextureKind())
                     {
@@ -254,7 +254,7 @@ namespace drawinglayer
                                 aRetval,
                                 aBColorModifier));
 
-                        aRetval = Primitive3DSequence(&xRef2, 1L);
+                        aRetval = { xRef2 };
                     }
                 }
 
@@ -262,26 +262,26 @@ namespace drawinglayer
                 {
                     // create UnifiedTransparenceTexturePrimitive3D with sublist and exchange
                     const Primitive3DReference xRef(new UnifiedTransparenceTexturePrimitive3D(rFill.getTransparence(), aRetval));
-                    aRetval = Primitive3DSequence(&xRef, 1L);
+                    aRetval = { xRef };
                 }
                 else if(!rFillGradient.isDefault())
                 {
                     // create TransparenceTexturePrimitive3D with sublist and exchange
                     const Primitive3DReference xRef(new TransparenceTexturePrimitive3D(rFillGradient, aRetval, rTextureSize));
-                    aRetval = Primitive3DSequence(&xRef, 1L);
+                    aRetval = { xRef };
                 }
             }
 
             return aRetval;
         }
 
-        Primitive3DSequence createShadowPrimitive3D(
-            const Primitive3DSequence& rSource,
+        Primitive3DContainer createShadowPrimitive3D(
+            const Primitive3DContainer& rSource,
             const attribute::SdrShadowAttribute& rShadow,
             bool bShadow3D)
         {
             // create Shadow primitives. Uses already created primitives
-            if(rSource.hasElements() && !basegfx::fTools::moreOrEqual(rShadow.getTransparence(), 1.0))
+            if(!rSource.empty() && !basegfx::fTools::moreOrEqual(rShadow.getTransparence(), 1.0))
             {
                 // prepare new list for shadow geometry
                 basegfx::B2DHomMatrix aShadowOffset;
@@ -290,15 +290,15 @@ namespace drawinglayer
 
                 // create shadow primitive and add primitives
                 const Primitive3DReference xRef(new ShadowPrimitive3D(aShadowOffset, rShadow.getColor(), rShadow.getTransparence(), bShadow3D, rSource));
-                return Primitive3DSequence(&xRef, 1L);
+                return { xRef };
             }
             else
             {
-                return Primitive3DSequence();
+                return Primitive3DContainer();
             }
         }
 
-        Primitive3DSequence createHiddenGeometryPrimitives3D(
+        Primitive3DContainer createHiddenGeometryPrimitives3D(
             const ::std::vector< basegfx::B3DPolyPolygon >& r3DPolyPolygonVector,
             const basegfx::B3DHomMatrix& rObjectTransform,
             const basegfx::B2DVector& rTextureSize,
@@ -323,7 +323,7 @@ namespace drawinglayer
                         aSimplifiedFillAttribute,
                         attribute::FillGradientAttribute())));
 
-            return Primitive3DSequence(&aHidden, 1);
+            return { aHidden };
         }
 
     } // end of namespace primitive3d
diff --git a/drawinglayer/source/primitive3d/sdrextrudeprimitive3d.cxx b/drawinglayer/source/primitive3d/sdrextrudeprimitive3d.cxx
index 46b8654..153046f 100644
--- a/drawinglayer/source/primitive3d/sdrextrudeprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/sdrextrudeprimitive3d.cxx
@@ -39,9 +39,9 @@ namespace drawinglayer
 {
     namespace primitive3d
     {
-        Primitive3DSequence SdrExtrudePrimitive3D::create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const
+        Primitive3DContainer SdrExtrudePrimitive3D::create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const
         {
-            Primitive3DSequence aRetval;
+            Primitive3DContainer aRetval;
 
             // get slices
             const Slice3DVector& rSliceVector = getSlices();
@@ -322,9 +322,9 @@ namespace drawinglayer
 
                         if(aNewLineGeometry.count())
                         {
-                            const Primitive3DSequence aLines(create3DPolyPolygonLinePrimitives(
+                            const Primitive3DContainer aLines(create3DPolyPolygonLinePrimitives(
                                 aNewLineGeometry, getTransform(), getSdrLFSAttribute().getLine()));
-                            appendPrimitive3DSequenceToPrimitive3DSequence(aRetval, aLines);
+                            aRetval.append(aLines);
                         }
                     }
                     else
@@ -334,23 +334,23 @@ namespace drawinglayer
                         const basegfx::B3DPolyPolygon aVerLine(extractVerticalLinesFromSlice(rSliceVector));
 
                         // add horizontal lines
-                        const Primitive3DSequence aHorLines(create3DPolyPolygonLinePrimitives(
+                        const Primitive3DContainer aHorLines(create3DPolyPolygonLinePrimitives(
                             aHorLine, getTransform(), getSdrLFSAttribute().getLine()));
-                        appendPrimitive3DSequenceToPrimitive3DSequence(aRetval, aHorLines);
+                        aRetval.append(aHorLines);
 
                         // add vertical lines
-                        const Primitive3DSequence aVerLines(create3DPolyPolygonLinePrimitives(
+                        const Primitive3DContainer aVerLines(create3DPolyPolygonLinePrimitives(
                             aVerLine, getTransform(), getSdrLFSAttribute().getLine()));
-                        appendPrimitive3DSequenceToPrimitive3DSequence(aRetval, aVerLines);
+                        aRetval.append(aVerLines);
                     }
                 }
 
                 // add shadow
-                if(!getSdrLFSAttribute().getShadow().isDefault() && aRetval.hasElements())
+                if(!getSdrLFSAttribute().getShadow().isDefault() && !aRetval.empty())
                 {
-                    const Primitive3DSequence aShadow(createShadowPrimitive3D(
+                    const Primitive3DContainer aShadow(createShadowPrimitive3D(
                         aRetval, getSdrLFSAttribute().getShadow(), getSdr3DObjectAttribute().getShadow3D()));
-                    appendPrimitive3DSequenceToPrimitive3DSequence(aRetval, aShadow);
+                    aRetval.append(aShadow);
                 }
             }
 
@@ -482,18 +482,18 @@ namespace drawinglayer
             return get3DRangeFromSlices(getSlices());
         }
 
-        Primitive3DSequence SdrExtrudePrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const
+        Primitive3DContainer SdrExtrudePrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const
         {
             if(getSdr3DObjectAttribute().getReducedLineGeometry())
             {
                 if(!mpLastRLGViewInformation ||
-                    (getBuffered3DDecomposition().hasElements()
+                    (!getBuffered3DDecomposition().empty()
                         && *mpLastRLGViewInformation != rViewInformation))
                 {
                     // conditions of last local decomposition with reduced lines have changed. Remember
                     // new one and clear current decompositiopn
                     SdrExtrudePrimitive3D* pThat = const_cast< SdrExtrudePrimitive3D* >(this);
-                    pThat->setBuffered3DDecomposition(Primitive3DSequence());
+                    pThat->setBuffered3DDecomposition(Primitive3DContainer());
                     delete pThat->mpLastRLGViewInformation;
                     pThat->mpLastRLGViewInformation = new geometry::ViewInformation3D(rViewInformation);
                 }
diff --git a/drawinglayer/source/primitive3d/sdrlatheprimitive3d.cxx b/drawinglayer/source/primitive3d/sdrlatheprimitive3d.cxx
index 2f2d621..d49427d 100644
--- a/drawinglayer/source/primitive3d/sdrlatheprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/sdrlatheprimitive3d.cxx
@@ -39,9 +39,9 @@ namespace drawinglayer
 {
     namespace primitive3d
     {
-        Primitive3DSequence SdrLathePrimitive3D::create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const
+        Primitive3DContainer SdrLathePrimitive3D::create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const
         {
-            Primitive3DSequence aRetval;
+            Primitive3DContainer aRetval;
 
             // get slices
             const Slice3DVector& rSliceVector = getSlices();
@@ -166,9 +166,9 @@ namespace drawinglayer
 
                         if(aNewLineGeometry.count())
                         {
-                            const Primitive3DSequence aLines(create3DPolyPolygonLinePrimitives(
+                            const Primitive3DContainer aLines(create3DPolyPolygonLinePrimitives(
                                 aNewLineGeometry, getTransform(), getSdrLFSAttribute().getLine()));
-                            appendPrimitive3DSequenceToPrimitive3DSequence(aRetval, aLines);
+                            aRetval.append(aLines);
                         }
                     }
                     else
@@ -178,24 +178,24 @@ namespace drawinglayer
                         const basegfx::B3DPolyPolygon aVerLine(extractVerticalLinesFromSlice(rSliceVector));
 
                         // add horizontal lines
-                        const Primitive3DSequence aHorLines(create3DPolyPolygonLinePrimitives(
+                        const Primitive3DContainer aHorLines(create3DPolyPolygonLinePrimitives(
                             aHorLine, getTransform(), getSdrLFSAttribute().getLine()));
-                        appendPrimitive3DSequenceToPrimitive3DSequence(aRetval, aHorLines);
+                        aRetval.append(aHorLines);
 
                         // add vertical lines
-                        const Primitive3DSequence aVerLines(create3DPolyPolygonLinePrimitives(
+                        const Primitive3DContainer aVerLines(create3DPolyPolygonLinePrimitives(
                             aVerLine, getTransform(), getSdrLFSAttribute().getLine()));
-                        appendPrimitive3DSequenceToPrimitive3DSequence(aRetval, aVerLines);
+                        aRetval.append(aVerLines);
                     }
                 }
 
                 // add shadow
                 if(!getSdrLFSAttribute().getShadow().isDefault()
-                    && aRetval.hasElements())
+                    && !aRetval.empty())
                 {
-                    const Primitive3DSequence aShadow(createShadowPrimitive3D(
+                    const Primitive3DContainer aShadow(createShadowPrimitive3D(
                         aRetval, getSdrLFSAttribute().getShadow(), getSdr3DObjectAttribute().getShadow3D()));
-                    appendPrimitive3DSequenceToPrimitive3DSequence(aRetval, aShadow);
+                    aRetval.append(aShadow);
                 }
             }
 
@@ -344,18 +344,18 @@ namespace drawinglayer
             return get3DRangeFromSlices(getSlices());
         }
 
-        Primitive3DSequence SdrLathePrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const
+        Primitive3DContainer SdrLathePrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const
         {
             if(getSdr3DObjectAttribute().getReducedLineGeometry())
             {
                 if(!mpLastRLGViewInformation ||
-                    (getBuffered3DDecomposition().hasElements()
+                    (!getBuffered3DDecomposition().empty()
                         && *mpLastRLGViewInformation != rViewInformation))
                 {
                     // conditions of last local decomposition with reduced lines have changed. Remember
                     // new one and clear current decompositiopn
                     SdrLathePrimitive3D* pThat = const_cast< SdrLathePrimitive3D* >(this);
-                    pThat->setBuffered3DDecomposition(Primitive3DSequence());
+                    pThat->setBuffered3DDecomposition(Primitive3DContainer());
                     delete pThat->mpLastRLGViewInformation;
                     pThat->mpLastRLGViewInformation = new geometry::ViewInformation3D(rViewInformation);
                 }
diff --git a/drawinglayer/source/primitive3d/sdrpolypolygonprimitive3d.cxx b/drawinglayer/source/primitive3d/sdrpolypolygonprimitive3d.cxx
index 285de36..214a434 100644
--- a/drawinglayer/source/primitive3d/sdrpolypolygonprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/sdrpolypolygonprimitive3d.cxx
@@ -35,9 +35,9 @@ namespace drawinglayer
 {
     namespace primitive3d
     {
-        Primitive3DSequence SdrPolyPolygonPrimitive3D::create3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
+        Primitive3DContainer SdrPolyPolygonPrimitive3D::create3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
         {
-            Primitive3DSequence aRetval;
+            Primitive3DContainer aRetval;
 
             if(getPolyPolygon3D().count())
             {
@@ -103,18 +103,18 @@ namespace drawinglayer
                     basegfx::B3DPolyPolygon aLine(getPolyPolygon3D());
                     aLine.clearNormals();
                     aLine.clearTextureCoordinates();
-                    const Primitive3DSequence aLines(create3DPolyPolygonLinePrimitives(
+                    const Primitive3DContainer aLines(create3DPolyPolygonLinePrimitives(
                         aLine, getTransform(), getSdrLFSAttribute().getLine()));
-                    appendPrimitive3DSequenceToPrimitive3DSequence(aRetval, aLines);
+                    aRetval.append(aLines);
                 }
 
                 // add shadow
                 if(!getSdrLFSAttribute().getShadow().isDefault()
-                    && aRetval.hasElements())
+                    && !aRetval.empty())
                 {
-                    const Primitive3DSequence aShadow(createShadowPrimitive3D(
+                    const Primitive3DContainer aShadow(createShadowPrimitive3D(
                         aRetval, getSdrLFSAttribute().getShadow(), getSdr3DObjectAttribute().getShadow3D()));
-                    appendPrimitive3DSequenceToPrimitive3DSequence(aRetval, aShadow);
+                    aRetval.append(aShadow);
                 }
             }
 
diff --git a/drawinglayer/source/primitive3d/sdrsphereprimitive3d.cxx b/drawinglayer/source/primitive3d/sdrsphereprimitive3d.cxx
index e9d39e4..66a6679 100644
--- a/drawinglayer/source/primitive3d/sdrsphereprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/sdrsphereprimitive3d.cxx
@@ -38,9 +38,9 @@ namespace drawinglayer
 {
     namespace primitive3d
     {
-        Primitive3DSequence SdrSpherePrimitive3D::create3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
+        Primitive3DContainer SdrSpherePrimitive3D::create3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
         {
-            Primitive3DSequence aRetval;
+            Primitive3DContainer aRetval;
             const basegfx::B3DRange aUnitRange(0.0, 0.0, 0.0, 1.0, 1.0, 1.0);
             const bool bCreateNormals(css::drawing::NormalsKind_SPECIFIC == getSdr3DObjectAttribute().getNormalsKind()
                 || css::drawing::NormalsKind_SPHERE == getSdr3DObjectAttribute().getNormalsKind());
@@ -149,18 +149,18 @@ namespace drawinglayer
             if(!getSdrLFSAttribute().getLine().isDefault())
             {
                 basegfx::B3DPolyPolygon aSphere(basegfx::tools::createSpherePolyPolygonFromB3DRange(aUnitRange, getHorizontalSegments(), getVerticalSegments()));
-                const Primitive3DSequence aLines(create3DPolyPolygonLinePrimitives(
+                const Primitive3DContainer aLines(create3DPolyPolygonLinePrimitives(
                     aSphere, getTransform(), getSdrLFSAttribute().getLine()));
-                appendPrimitive3DSequenceToPrimitive3DSequence(aRetval, aLines);
+                aRetval.append(aLines);
             }
 
             // add shadow
             if(!getSdrLFSAttribute().getShadow().isDefault()
-                && aRetval.hasElements())
+                && !aRetval.empty())
             {
-                const Primitive3DSequence aShadow(createShadowPrimitive3D(
+                const Primitive3DContainer aShadow(createShadowPrimitive3D(
                     aRetval, getSdrLFSAttribute().getShadow(), getSdr3DObjectAttribute().getShadow3D()));
-                appendPrimitive3DSequenceToPrimitive3DSequence(aRetval, aShadow);
+                aRetval.append(aShadow);
             }
 
             return aRetval;
diff --git a/drawinglayer/source/primitive3d/shadowprimitive3d.cxx b/drawinglayer/source/primitive3d/shadowprimitive3d.cxx
index 782170d..d99c39a 100644
--- a/drawinglayer/source/primitive3d/shadowprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/shadowprimitive3d.cxx
@@ -35,7 +35,7 @@ namespace drawinglayer
             const basegfx::BColor& rShadowColor,
             double fShadowTransparence,
             bool bShadow3D,
-            const Primitive3DSequence& rChildren)
+            const Primitive3DContainer& rChildren)
         :   GroupPrimitive3D(rChildren),
             maShadowTransform(rShadowTransform),
             maShadowColor(rShadowColor),
diff --git a/drawinglayer/source/primitive3d/textureprimitive3d.cxx b/drawinglayer/source/primitive3d/textureprimitive3d.cxx
index 674e768..53587ac 100644
--- a/drawinglayer/source/primitive3d/textureprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/textureprimitive3d.cxx
@@ -32,7 +32,7 @@ namespace drawinglayer
     namespace primitive3d
     {
         TexturePrimitive3D::TexturePrimitive3D(
-            const Primitive3DSequence& rChildren,
+            const Primitive3DContainer& rChildren,
             const basegfx::B2DVector& rTextureSize,
             bool bModulate, bool bFilter)
         :   GroupPrimitive3D(rChildren),
@@ -65,7 +65,7 @@ namespace drawinglayer
     {
         UnifiedTransparenceTexturePrimitive3D::UnifiedTransparenceTexturePrimitive3D(
             double fTransparence,
-            const Primitive3DSequence& rChildren)
+            const Primitive3DContainer& rChildren)
         :   TexturePrimitive3D(rChildren, basegfx::B2DVector(), false, false),
             mfTransparence(fTransparence)
         {
@@ -87,10 +87,10 @@ namespace drawinglayer
         {
             // do not use the fallback to decomposition here since for a correct BoundRect we also
             // need invisible (1.0 == getTransparence()) geometry; these would be deleted in the decomposition
-            return getB3DRangeFromPrimitive3DSequence(getChildren(), rViewInformation);
+            return getChildren().getB3DRange(rViewInformation);
         }
 
-        Primitive3DSequence UnifiedTransparenceTexturePrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
+        Primitive3DContainer UnifiedTransparenceTexturePrimitive3D::get3DDecomposition(const geometry::ViewInformation3D& /*rViewInformation*/) const
         {
             if(0.0 == getTransparence())
             {
@@ -103,12 +103,12 @@ namespace drawinglayer
                 const basegfx::BColor aGray(getTransparence(), getTransparence(), getTransparence());
                 const attribute::FillGradientAttribute aFillGradient(attribute::GRADIENTSTYLE_LINEAR, 0.0, 0.0, 0.0, 0.0, aGray, aGray, 1);
                 const Primitive3DReference xRef(new TransparenceTexturePrimitive3D(aFillGradient, getChildren(), getTextureSize()));
-                return Primitive3DSequence(&xRef, 1L);
+                return { xRef };
             }
             else
             {
                 // completely transparent or invalid definition, add nothing
-                return Primitive3DSequence();
+                return Primitive3DContainer();
             }
         }
 
@@ -126,7 +126,7 @@ namespace drawinglayer
     {
         GradientTexturePrimitive3D::GradientTexturePrimitive3D(
             const attribute::FillGradientAttribute& rGradient,
-            const Primitive3DSequence& rChildren,
+            const Primitive3DContainer& rChildren,
             const basegfx::B2DVector& rTextureSize,
             bool bModulate,
             bool bFilter)
@@ -161,7 +161,7 @@ namespace drawinglayer
     {
         BitmapTexturePrimitive3D::BitmapTexturePrimitive3D(
             const attribute::FillGraphicAttribute& rFillGraphicAttribute,
-            const Primitive3DSequence& rChildren,
+            const Primitive3DContainer& rChildren,
             const basegfx::B2DVector& rTextureSize,
             bool bModulate, bool bFilter)
         :   TexturePrimitive3D(rChildren, rTextureSize, bModulate, bFilter),
@@ -195,7 +195,7 @@ namespace drawinglayer
     {
         TransparenceTexturePrimitive3D::TransparenceTexturePrimitive3D(
             const attribute::FillGradientAttribute& rGradient,
-            const Primitive3DSequence& rChildren,
+            const Primitive3DContainer& rChildren,
             const basegfx::B2DVector& rTextureSize)
         :   GradientTexturePrimitive3D(rGradient, rChildren, rTextureSize, false, false)
         {
diff --git a/drawinglayer/source/primitive3d/transformprimitive3d.cxx b/drawinglayer/source/primitive3d/transformprimitive3d.cxx
index 8f15541..f0351da 100644
--- a/drawinglayer/source/primitive3d/transformprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/transformprimitive3d.cxx
@@ -33,7 +33,7 @@ namespace drawinglayer
     {
         TransformPrimitive3D::TransformPrimitive3D(
             const basegfx::B3DHomMatrix& rTransformation,
-            const Primitive3DSequence& rChildren)
+            const Primitive3DContainer& rChildren)
         :   GroupPrimitive3D(rChildren),
             maTransformation(rTransformation)
         {
@@ -53,7 +53,7 @@ namespace drawinglayer
 
         basegfx::B3DRange TransformPrimitive3D::getB3DRange(const geometry::ViewInformation3D& rViewInformation) const
         {
-            basegfx::B3DRange aRetval(getB3DRangeFromPrimitive3DSequence(getChildren(), rViewInformation));
+            basegfx::B3DRange aRetval(getChildren().getB3DRange(rViewInformation));
             aRetval.transform(getTransformation());
             return aRetval;
         }
diff --git a/drawinglayer/source/processor2d/hittestprocessor2d.cxx b/drawinglayer/source/processor2d/hittestprocessor2d.cxx
index cda04f3..190778e 100644
--- a/drawinglayer/source/processor2d/hittestprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/hittestprocessor2d.cxx
@@ -183,14 +183,13 @@ namespace drawinglayer
 
                     if(!aFront.equal(aBack))
                     {
-                        const primitive3d::Primitive3DSequence& rPrimitives = rCandidate.getChildren3D();
+                        const primitive3d::Primitive3DContainer& rPrimitives = rCandidate.getChildren3D();
 
-                        if(rPrimitives.hasElements())
+                        if(!rPrimitives.empty())
                         {
                             // make BoundVolume empty and overlapping test for speedup
                             const basegfx::B3DRange aObjectRange(
-                                drawinglayer::primitive3d::getB3DRangeFromPrimitive3DSequence(
-                                    rPrimitives, rObjectViewInformation3D));
+                                    rPrimitives.getB3DRange(rObjectViewInformation3D));
 
                             if(!aObjectRange.isEmpty())
                             {
diff --git a/drawinglayer/source/processor3d/baseprocessor3d.cxx b/drawinglayer/source/processor3d/baseprocessor3d.cxx
index c6d92b1..2983278 100644
--- a/drawinglayer/source/processor3d/baseprocessor3d.cxx
+++ b/drawinglayer/source/processor3d/baseprocessor3d.cxx
@@ -18,6 +18,7 @@
  */
 
 #include <drawinglayer/processor3d/baseprocessor3d.hxx>
+#include <comphelper/sequence.hxx>
 
 
 
@@ -42,13 +43,13 @@ namespace drawinglayer
         {
         }
 
-        void BaseProcessor3D::process(const primitive3d::Primitive3DSequence& rSource)
+        void BaseProcessor3D::process(const primitive3d::Primitive3DContainer& rSource)
         {
-            if(rSource.hasElements())
+            if(!rSource.empty())
             {
-                const sal_Int32 nCount(rSource.getLength());
+                const size_t nCount(rSource.size());
 
-                for(sal_Int32 a(0L); a < nCount; a++)
+                for(size_t a(0L); a < nCount; a++)
                 {
                     // get reference
                     const primitive3d::Primitive3DReference xReference(rSource[a]);
@@ -66,7 +67,7 @@ namespace drawinglayer
                         {
                             // unknown implementation, use UNO API call instead and process recursively
                             const uno::Sequence< beans::PropertyValue >& rViewParameters(getViewInformation3D().getViewInformationSequence());
-                            process(xReference->getDecomposition(rViewParameters));
+                            process(comphelper::sequenceToContainer<primitive3d::Primitive3DContainer>(xReference->getDecomposition(rViewParameters)));
                         }
                     }
                 }
diff --git a/drawinglayer/source/processor3d/cutfindprocessor3d.cxx b/drawinglayer/source/processor3d/cutfindprocessor3d.cxx
index 0daeb52..6a1fc2a 100644
--- a/drawinglayer/source/processor3d/cutfindprocessor3d.cxx
+++ b/drawinglayer/source/processor3d/cutfindprocessor3d.cxx
@@ -120,9 +120,9 @@ namespace drawinglayer
                     // so force this primitive to process its children directly if the switch is set
                     // (which is the default). Else, ignore invisible content
                     const primitive3d::HiddenGeometryPrimitive3D& rHiddenGeometry(static_cast< const primitive3d::HiddenGeometryPrimitive3D& >(rCandidate));
-                       const primitive3d::Primitive3DSequence& rChildren = rHiddenGeometry.getChildren();
+                       const primitive3d::Primitive3DContainer& rChildren = rHiddenGeometry.getChildren();
 
-                    if(rChildren.hasElements())
+                    if(!rChildren.empty())
                     {
                         if(getUseInvisiblePrimitiveContent())
                         {
@@ -135,9 +135,9 @@ namespace drawinglayer
                 case PRIMITIVE3D_ID_UNIFIEDTRANSPARENCETEXTUREPRIMITIVE3D :
                 {
                     const primitive3d::UnifiedTransparenceTexturePrimitive3D& rPrimitive = static_cast< const primitive3d::UnifiedTransparenceTexturePrimitive3D& >(rCandidate);
-                       const primitive3d::Primitive3DSequence rChildren = rPrimitive.getChildren();
+                       const primitive3d::Primitive3DContainer rChildren = rPrimitive.getChildren();
 
-                    if(rChildren.getLength())
+                    if(rChildren.size())
                     {
                         if(1.0 <= rPrimitive.getTransparence())
                         {
diff --git a/drawinglayer/source/processor3d/defaultprocessor3d.cxx b/drawinglayer/source/processor3d/defaultprocessor3d.cxx
index 38b53d0..0f572e7 100644
--- a/drawinglayer/source/processor3d/defaultprocessor3d.cxx
+++ b/drawinglayer/source/processor3d/defaultprocessor3d.cxx
@@ -49,9 +49,9 @@ namespace drawinglayer
     {
         void DefaultProcessor3D::impRenderGradientTexturePrimitive3D(const primitive3d::GradientTexturePrimitive3D& rPrimitive, bool bTransparence)
         {
-            const primitive3d::Primitive3DSequence& rSubSequence = rPrimitive.getChildren();
+            const primitive3d::Primitive3DContainer& rSubSequence = rPrimitive.getChildren();
 
-            if(rSubSequence.hasElements())
+            if(!rSubSequence.empty())
             {
                 // rescue values
                 const bool bOldModulate(getModulate()); mbModulate = rPrimitive.getModulate();
@@ -212,9 +212,9 @@ namespace drawinglayer
 
         void DefaultProcessor3D::impRenderHatchTexturePrimitive3D(const primitive3d::HatchTexturePrimitive3D& rPrimitive)
         {
-            const primitive3d::Primitive3DSequence& rSubSequence = rPrimitive.getChildren();
+            const primitive3d::Primitive3DContainer& rSubSequence = rPrimitive.getChildren();
 
-            if(rSubSequence.hasElements())
+            if(!rSubSequence.empty())
             {
                 // rescue values
                 const bool bOldModulate(getModulate()); mbModulate = rPrimitive.getModulate();
@@ -253,9 +253,9 @@ namespace drawinglayer
 
         void DefaultProcessor3D::impRenderBitmapTexturePrimitive3D(const primitive3d::BitmapTexturePrimitive3D& rPrimitive)
         {
-            const primitive3d::Primitive3DSequence& rSubSequence = rPrimitive.getChildren();
+            const primitive3d::Primitive3DContainer& rSubSequence = rPrimitive.getChildren();
 
-            if(rSubSequence.hasElements())
+            if(!rSubSequence.empty())
             {
                 // rescue values
                 const bool bOldModulate(getModulate()); mbModulate = rPrimitive.getModulate();
@@ -304,9 +304,9 @@ namespace drawinglayer
 
         void DefaultProcessor3D::impRenderModifiedColorPrimitive3D(const primitive3d::ModifiedColorPrimitive3D& rModifiedCandidate)
         {
-            const primitive3d::Primitive3DSequence& rSubSequence = rModifiedCandidate.getChildren();
+            const primitive3d::Primitive3DContainer& rSubSequence = rModifiedCandidate.getChildren();
 
-            if(rSubSequence.hasElements())
+            if(!rSubSequence.empty())
             {
                 // put modifier on stack
                 maBColorModifierStack.push(rModifiedCandidate.getColorModifier());
diff --git a/drawinglayer/source/processor3d/geometry2dextractor.cxx b/drawinglayer/source/processor3d/geometry2dextractor.cxx
index f7155b1..db304fd 100644
--- a/drawinglayer/source/processor3d/geometry2dextractor.cxx
+++ b/drawinglayer/source/processor3d/geometry2dextractor.cxx
@@ -73,9 +73,9 @@ namespace drawinglayer
                 {
                     // ModifiedColorPrimitive3D; push, process and pop
                     const primitive3d::ModifiedColorPrimitive3D& rModifiedCandidate = static_cast< const primitive3d::ModifiedColorPrimitive3D& >(rCandidate);
-                    const primitive3d::Primitive3DSequence& rSubSequence = rModifiedCandidate.getChildren();
+                    const primitive3d::Primitive3DContainer& rSubSequence = rModifiedCandidate.getChildren();
 
-                    if(rSubSequence.hasElements())
+                    if(!rSubSequence.empty())
                     {
                         maBColorModifierStack.push(rModifiedCandidate.getColorModifier());
                         process(rModifiedCandidate.getChildren());
@@ -121,9 +121,9 @@ namespace drawinglayer
                 {
                     // TexturePrimitive3D: Process children, do not try to decompose
                     const primitive3d::TexturePrimitive3D& rTexturePrimitive = static_cast< const primitive3d::TexturePrimitive3D& >(rCandidate);
-                    const primitive3d::Primitive3DSequence aChildren(rTexturePrimitive.getChildren());
+                    const primitive3d::Primitive3DContainer aChildren(rTexturePrimitive.getChildren());
 
-                    if(aChildren.hasElements())
+                    if(!aChildren.empty())
                     {
                         process(aChildren);
                     }
diff --git a/include/drawinglayer/primitive2d/embedded3dprimitive2d.hxx b/include/drawinglayer/primitive2d/embedded3dprimitive2d.hxx
index 850cc36..78d4f91 100644
--- a/include/drawinglayer/primitive2d/embedded3dprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/embedded3dprimitive2d.hxx
@@ -48,7 +48,7 @@ namespace drawinglayer
         {
         private:
             /// the sequence of 3d primitives
-            primitive3d::Primitive3DSequence                    mxChildren3D;
+            primitive3d::Primitive3DContainer                    mxChildren3D;
 
             /// the 2D scene object transformation
             basegfx::B2DHomMatrix                               maObjectTransformation;
@@ -88,7 +88,7 @@ namespace drawinglayer
         public:
             /// constructor
             Embedded3DPrimitive2D(
-                const primitive3d::Primitive3DSequence& rxChildren3D,
+                const primitive3d::Primitive3DContainer& rxChildren3D,
                 const basegfx::B2DHomMatrix& rObjectTransformation,
                 const geometry::ViewInformation3D& rViewInformation3D,
                 const basegfx::B3DVector& rLightNormal,
@@ -96,7 +96,7 @@ namespace drawinglayer
                 const basegfx::B3DRange& rScene3DRange);
 
             /// data read access
-            const primitive3d::Primitive3DSequence& getChildren3D() const { return mxChildren3D; }
+            const primitive3d::Primitive3DContainer& getChildren3D() const { return mxChildren3D; }
             const basegfx::B2DHomMatrix& getObjectTransformation() const { return maObjectTransformation; }
             const geometry::ViewInformation3D& getViewInformation3D() const { return maViewInformation3D; }
             const basegfx::B3DVector& getLightNormal() const { return maLightNormal; }
diff --git a/include/drawinglayer/primitive2d/sceneprimitive2d.hxx b/include/drawinglayer/primitive2d/sceneprimitive2d.hxx
index be2681f..1639428 100644
--- a/include/drawinglayer/primitive2d/sceneprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/sceneprimitive2d.hxx
@@ -57,7 +57,7 @@ namespace drawinglayer
         {
         private:
             /// the 3D geometry definition
-            primitive3d::Primitive3DSequence                    mxChildren3D;
+            primitive3d::Primitive3DContainer                    mxChildren3D;
 
             /// 3D scene attribute set
             attribute::SdrSceneAttribute                        maSdrSceneAttribute;
@@ -124,14 +124,14 @@ namespace drawinglayer
 
             /// constructor
             ScenePrimitive2D(
-                const primitive3d::Primitive3DSequence& rxChildren3D,
+                const primitive3d::Primitive3DContainer& rxChildren3D,
                 const attribute::SdrSceneAttribute& rSdrSceneAttribute,
                 const attribute::SdrLightingAttribute& rSdrLightingAttribute,
                 const basegfx::B2DHomMatrix& rObjectTransformation,
                 const geometry::ViewInformation3D& rViewInformation3D);
 
             /// data read access
-            const primitive3d::Primitive3DSequence& getChildren3D() const { return mxChildren3D; }
+            const primitive3d::Primitive3DContainer& getChildren3D() const { return mxChildren3D; }
             const attribute::SdrSceneAttribute& getSdrSceneAttribute() const { return maSdrSceneAttribute; }
             const attribute::SdrLightingAttribute& getSdrLightingAttribute() const { return maSdrLightingAttribute; }
             const basegfx::B2DHomMatrix& getObjectTransformation() const { return maObjectTransformation; }
diff --git a/include/drawinglayer/primitive3d/baseprimitive3d.hxx b/include/drawinglayer/primitive3d/baseprimitive3d.hxx
index 1591088..fe6b5a1 100644
--- a/include/drawinglayer/primitive3d/baseprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/baseprimitive3d.hxx
@@ -48,10 +48,30 @@ namespace drawinglayer { namespace geometry {
 }}
 
 namespace drawinglayer { namespace primitive3d {
-    /// typedefs for basePrimitive3DImplBase, Primitive3DSequence and Primitive3DReference
+    /// typedefs for basePrimitive3DImplBase, Primitive3DContainer and Primitive3DReference
     typedef cppu::WeakComponentImplHelper1< css::graphic::XPrimitive3D > BasePrimitive3DImplBase;
     typedef css::uno::Reference< css::graphic::XPrimitive3D > Primitive3DReference;
     typedef css::uno::Sequence< Primitive3DReference > Primitive3DSequence;
+
+    class DRAWINGLAYER_DLLPUBLIC SAL_WARN_UNUSED Primitive3DContainer : public std::vector< Primitive3DReference >
+    {
+    public:
+        explicit Primitive3DContainer() {}
+        explicit Primitive3DContainer( size_type count ) : vector(count) {}
+        Primitive3DContainer( const Primitive3DContainer& other ) : vector(other) {}
+        Primitive3DContainer( const Primitive3DContainer&& other ) : vector(other) {}
+        Primitive3DContainer( const vector< Primitive3DReference >& other ) : vector(other) {}
+        Primitive3DContainer( std::initializer_list<Primitive3DReference> init ) : vector(init) {}
+
+        void append(const Primitive3DContainer& rSource);
+        void append(const Primitive3DSequence& rSource);
+        void append(Primitive3DContainer&& rSource);
+        Primitive3DContainer& operator=(const Primitive3DContainer& r) { vector::operator=(r); return *this; }
+        Primitive3DContainer& operator=(const Primitive3DContainer&& r) { vector::operator=(r); return *this; }
+        bool operator==(const Primitive3DContainer& rB) const;
+        bool operator!=(const Primitive3DContainer& rB) const { return !operator==(rB); }
+        basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D& aViewInformation) const;
+    };
 }}
 
 
@@ -106,7 +126,7 @@ namespace drawinglayer
             virtual sal_uInt32 getPrimitive3DID() const = 0;
 
             /// The default implementation returns an empty sequence
-            virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const;
+            virtual Primitive3DContainer get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const;
 
 
             // Methods from XPrimitive3D
@@ -144,20 +164,20 @@ namespace drawinglayer
         {
         private:
             /// a sequence used for buffering the last create3DDecomposition() result
-            Primitive3DSequence                             maBuffered3DDecomposition;
+            Primitive3DContainer                             maBuffered3DDecomposition;
 
         protected:
             /** access methods to maBuffered3DDecomposition. The usage of this methods may allow
                 later thread-safe stuff to be added if needed. Only to be used by getDecomposition()
                 implementations for buffering the last decomposition.
              */
-            const Primitive3DSequence& getBuffered3DDecomposition() const { return maBuffered3DDecomposition; }
-            void setBuffered3DDecomposition(const Primitive3DSequence& rNew) { maBuffered3DDecomposition = rNew; }
+            const Primitive3DContainer& getBuffered3DDecomposition() const { return maBuffered3DDecomposition; }
+            void setBuffered3DDecomposition(const Primitive3DContainer& rNew) { maBuffered3DDecomposition = rNew; }
 
             /** method which is to be used to implement the local decomposition of a 2D primitive. The default
                 implementation will just return an empty decomposition
              */
-            virtual Primitive3DSequence create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const;
+            virtual Primitive3DContainer create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const;
 
         public:
             // constructor
@@ -169,7 +189,7 @@ namespace drawinglayer
                 overridden and the ViewInformation for the last decomposition needs to be remembered, too, and
                 be used in the next call to decide if the buffered decomposition may be reused or not.
              */
-            virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
+            virtual Primitive3DContainer get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
         };
     } // end of namespace primitive3d
 } // end of namespace drawinglayer
@@ -184,9 +204,6 @@ namespace drawinglayer
         /// get B3DRange from a given Primitive3DReference
         basegfx::B3DRange DRAWINGLAYER_DLLPUBLIC getB3DRangeFromPrimitive3DReference(const Primitive3DReference& rCandidate, const geometry::ViewInformation3D& aViewInformation);
 
-        /// get range3D from a given Primitive3DSequence
-        basegfx::B3DRange DRAWINGLAYER_DLLPUBLIC getB3DRangeFromPrimitive3DSequence(const Primitive3DSequence& rCandidate, const geometry::ViewInformation3D& aViewInformation);
-
         /** compare two Primitive2DReferences for equality, including trying to get implementations (BasePrimitive2D)
             and using compare operator
          */
@@ -196,7 +213,7 @@ namespace drawinglayer
         bool DRAWINGLAYER_DLLPUBLIC arePrimitive3DSequencesEqual(const Primitive3DSequence& rA, const Primitive3DSequence& rB);
 
         /// concatenate sequence
-        void DRAWINGLAYER_DLLPUBLIC appendPrimitive3DSequenceToPrimitive3DSequence(Primitive3DSequence& rDest, const Primitive3DSequence& rSource);
+        void DRAWINGLAYER_DLLPUBLIC appendPrimitive3DSequenceToPrimitive3DSequence(Primitive3DSequence& rDest, const Primitive3DContainer& rSource);
 
         /// concatenate single Primitive3D
         void DRAWINGLAYER_DLLPUBLIC appendPrimitive3DReferenceToPrimitive3DSequence(Primitive3DSequence& rDest, const Primitive3DReference& rSource);
diff --git a/include/drawinglayer/primitive3d/groupprimitive3d.hxx b/include/drawinglayer/primitive3d/groupprimitive3d.hxx
index 1637a0c..1a61868 100644
--- a/include/drawinglayer/primitive3d/groupprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/groupprimitive3d.hxx
@@ -53,20 +53,20 @@ namespace drawinglayer
         {
         private:
             /// the children. Declared private since this shall never be changed at all after construction
-            Primitive3DSequence                             maChildren;
+            Primitive3DContainer                             maChildren;
 
         public:
             /// constructor
-            explicit GroupPrimitive3D(const Primitive3DSequence& rChildren);
+            explicit GroupPrimitive3D(const Primitive3DContainer& rChildren);
 
             /// data read access
-            Primitive3DSequence getChildren() const { return maChildren; }
+            Primitive3DContainer getChildren() const { return maChildren; }
 
             /// compare operator
             virtual bool operator==( const BasePrimitive3D& rPrimitive ) const override;
 
             /// local decomposition. Implementation will just return children
-            virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
+            virtual Primitive3DContainer get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
             /// provide unique ID
             DeclPrimitive3DIDBlock()
diff --git a/include/drawinglayer/primitive3d/hatchtextureprimitive3d.hxx b/include/drawinglayer/primitive3d/hatchtextureprimitive3d.hxx
index 6be6c2e..8ea9162 100644
--- a/include/drawinglayer/primitive3d/hatchtextureprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/hatchtextureprimitive3d.hxx
@@ -45,21 +45,21 @@ namespace drawinglayer
             attribute::FillHatchAttribute                   maHatch;
 
             /// the buffered decomposed hatch
-            Primitive3DSequence                             maBuffered3DDecomposition;
+            Primitive3DContainer                             maBuffered3DDecomposition;
 
         protected:
             /// helper: local decomposition
-            Primitive3DSequence impCreate3DDecomposition() const;
+            Primitive3DContainer impCreate3DDecomposition() const;
 
             /// local access methods to maBufferedDecomposition
-            const Primitive3DSequence& getBuffered3DDecomposition() const { return maBuffered3DDecomposition; }
-            void setBuffered3DDecomposition(const Primitive3DSequence& rNew) { maBuffered3DDecomposition = rNew; }
+            const Primitive3DContainer& getBuffered3DDecomposition() const { return maBuffered3DDecomposition; }
+            void setBuffered3DDecomposition(const Primitive3DContainer& rNew) { maBuffered3DDecomposition = rNew; }
 
         public:
             /// constructor
             HatchTexturePrimitive3D(
                 const attribute::FillHatchAttribute& rHatch,
-                const Primitive3DSequence& rChildren,
+                const Primitive3DContainer& rChildren,
                 const basegfx::B2DVector& rTextureSize,
                 bool bModulate,
                 bool bFilter);
@@ -71,7 +71,7 @@ namespace drawinglayer
             virtual bool operator==(const BasePrimitive3D& rPrimitive) const override;
 
             /// local decomposition.
-            virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
+            virtual Primitive3DContainer get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
             /// provide unique ID
             DeclPrimitive3DIDBlock()
diff --git a/include/drawinglayer/primitive3d/hiddengeometryprimitive3d.hxx b/include/drawinglayer/primitive3d/hiddengeometryprimitive3d.hxx
index afd1b21..7b95cc8 100644
--- a/include/drawinglayer/primitive3d/hiddengeometryprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/hiddengeometryprimitive3d.hxx
@@ -43,7 +43,7 @@ namespace drawinglayer
         class DRAWINGLAYER_DLLPUBLIC HiddenGeometryPrimitive3D : public GroupPrimitive3D
         {
         public:
-            explicit HiddenGeometryPrimitive3D(const Primitive3DSequence& rChildren);
+            explicit HiddenGeometryPrimitive3D(const Primitive3DContainer& rChildren);
 
             // despite returning an empty decomposition since it's no visualisation data,
             // range calculation is intended to use hidden geometry, so
@@ -51,7 +51,7 @@ namespace drawinglayer
             virtual basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D& rViewInformation) const override;
 
             /// The default implementation returns an empty sequence
-            virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
+            virtual Primitive3DContainer get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
             // provide unique ID
             DeclPrimitive3DIDBlock()
diff --git a/include/drawinglayer/primitive3d/modifiedcolorprimitive3d.hxx b/include/drawinglayer/primitive3d/modifiedcolorprimitive3d.hxx
index 9e1235d..9361285 100644
--- a/include/drawinglayer/primitive3d/modifiedcolorprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/modifiedcolorprimitive3d.hxx
@@ -47,7 +47,7 @@ namespace drawinglayer
         public:
             /// constructor
             ModifiedColorPrimitive3D(
-                const Primitive3DSequence& rChildren,
+                const Primitive3DContainer& rChildren,
                 const basegfx::BColorModifierSharedPtr& rColorModifier);
 
             /// data read access
diff --git a/include/drawinglayer/primitive3d/polygonprimitive3d.hxx b/include/drawinglayer/primitive3d/polygonprimitive3d.hxx
index 2201b67..483b7b4 100644
--- a/include/drawinglayer/primitive3d/polygonprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/polygonprimitive3d.hxx
@@ -99,7 +99,7 @@ namespace drawinglayer
 
         protected:
             /// local decomposition.
-            virtual Primitive3DSequence create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
+            virtual Primitive3DContainer create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
         public:
             /// constructor
diff --git a/include/drawinglayer/primitive3d/polygontubeprimitive3d.hxx b/include/drawinglayer/primitive3d/polygontubeprimitive3d.hxx
index f8e312f..69d273f 100644
--- a/include/drawinglayer/primitive3d/polygontubeprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/polygontubeprimitive3d.hxx
@@ -49,7 +49,7 @@ namespace drawinglayer
         {
         private:
             /// hold the last decompositon since it's expensive
-            Primitive3DSequence                         maLast3DDecomposition;
+            Primitive3DContainer                         maLast3DDecomposition;
 
             /// visualisation parameters
             double                                      mfRadius;
@@ -63,11 +63,11 @@ namespace drawinglayer
                 later thread-safe stuff to be added if needed. Only to be used by getDecomposition()
                 implementations for buffering the last decomposition.
              */
-            const Primitive3DSequence& getLast3DDecomposition() const { return maLast3DDecomposition; }
-            void setLast3DDecomposition(const Primitive3DSequence& rNew) { maLast3DDecomposition = rNew; }
+            const Primitive3DContainer& getLast3DDecomposition() const { return maLast3DDecomposition; }
+            void setLast3DDecomposition(const Primitive3DContainer& rNew) { maLast3DDecomposition = rNew; }
 
             /// local decomposition.
-            Primitive3DSequence impCreate3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const;
+            Primitive3DContainer impCreate3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const;
 
         public:
             /// constructor
@@ -93,7 +93,7 @@ namespace drawinglayer
             /** local decomposition. Use own buffering since we are not derived from
                 BufferedDecompositionPrimitive3D
              */
-            virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
+            virtual Primitive3DContainer get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
             /// provide unique ID
             DeclPrimitive3DIDBlock()
diff --git a/include/drawinglayer/primitive3d/sdrcubeprimitive3d.hxx b/include/drawinglayer/primitive3d/sdrcubeprimitive3d.hxx
index 7d94dcb..21232d7 100644
--- a/include/drawinglayer/primitive3d/sdrcubeprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/sdrcubeprimitive3d.hxx
@@ -40,7 +40,7 @@ namespace drawinglayer
         {
         protected:
             /// local decomposition.
-            virtual Primitive3DSequence create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
+            virtual Primitive3DContainer create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
         public:
             /// constructor
diff --git a/include/drawinglayer/primitive3d/sdrdecompositiontools3d.hxx b/include/drawinglayer/primitive3d/sdrdecompositiontools3d.hxx
index 28c0936..01c2180 100644
--- a/include/drawinglayer/primitive3d/sdrdecompositiontools3d.hxx
+++ b/include/drawinglayer/primitive3d/sdrdecompositiontools3d.hxx
@@ -64,12 +64,12 @@ namespace drawinglayer
             const basegfx::B3DRange& rRange,
             const basegfx::B2DVector& rTextureSize);
 
-        Primitive3DSequence DRAWINGLAYER_DLLPUBLIC create3DPolyPolygonLinePrimitives(
+        Primitive3DContainer DRAWINGLAYER_DLLPUBLIC create3DPolyPolygonLinePrimitives(
             const basegfx::B3DPolyPolygon& rUnitPolyPolygon,
             const basegfx::B3DHomMatrix& rObjectTransform,
             const attribute::SdrLineAttribute& rLine);
 
-        Primitive3DSequence DRAWINGLAYER_DLLPUBLIC create3DPolyPolygonFillPrimitives(
+        Primitive3DContainer DRAWINGLAYER_DLLPUBLIC create3DPolyPolygonFillPrimitives(
             const ::std::vector< basegfx::B3DPolyPolygon >& r3DPolyPolygonVector,
             const basegfx::B3DHomMatrix& rObjectTransform,
             const basegfx::B2DVector& rTextureSize,
@@ -77,12 +77,12 @@ namespace drawinglayer
             const attribute::SdrFillAttribute& rFill,
             const attribute::FillGradientAttribute& rFillGradient);
 
-        Primitive3DSequence DRAWINGLAYER_DLLPUBLIC createShadowPrimitive3D(
-            const Primitive3DSequence& rSource,
+        Primitive3DContainer DRAWINGLAYER_DLLPUBLIC createShadowPrimitive3D(
+            const Primitive3DContainer& rSource,
             const attribute::SdrShadowAttribute& rShadow,
             bool bShadow3D);
 
-        Primitive3DSequence DRAWINGLAYER_DLLPUBLIC createHiddenGeometryPrimitives3D(
+        Primitive3DContainer DRAWINGLAYER_DLLPUBLIC createHiddenGeometryPrimitives3D(
             const ::std::vector< basegfx::B3DPolyPolygon >& r3DPolyPolygonVector,
             const basegfx::B3DHomMatrix& rObjectTransform,
             const basegfx::B2DVector& rTextureSize,
diff --git a/include/drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx b/include/drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx
index 3f3dfec5..9c4103d 100644
--- a/include/drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx
@@ -74,7 +74,7 @@ namespace drawinglayer
 
         protected:
             /// local decomposition.
-            virtual Primitive3DSequence create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
+            virtual Primitive3DContainer create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
         public:
             /// constructor
@@ -114,7 +114,7 @@ namespace drawinglayer
             virtual basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D& rViewInformation) const override;
 
             /// Overridden to allow for reduced line mode to decide if to buffer decomposition or not
-            virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
+            virtual Primitive3DContainer get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
             /// provide unique ID
             DeclPrimitive3DIDBlock()
diff --git a/include/drawinglayer/primitive3d/sdrlatheprimitive3d.hxx b/include/drawinglayer/primitive3d/sdrlatheprimitive3d.hxx
index 7850229..0df1127 100644
--- a/include/drawinglayer/primitive3d/sdrlatheprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/sdrlatheprimitive3d.hxx
@@ -76,7 +76,7 @@ namespace drawinglayer
 
         protected:
             /// local decomposition.
-            virtual Primitive3DSequence create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
+            virtual Primitive3DContainer create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
         public:
             /// constructor
@@ -120,7 +120,7 @@ namespace drawinglayer
             virtual basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D& rViewInformation) const override;
 
             /// Overridden to allow for reduced line mode to decide if to buffer decomposition or not
-            virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
+            virtual Primitive3DContainer get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
             /// provide unique ID
             DeclPrimitive3DIDBlock()
diff --git a/include/drawinglayer/primitive3d/sdrpolypolygonprimitive3d.hxx b/include/drawinglayer/primitive3d/sdrpolypolygonprimitive3d.hxx
index 8d2d1aa..ad32616 100644
--- a/include/drawinglayer/primitive3d/sdrpolypolygonprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/sdrpolypolygonprimitive3d.hxx
@@ -48,7 +48,7 @@ namespace drawinglayer
 
         protected:
             /// local decomposition.
-            virtual Primitive3DSequence create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
+            virtual Primitive3DContainer create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
         public:
             /// constructor
diff --git a/include/drawinglayer/primitive3d/sdrsphereprimitive3d.hxx b/include/drawinglayer/primitive3d/sdrsphereprimitive3d.hxx
index d33b596..9b4368f 100644
--- a/include/drawinglayer/primitive3d/sdrsphereprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/sdrsphereprimitive3d.hxx
@@ -45,7 +45,7 @@ namespace drawinglayer
 
         protected:
             /// local decomposition.
-            virtual Primitive3DSequence create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
+            virtual Primitive3DContainer create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
         public:
             /// constructor
diff --git a/include/drawinglayer/primitive3d/shadowprimitive3d.hxx b/include/drawinglayer/primitive3d/shadowprimitive3d.hxx
index 5b10da2..5c568fa 100644
--- a/include/drawinglayer/primitive3d/shadowprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/shadowprimitive3d.hxx
@@ -60,7 +60,7 @@ namespace drawinglayer
                 const basegfx::BColor& rShadowColor,
                 double fShadowTransparence,
                 bool bShadow3D,
-                const Primitive3DSequence& rChildren);
+                const Primitive3DContainer& rChildren);
 
             /// data read access
             const basegfx::B2DHomMatrix& getShadowTransform() const { return maShadowTransform; }
diff --git a/include/drawinglayer/primitive3d/textureprimitive3d.hxx b/include/drawinglayer/primitive3d/textureprimitive3d.hxx
index 242bb55..bd81c09 100644
--- a/include/drawinglayer/primitive3d/textureprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/textureprimitive3d.hxx
@@ -56,7 +56,7 @@ namespace drawinglayer
         public:
             /// constructor
             TexturePrimitive3D(
-                const Primitive3DSequence& rChildren,
+                const Primitive3DContainer& rChildren,
                 const basegfx::B2DVector& rTextureSize,
                 bool bModulate,
                 bool bFilter);
@@ -94,7 +94,7 @@ namespace drawinglayer
             /// constructor
             UnifiedTransparenceTexturePrimitive3D(
                 double fTransparence,
-                const Primitive3DSequence& rChildren);
+                const Primitive3DContainer& rChildren);
 
             /// data read access
             double getTransparence() const { return mfTransparence; }
@@ -106,7 +106,7 @@ namespace drawinglayer
             virtual basegfx::B3DRange getB3DRange(const geometry::ViewInformation3D& rViewInformation) const override;
 
             /// local decomposition.
-            virtual Primitive3DSequence get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
+            virtual Primitive3DContainer get3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
             /// provide unique ID
             DeclPrimitive3DIDBlock()
@@ -136,7 +136,7 @@ namespace drawinglayer
             /// constructor
             GradientTexturePrimitive3D(
                 const attribute::FillGradientAttribute& rGradient,
-                const Primitive3DSequence& rChildren,
+                const Primitive3DContainer& rChildren,
                 const basegfx::B2DVector& rTextureSize,
                 bool bModulate,
                 bool bFilter);
@@ -175,7 +175,7 @@ namespace drawinglayer
             /// constructor
             BitmapTexturePrimitive3D(
                 const attribute::FillGraphicAttribute& rFillGraphicAttribute,
-                const Primitive3DSequence& rChildren,
+                const Primitive3DContainer& rChildren,
                 const basegfx::B2DVector& rTextureSize,
                 bool bModulate,
                 bool bFilter);
@@ -211,7 +211,7 @@ namespace drawinglayer
             /// constructor
             TransparenceTexturePrimitive3D(
                 const attribute::FillGradientAttribute& rGradient,
-                const Primitive3DSequence& rChildren,
+                const Primitive3DContainer& rChildren,
                 const basegfx::B2DVector& rTextureSize);
 
             /// compare operator
diff --git a/include/drawinglayer/primitive3d/transformprimitive3d.hxx b/include/drawinglayer/primitive3d/transformprimitive3d.hxx
index 35bb4ce..54d597f 100644
--- a/include/drawinglayer/primitive3d/transformprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/transformprimitive3d.hxx
@@ -50,7 +50,7 @@ namespace drawinglayer
             /// constructor
             TransformPrimitive3D(
                 const basegfx::B3DHomMatrix& rTransformation,
-                const Primitive3DSequence& rChildren);
+                const Primitive3DContainer& rChildren);
 
             /// data read access
             const basegfx::B3DHomMatrix& getTransformation() const { return maTransformation; }
diff --git a/include/drawinglayer/processor3d/baseprocessor3d.hxx b/include/drawinglayer/processor3d/baseprocessor3d.hxx
index 73b353a..b22e781 100644
--- a/include/drawinglayer/processor3d/baseprocessor3d.hxx
+++ b/include/drawinglayer/processor3d/baseprocessor3d.hxx
@@ -60,7 +60,7 @@ namespace drawinglayer
             virtual ~BaseProcessor3D();
 
             // the central processing method
-            void process(const primitive3d::Primitive3DSequence& rSource);
+            void process(const primitive3d::Primitive3DContainer& rSource);
 
             // data access
             const geometry::ViewInformation3D& getViewInformation3D() const { return maViewInformation3D; }
diff --git a/include/svx/sdr/contact/viewcontactofe3d.hxx b/include/svx/sdr/contact/viewcontactofe3d.hxx
index eed59dd..33d6c03 100644
--- a/include/svx/sdr/contact/viewcontactofe3d.hxx
+++ b/include/svx/sdr/contact/viewcontactofe3d.hxx
@@ -56,22 +56,22 @@ public:
     }
 
     // public helpers
-    drawinglayer::primitive2d::Primitive2DContainer impCreateWithGivenPrimitive3DSequence(
-        const drawinglayer::primitive3d::Primitive3DSequence& rxContent3D) const;
+    drawinglayer::primitive2d::Primitive2DContainer impCreateWithGivenPrimitive3DContainer(
+        const drawinglayer::primitive3d::Primitive3DContainer& rxContent3D) const;
 
 
     // primitive stuff
 
 protected:
-    // Primitive3DSequence of the ViewContact. This contains all necessary information
+    // Primitive3DContainer of the ViewContact. This contains all necessary information
     // for the graphical visualisation and needs to be supported by all 3D VCs which
     // can be visualized. It does NOT contain the object transformation to be able to
     // buffer for all possible usages
-    drawinglayer::primitive3d::Primitive3DSequence              mxViewIndependentPrimitive3DSequence;
+    drawinglayer::primitive3d::Primitive3DContainer              mxViewIndependentPrimitive3DContainer;
 
     // This method is responsible for creating the graphical visualisation data which is
-    // stored in mxViewIndependentPrimitive3DSequence, but without object transformation
-    virtual drawinglayer::primitive3d::Primitive3DSequence createViewIndependentPrimitive3DSequence() const = 0;
+    // stored in mxViewIndependentPrimitive3DContainer, but without object transformation
+    virtual drawinglayer::primitive3d::Primitive3DContainer createViewIndependentPrimitive3DContainer() const = 0;
 
     // This method is responsible for creating the graphical visualisation data derived ONLY from
     // the model data. The default implementation will try to create a 3D to 2D embedding (will work
@@ -81,13 +81,13 @@ protected:
 public:
     // access to the local primitive without the object's local 3D transform. This is e.g. needed
     // to get the not-yet transformed BoundVolume for e.g. interactions
-    drawinglayer::primitive3d::Primitive3DSequence getVIP3DSWithoutObjectTransform() const;
+    drawinglayer::primitive3d::Primitive3DContainer getVIP3DSWithoutObjectTransform() const;
 
     // access to the local primitive. This will ensure that the list is
     // current in comparing the local list content with a fresh created incarnation. It will
     // use getVIP3DSWithoutObjectTransform and embed to 3d transform primitive when object's
     // local 3d transform is used
-    drawinglayer::primitive3d::Primitive3DSequence getViewIndependentPrimitive3DSequence() const;
+    drawinglayer::primitive3d::Primitive3DContainer getViewIndependentPrimitive3DContainer() const;
 };
 
 }}
diff --git a/include/svx/sdr/contact/viewcontactofe3dscene.hxx b/include/svx/sdr/contact/viewcontactofe3dscene.hxx
index ce9e851..a802db8 100644
--- a/include/svx/sdr/contact/viewcontactofe3dscene.hxx
+++ b/include/svx/sdr/contact/viewcontactofe3dscene.hxx
@@ -70,7 +70,7 @@ public:
 
     // helpers to get the sequence of all contained 3D primitives and its range,

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list