[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.2' - include/svx oox/inc oox/source sd/qa svx/source

Gülşah Köse (via logerrit) logerrit at kemper.freedesktop.org
Fri Oct 18 08:09:05 UTC 2019


 include/svx/svdoashp.hxx                                  |    1 
 oox/inc/drawingml/customshapeproperties.hxx               |    2 
 oox/source/drawingml/customshapeproperties.cxx            |    2 
 oox/source/drawingml/shape.cxx                            |    4 
 oox/source/drawingml/textbodypropertiescontext.cxx        |    7 +
 oox/source/token/properties.txt                           |    1 
 sd/qa/unit/data/xml/fdo47434_0.xml                        |    4 
 sd/qa/unit/data/xml/n593612_0.xml                         |    1 
 sd/qa/unit/data/xml/n762695_0.xml                         |    2 
 sd/qa/unit/data/xml/n762695_1.xml                         |    3 
 sd/qa/unit/data/xml/n819614_0.xml                         |   57 ++++++++++++++
 sd/qa/unit/data/xml/n820786_0.xml                         |   51 ++++++++++++
 sd/qa/unit/data/xml/n902652_0.xml                         |    3 
 svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx |   23 ++++-
 svx/source/svdraw/svdoashp.cxx                            |   17 ++++
 15 files changed, 174 insertions(+), 4 deletions(-)

New commits:
commit 946ac247c2cf02f48b6a8009064e0763fd9e97af
Author:     Gülşah Köse <gulsah.kose at collabora.com>
AuthorDate: Thu Oct 3 08:37:00 2019 +0300
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Fri Oct 18 10:08:13 2019 +0200

    tdf#126060 Handle text camera z rotation while pptx import.
    
    Change-Id: Ifa4589fb50affc4c5ffb52288db8533c98ec6dd9
    Reviewed-on: https://gerrit.libreoffice.org/80587
    Tested-by: Jenkins
    Reviewed-by: Gülşah Köse <gulsah.kose at collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/80891
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>

diff --git a/include/svx/svdoashp.hxx b/include/svx/svdoashp.hxx
index e7f915992eae..bdbf4d0b82e4 100644
--- a/include/svx/svdoashp.hxx
+++ b/include/svx/svdoashp.hxx
@@ -142,6 +142,7 @@ public:
 
     double GetObjectRotation() const { return fObjectRotation;}
     double GetExtraTextRotation( const bool bPreRotation = false ) const;
+    double GetCameraRotation() const;
 
     SdrObjCustomShape(SdrModel& rSdrModel);
 
diff --git a/oox/inc/drawingml/customshapeproperties.hxx b/oox/inc/drawingml/customshapeproperties.hxx
index ddd29199ff41..5ac65ad5b799 100644
--- a/oox/inc/drawingml/customshapeproperties.hxx
+++ b/oox/inc/drawingml/customshapeproperties.hxx
@@ -118,6 +118,7 @@ public:
     void                                setMirroredX( bool bMirroredX ) { mbMirroredX = bMirroredX; };
     void                                setMirroredY( bool bMirroredY ) { mbMirroredY = bMirroredY; };
     void                                setTextRotateAngle( sal_Int32 nAngle ) { mnTextRotateAngle = nAngle; };
+    void                                setTextCameraZRotateAngle( sal_Int32 nAngle ) { mnTextCameraZRotateAngle = nAngle; };
 
     static sal_Int32 SetCustomShapeGuideValue( std::vector< CustomShapeGuide >& rGuideList, const CustomShapeGuide& rGuide );
     static sal_Int32 GetCustomShapeGuideValue( const std::vector< CustomShapeGuide >& rGuideList, const OUString& rFormulaName );
@@ -140,6 +141,7 @@ private:
     bool                            mbMirroredX;
     bool                            mbMirroredY;
     sal_Int32                       mnTextRotateAngle;
+    sal_Int32                       mnTextCameraZRotateAngle;
 
     typedef std::unordered_map< sal_Int32, PropertyMap > PresetDataMap;
 
diff --git a/oox/source/drawingml/customshapeproperties.cxx b/oox/source/drawingml/customshapeproperties.cxx
index 323831166f59..1b1f6513ab22 100644
--- a/oox/source/drawingml/customshapeproperties.cxx
+++ b/oox/source/drawingml/customshapeproperties.cxx
@@ -46,6 +46,7 @@ CustomShapeProperties::CustomShapeProperties()
 , mbMirroredX   ( false )
 , mbMirroredY   ( false )
 , mnTextRotateAngle ( 0 )
+, mnTextCameraZRotateAngle ( 0 )
 , mnArcNum ( 0 )
 {
 }
@@ -150,6 +151,7 @@ void CustomShapeProperties::pushToPropSet(
         aPropertyMap.setProperty( PROP_MirroredX, mbMirroredX );
         aPropertyMap.setProperty( PROP_MirroredY, mbMirroredY );
         aPropertyMap.setProperty( PROP_TextPreRotateAngle, mnTextRotateAngle );
+        aPropertyMap.setProperty( PROP_TextCameraZRotateAngle, mnTextCameraZRotateAngle );
         Sequence< PropertyValue > aSeq = aPropertyMap.makePropertyValueSequence();
         aPropSet.setProperty( PROP_CustomShapeGeometry, aSeq );
 
diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx
index 23e9537f4b32..93619d0e7642 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -1320,7 +1320,11 @@ Reference< XShape > const & Shape::createAndInsert(
                 mpCustomShapePropertiesPtr->setMirroredY( true );
             if( getTextBody() )
             {
+                sal_Int32 nTextCameraZRotation = static_cast< sal_Int32 >( get3DProperties().maCameraRotation.mnRevolution.get() );
+                mpCustomShapePropertiesPtr->setTextCameraZRotateAngle( nTextCameraZRotation / 60000 );
+
                 sal_Int32 nTextRotateAngle = static_cast< sal_Int32 >( getTextBody()->getTextProperties().moRotation.get( 0 ) );
+
                 nTextRotateAngle -= mnDiagramRotation;
                 /* OOX measures text rotation clockwise in 1/60000th degrees,
                    relative to the containing shape. setTextRotateAngle wants
diff --git a/oox/source/drawingml/textbodypropertiescontext.cxx b/oox/source/drawingml/textbodypropertiescontext.cxx
index 9c18536a4a86..4e0a5ca5a297 100644
--- a/oox/source/drawingml/textbodypropertiescontext.cxx
+++ b/oox/source/drawingml/textbodypropertiescontext.cxx
@@ -27,6 +27,7 @@
 #include <drawingml/textbodyproperties.hxx>
 #include <drawingml/textbody.hxx>
 #include <drawingml/customshapegeometry.hxx>
+#include <drawingml/scene3dcontext.hxx>
 #include <oox/drawingml/drawingmltypes.hxx>
 #include <oox/helper/attributelist.hxx>
 #include <oox/helper/propertymap.hxx>
@@ -170,6 +171,12 @@ ContextHandlerRef TextBodyPropertiesContext::onCreateContext( sal_Int32 aElement
                 break;
 
             case A_TOKEN( scene3d ):        // CT_Scene3D
+            {
+                if(mpShapePtr && mpShapePtr->getServiceName() == "com.sun.star.drawing.CustomShape")
+                    return new Scene3DPropertiesContext( *this, mpShapePtr->get3DProperties() );
+
+                break;
+            }
 
             // EG_Text3D
             case A_TOKEN( sp3d ):           // CT_Shape3D
diff --git a/oox/source/token/properties.txt b/oox/source/token/properties.txt
index 1b06aa741d94..7b107ffc4aec 100644
--- a/oox/source/token/properties.txt
+++ b/oox/source/token/properties.txt
@@ -507,6 +507,7 @@ Text
 TextAutoGrowHeight
 TextBox
 TextBreak
+TextCameraZRotateAngle
 TextColor
 TextFitToSize
 TextFrames
diff --git a/sd/qa/unit/data/xml/fdo47434_0.xml b/sd/qa/unit/data/xml/fdo47434_0.xml
index bbc70390435f..512f422fd198 100644
--- a/sd/qa/unit/data/xml/fdo47434_0.xml
+++ b/sd/qa/unit/data/xml/fdo47434_0.xml
@@ -29,6 +29,7 @@
   <CustomShapeGeometry>
    <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="mso-spt32" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="AdjustmentValues">
@@ -91,6 +92,7 @@
   <CustomShapeGeometry>
    <PropertyValue name="MirroredX" value="true" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="mso-spt32" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="AdjustmentValues">
@@ -153,6 +155,7 @@
   <CustomShapeGeometry>
    <PropertyValue name="MirroredX" value="false" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="mso-spt32" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="AdjustmentValues">
@@ -215,6 +218,7 @@
   <CustomShapeGeometry>
    <PropertyValue name="MirroredX" value="true" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="MirroredY" value="false" handle="0" propertyState="DIRECT_VALUE"/>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="mso-spt32" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="AdjustmentValues">
diff --git a/sd/qa/unit/data/xml/n593612_0.xml b/sd/qa/unit/data/xml/n593612_0.xml
index 8f8e40faa765..7c93f494e3ca 100644
--- a/sd/qa/unit/data/xml/n593612_0.xml
+++ b/sd/qa/unit/data/xml/n593612_0.xml
@@ -56,6 +56,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
diff --git a/sd/qa/unit/data/xml/n762695_0.xml b/sd/qa/unit/data/xml/n762695_0.xml
index ccc2f2ed7de2..710a5039ab69 100644
--- a/sd/qa/unit/data/xml/n762695_0.xml
+++ b/sd/qa/unit/data/xml/n762695_0.xml
@@ -155,6 +155,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-leftArrow" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -231,6 +232,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-leftArrow" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
diff --git a/sd/qa/unit/data/xml/n762695_1.xml b/sd/qa/unit/data/xml/n762695_1.xml
index 165c7ccb06bf..54b383db40a8 100644
--- a/sd/qa/unit/data/xml/n762695_1.xml
+++ b/sd/qa/unit/data/xml/n762695_1.xml
@@ -317,6 +317,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-wedgeRoundRectCallout" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -469,6 +470,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-wedgeRoundRectCallout" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -621,6 +623,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-wedgeRoundRectCallout" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
diff --git a/sd/qa/unit/data/xml/n819614_0.xml b/sd/qa/unit/data/xml/n819614_0.xml
index fcd76edd146f..e28d86fb510c 100644
--- a/sd/qa/unit/data/xml/n819614_0.xml
+++ b/sd/qa/unit/data/xml/n819614_0.xml
@@ -72,6 +72,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -3408,6 +3409,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -3471,6 +3473,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -3534,6 +3537,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -3597,6 +3601,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -3660,6 +3665,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -3723,6 +3729,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -3786,6 +3793,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -3849,6 +3857,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -3912,6 +3921,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -3975,6 +3985,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -4038,6 +4049,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -4101,6 +4113,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -4164,6 +4177,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -4227,6 +4241,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -4290,6 +4305,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -4353,6 +4369,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -4416,6 +4433,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -4479,6 +4497,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -4542,6 +4561,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -4605,6 +4625,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -4668,6 +4689,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -4731,6 +4753,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -4794,6 +4817,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -4857,6 +4881,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -4920,6 +4945,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -4983,6 +5009,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -5046,6 +5073,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -5109,6 +5137,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -5172,6 +5201,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -5235,6 +5265,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -5298,6 +5329,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -5361,6 +5393,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -5424,6 +5457,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -5487,6 +5521,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -5550,6 +5585,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -5613,6 +5649,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -5676,6 +5713,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -5739,6 +5777,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -5802,6 +5841,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -5865,6 +5905,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -5928,6 +5969,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -5991,6 +6033,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -6054,6 +6097,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -6117,6 +6161,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -6180,6 +6225,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -6243,6 +6289,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -6306,6 +6353,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -6369,6 +6417,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -6432,6 +6481,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -6495,6 +6545,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -6558,6 +6609,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -6621,6 +6673,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -6684,6 +6737,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -6747,6 +6801,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -6810,6 +6865,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -6873,6 +6929,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
diff --git a/sd/qa/unit/data/xml/n820786_0.xml b/sd/qa/unit/data/xml/n820786_0.xml
index 47e08e949372..ebf229fafd32 100644
--- a/sd/qa/unit/data/xml/n820786_0.xml
+++ b/sd/qa/unit/data/xml/n820786_0.xml
@@ -56,6 +56,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -141,6 +142,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-ellipse" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -224,6 +226,7 @@
        <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
       </Path>
      </PropertyValue>
+     <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="Type" value="ooxml-ellipse" handle="0" propertyState="DIRECT_VALUE"/>
      <PropertyValue name="ViewBox">
@@ -294,6 +297,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -357,6 +361,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -420,6 +425,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -483,6 +489,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -546,6 +553,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -609,6 +617,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -672,6 +681,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -735,6 +745,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -798,6 +809,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -861,6 +873,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -924,6 +937,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -987,6 +1001,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -1050,6 +1065,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -1113,6 +1129,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -1176,6 +1193,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -1239,6 +1257,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -1302,6 +1321,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -1365,6 +1385,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -1428,6 +1449,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -1491,6 +1513,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -1554,6 +1577,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -1617,6 +1641,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -1680,6 +1705,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -1743,6 +1769,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -1806,6 +1833,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -1869,6 +1897,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -1932,6 +1961,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -1995,6 +2025,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -2058,6 +2089,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -2121,6 +2153,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -2184,6 +2217,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -2247,6 +2281,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -2310,6 +2345,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -2373,6 +2409,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -2436,6 +2473,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -2499,6 +2537,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -2562,6 +2601,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -2625,6 +2665,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -2688,6 +2729,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -2751,6 +2793,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -2814,6 +2857,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -2877,6 +2921,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -2940,6 +2985,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -3003,6 +3049,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -3066,6 +3113,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -3129,6 +3177,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -3192,6 +3241,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -3255,6 +3305,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-rect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
diff --git a/sd/qa/unit/data/xml/n902652_0.xml b/sd/qa/unit/data/xml/n902652_0.xml
index 81feb65a332e..b5fd7740ef47 100644
--- a/sd/qa/unit/data/xml/n902652_0.xml
+++ b/sd/qa/unit/data/xml/n902652_0.xml
@@ -94,6 +94,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-roundRect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -195,6 +196,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="-90" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-roundRect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
@@ -296,6 +298,7 @@
      <PropertyValue name="TextFrames" handle="0" propertyState="DIRECT_VALUE"/>
     </Path>
    </PropertyValue>
+   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="TextPreRotateAngle" value="-270" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="Type" value="ooxml-roundRect" handle="0" propertyState="DIRECT_VALUE"/>
    <PropertyValue name="ViewBox">
diff --git a/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx b/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx
index c3f8666ad1d9..a8e85531df6c 100644
--- a/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx
+++ b/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx
@@ -28,6 +28,8 @@
 #include <basegfx/matrix/b2dhommatrixtools.hxx>
 #include <svx/obj3d.hxx>
 #include <drawinglayer/primitive2d/sdrdecompositiontools2d.hxx>
+#include <vcl/canvastools.hxx>
+#include <sal/log.hxx>
 
 
 namespace sdr
@@ -168,13 +170,18 @@ namespace sdr
                     // #i101684# get the text range unrotated and absolute to the object range
                     const basegfx::B2DRange aTextRange(getCorrectedTextBoundRect());
 
+                    // Get the text range before unrotated and independent from object range
+                    const tools::Rectangle aIndTextRect(Point(aTextRange.getMinX(), aTextRange.getMinY()), GetCustomShapeObj().GetTextSize());
+                    const basegfx::B2DRange aIndTextRange = vcl::unotools::b2DRectangleFromRectangle(aIndTextRect);
+
                     // Rotation before scaling
-                    if(!basegfx::fTools::equalZero(GetCustomShapeObj().GetExtraTextRotation(true)))
+                    if(!basegfx::fTools::equalZero(GetCustomShapeObj().GetExtraTextRotation(true)) ||
+                       !basegfx::fTools::equalZero(GetCustomShapeObj().GetCameraRotation()))
                     {
                         basegfx::B2DVector aTranslation(0.5, 0.5);
                         aTextBoxMatrix.translate( -aTranslation.getX(), -aTranslation.getY() );
                         aTextBoxMatrix.rotate(basegfx::deg2rad(
-                            360.0 - GetCustomShapeObj().GetExtraTextRotation(true)));
+                            360.0 - GetCustomShapeObj().GetExtraTextRotation(true) - GetCustomShapeObj().GetCameraRotation()));
                         aTextBoxMatrix.translate( aTranslation.getX(), aTranslation.getY() );
                     }
                     // give text object a size
@@ -182,6 +189,7 @@ namespace sdr
 
                     // check if we have a rotation/shear at all to take care of
                     const double fExtraTextRotation(GetCustomShapeObj().GetExtraTextRotation());
+                    const double fTextCameraZRotation(GetCustomShapeObj().GetCameraRotation());
                     const GeoStat& rGeoStat(GetCustomShapeObj().GetGeoStat());
 
                     if(rGeoStat.nShearAngle || rGeoStat.nRotationAngle || !basegfx::fTools::equalZero(fExtraTextRotation))
@@ -194,13 +202,13 @@ namespace sdr
                                 aTextRange.getMinY() - aObjectRange.getMinimum().getY());
                         }
 
-                        if(!basegfx::fTools::equalZero(fExtraTextRotation))
+                        if(!basegfx::fTools::equalZero(fExtraTextRotation) || !basegfx::fTools::equalZero(fTextCameraZRotation))
                         {
                             basegfx::B2DVector aTranslation(
                                 ( aTextRange.getWidth() / 2 ) + ( aTextRange.getMinX() - aObjectRange.getMinimum().getX() ),
                                 ( aTextRange.getHeight() / 2 ) + ( aTextRange.getMinY() - aObjectRange.getMinimum().getY() ) );
                             aTextBoxMatrix.translate( -aTranslation.getX(), -aTranslation.getY() );
-                            aTextBoxMatrix.rotate(basegfx::deg2rad(360.0 - fExtraTextRotation));
+                            aTextBoxMatrix.rotate(basegfx::deg2rad(360.0 - fExtraTextRotation + fTextCameraZRotation));
                             aTextBoxMatrix.translate( aTranslation.getX(), aTranslation.getY() );
                         }
 
@@ -217,6 +225,13 @@ namespace sdr
                         // give text it's target position
                         aTextBoxMatrix.translate(aObjectRange.getMinimum().getX(), aObjectRange.getMinimum().getY());
                     }
+                    // If text overflows from textbox we should use text info instead of textbox to relocation.
+                    else if((aTextRange.getWidth() < aIndTextRange.getWidth() ||
+                            aTextRange.getHeight() < aIndTextRange.getHeight()) &&
+                            !basegfx::fTools::equalZero(fTextCameraZRotation))
+                    {
+                        aTextBoxMatrix.translate(aIndTextRange.getCenterX(), aIndTextRange.getCenterY());
+                    }
                     else
                     {
                         aTextBoxMatrix.translate(aTextRange.getMinX(), aTextRange.getMinY());
diff --git a/svx/source/svdraw/svdoashp.cxx b/svx/source/svdraw/svdoashp.cxx
index 9bacffb665c7..e42443bdf00a 100644
--- a/svx/source/svdraw/svdoashp.cxx
+++ b/svx/source/svdraw/svdoashp.cxx
@@ -538,6 +538,23 @@ double SdrObjCustomShape::GetExtraTextRotation( const bool bPreRotation ) const
     return fExtraTextRotateAngle;
 }
 
+double SdrObjCustomShape::GetCameraRotation() const
+{
+    const css::uno::Any* pAny;
+    double fTextCameraZRotateAngle = 0.0;
+    const SdrCustomShapeGeometryItem& rGeometryItem = GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY );
+    const OUString sTextCameraZRotateAngle( "TextCameraZRotateAngle" );
+
+    pAny = rGeometryItem.GetPropertyValueByName(sTextCameraZRotateAngle);
+
+    if ( pAny )
+        *pAny >>= fTextCameraZRotateAngle;
+
+    return fTextCameraZRotateAngle;
+}
+
+
+
 bool SdrObjCustomShape::GetTextBounds( tools::Rectangle& rTextBound ) const
 {
     bool bRet = false;


More information about the Libreoffice-commits mailing list