summaryrefslogtreecommitdiff
path: root/oox/source/export/drawingml.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'oox/source/export/drawingml.cxx')
-rw-r--r--oox/source/export/drawingml.cxx28
1 files changed, 27 insertions, 1 deletions
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 9eeacf4d2b19..559b35b9023f 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -3576,7 +3576,33 @@ bool DrawingML::WriteCustomGeometry(
}
case drawing::EnhancedCustomShapeSegmentCommand::ARCANGLETO :
{
- nPairIndex += 2;
+ if (nPairIndex + 1 >= aPairs.getLength())
+ bOK = false;
+ else
+ {
+ const EnhancedCustomShape2d aCustoShape2d(
+ const_cast<SdrObjCustomShape&>(rSdrObjCustomShape));
+ double fWR = 0.0;
+ aCustoShape2d.GetParameter(fWR, aPairs[nPairIndex].First, false,
+ false);
+ double fHR = 0.0;
+ aCustoShape2d.GetParameter(fHR, aPairs[nPairIndex].Second,
+ false, false);
+ double fStartAngle = 0.0;
+ aCustoShape2d.GetParameter(
+ fStartAngle, aPairs[nPairIndex + 1].First, false, false);
+ sal_Int32 nStartAng(std::lround(fStartAngle * 60000));
+ double fSwingAng = 0.0;
+ aCustoShape2d.GetParameter(
+ fSwingAng, aPairs[nPairIndex + 1].Second, false, false);
+ sal_Int32 nSwingAng(std::lround(fSwingAng * 60000));
+ mpFS->singleElement(FSNS(XML_a, XML_arcTo),
+ XML_wR, OString::number(fWR),
+ XML_hR, OString::number(fHR),
+ XML_stAng, OString::number(nStartAng),
+ XML_swAng, OString::number(nSwingAng));
+ nPairIndex += 2;
+ }
break;
}
default: