From 016bb3894dcc2e3a9cfb6324f1a9f389c192426d Mon Sep 17 00:00:00 2001 From: Armin Le Grand Date: Wed, 30 Oct 2013 15:13:41 +0000 Subject: save adaptions to aw080 due to fixes done on trunk --- .../inc/basegfx/polygon/b2dpolypolygontools.hxx | 2 - basegfx/source/polygon/b2dsvgpolypolygon.cxx | 10 +- xmloff/inc/xexptran.hxx | 62 - xmloff/source/draw/XMLImageMapContext.cxx | 12 - xmloff/source/draw/XMLImageMapExport.cxx | 30 +- xmloff/source/draw/shapeexport2.cxx | 211 +-- xmloff/source/draw/shapeexport3.cxx | 93 - xmloff/source/draw/xexptran.cxx | 1774 -------------------- xmloff/source/draw/ximp3dobject.cxx | 53 - xmloff/source/draw/ximpshap.cxx | 120 -- xmloff/source/style/MarkerStyle.cxx | 106 +- xmloff/source/text/txtparae.cxx | 56 +- 12 files changed, 44 insertions(+), 2485 deletions(-) diff --git a/basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx b/basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx index 5b1b20479cdd..ccfb155ecd09 100644 --- a/basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx +++ b/basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx @@ -19,8 +19,6 @@ * *************************************************************/ - - #ifndef _BGFX_POLYPOLYGON_B2DPOLYGONTOOLS_HXX #define _BGFX_POLYPOLYGON_B2DPOLYGONTOOLS_HXX diff --git a/basegfx/source/polygon/b2dsvgpolypolygon.cxx b/basegfx/source/polygon/b2dsvgpolypolygon.cxx index c5babb9545a6..b67ff5b068aa 100644 --- a/basegfx/source/polygon/b2dsvgpolypolygon.cxx +++ b/basegfx/source/polygon/b2dsvgpolypolygon.cxx @@ -92,7 +92,10 @@ namespace basegfx // add current polygon if(bIsClosed) { - closeWithGeometryChange(aCurrPoly); + // #123465# no need to do the old closeWithGeometryChange + // corerection on SVG polygons; this even may lead to wrong + // results e.g. for marker processing + aCurrPoly.setClosed(true); } o_rPolyPolygon.append(aCurrPoly); @@ -612,7 +615,10 @@ namespace basegfx // end-process last poly if(bIsClosed) { - closeWithGeometryChange(aCurrPoly); + // #123465# no need to do the old closeWithGeometryChange + // corerection on SVG polygons; this even may lead to wrong + // results e.g. for marker processing + aCurrPoly.setClosed(true); } o_rPolyPolygon.append(aCurrPoly); diff --git a/xmloff/inc/xexptran.hxx b/xmloff/inc/xexptran.hxx index b57a84ed21dd..03bc99a05d34 100644 --- a/xmloff/inc/xexptran.hxx +++ b/xmloff/inc/xexptran.hxx @@ -132,67 +132,5 @@ public: const rtl::OUString& GetExportString(); }; -////////////////////////////////////////////////////////////////////////////// -// -//class SdXMLImExPointsElement -//{ -// rtl::OUString msString; -// com::sun::star::drawing::PointSequenceSequence maPoly; -// -//public: -// SdXMLImExPointsElement(com::sun::star::drawing::PointSequence* pPoints, -// const SdXMLImExViewBox& rViewBox, -// const com::sun::star::awt::Point& rObjectPos, -// const com::sun::star::awt::Size& rObjectSize, -// const bool bClosed); -// SdXMLImExPointsElement(const rtl::OUString& rNew, -// const SdXMLImExViewBox& rViewBox, -// const com::sun::star::awt::Point& rObjectPos, -// const com::sun::star::awt::Size& rObjectSize, -// const SvXMLUnitConverter& rConv, -// const bool bClosed); -// -// const rtl::OUString& GetExportString() const { return msString; } -// const com::sun::star::drawing::PointSequenceSequence& GetPointSequenceSequence() const { return maPoly; } -//}; -// -////////////////////////////////////////////////////////////////////////////// -// -//class SdXMLImExSvgDElement -//{ -// rtl::OUString msString; -// const SdXMLImExViewBox& mrViewBox; -// bool mbIsClosed; -// bool mbIsCurve; -// -// sal_Int32 mnLastX; -// sal_Int32 mnLastY; -// -// com::sun::star::drawing::PointSequenceSequence maPoly; -// com::sun::star::drawing::FlagSequenceSequence maFlag; -// -//public: -// SdXMLImExSvgDElement(const SdXMLImExViewBox& rViewBox); -// SdXMLImExSvgDElement(const rtl::OUString& rNew, -// const SdXMLImExViewBox& rViewBox, -// const com::sun::star::awt::Point& rObjectPos, -// const com::sun::star::awt::Size& rObjectSize, -// const SvXMLUnitConverter& rConv); -// -// void AddPolygon( -// com::sun::star::drawing::PointSequence* pPoints, -// com::sun::star::drawing::FlagSequence* pFlags, -// const com::sun::star::awt::Point& rObjectPos, -// const com::sun::star::awt::Size& rObjectSize, -// bool bClosed = false, bool bRelative = true); -// -// const rtl::OUString& GetExportString() const { return msString; } -// bool IsClosed() const { return mbIsClosed; } -// bool IsCurve() const { return mbIsCurve; } -// const com::sun::star::drawing::PointSequenceSequence& GetPointSequenceSequence() const { return maPoly; } -// const com::sun::star::drawing::FlagSequenceSequence& GetFlagSequenceSequence() const { return maFlag; } -//}; -// - #endif // _XEXPTRANSFORM_HXX // eof diff --git a/xmloff/source/draw/XMLImageMapContext.cxx b/xmloff/source/draw/XMLImageMapContext.cxx index 17b5e94ee849..bb00dedd9930 100644 --- a/xmloff/source/draw/XMLImageMapContext.cxx +++ b/xmloff/source/draw/XMLImageMapContext.cxx @@ -508,18 +508,6 @@ void XMLImageMapPolygonContext::Prepare(Reference & rPropertySet) rPropertySet->setPropertyValue(sPolygon, aAny); } } - //awt::Point aPoint(aViewBox.GetX(), aViewBox.GetY()); - //awt::Size aSize(aViewBox.GetWidth(), aViewBox.GetHeight()); - //SdXMLImExPointsElement aPoints( sPointsString, aViewBox, aPoint, aSize, GetImport().GetMM100UnitConverter(), true ); - //PointSequenceSequence aPointSeqSeq = aPoints.GetPointSequenceSequence(); - // - //// only use first element of sequence-sequence - //if (aPointSeqSeq.getLength() > 0) - //{ - // Any aAny; - // aAny <<= aPointSeqSeq[0]; - // rPropertySet->setPropertyValue(sPolygon, aAny); - //} // parent properties XMLImageMapObjectContext::Prepare(rPropertySet); diff --git a/xmloff/source/draw/XMLImageMapExport.cxx b/xmloff/source/draw/XMLImageMapExport.cxx index 89cf157f237a..012a35a7d0d2 100644 --- a/xmloff/source/draw/XMLImageMapExport.cxx +++ b/xmloff/source/draw/XMLImageMapExport.cxx @@ -318,8 +318,7 @@ void XMLImageMapExport::ExportCircle( aBuffer.makeStringAndClear() ); } -void XMLImageMapExport::ExportPolygon( - const Reference & rPropertySet) +void XMLImageMapExport::ExportPolygon(const Reference & rPropertySet) { // polygons get exported as bounding box, viewbox, and coordinate // pair sequence. The bounding box is always the entire image. @@ -334,27 +333,6 @@ void XMLImageMapExport::ExportPolygon( aPoly)); const basegfx::B2DRange aPolygonRange(aPolygon.getB2DRange()); -// TTTT: -// // get bounding box (assume top-left to be 0,0) -// sal_Int32 nWidth = 0; -// sal_Int32 nHeight = 0; -// sal_Int32 nLength = aPoly.getLength(); -// const struct awt::Point* pPointPtr = aPoly.getConstArray(); -// for ( sal_Int32 i = 0; i < nLength; i++ ) -// { -// sal_Int32 nPolyX = pPointPtr->X; -// sal_Int32 nPolyY = pPointPtr->Y; -// -// if ( nPolyX > nWidth ) -// nWidth = nPolyX; -// if ( nPolyY > nHeight ) -// nHeight = nPolyY; -// -// pPointPtr++; -// } -// DBG_ASSERT(nWidth > 0, "impossible Polygon found"); -// DBG_ASSERT(nHeight > 0, "impossible Polygon found"); - // parameters svg:x, svg:y, svg:width, svg:height OUStringBuffer aBuffer; @@ -377,12 +355,6 @@ void XMLImageMapExport::ExportPolygon( aPolygon)); mrExport.AddAttribute(XML_NAMESPACE_DRAW, XML_POINTS, aPointString); - - // TTTT: - //awt::Point aPoint(0, 0); - //awt::Size aSize(nWidth, nHeight); - //SdXMLImExPointsElement aPoints( &aPoly, aViewBox, aPoint, aSize, true); - //mrExport.AddAttribute( XML_NAMESPACE_DRAW, XML_POINTS, aPoints.GetExportString()); } // eof diff --git a/xmloff/source/draw/shapeexport2.cxx b/xmloff/source/draw/shapeexport2.cxx index 4313e820759e..ec6a06712893 100644 --- a/xmloff/source/draw/shapeexport2.cxx +++ b/xmloff/source/draw/shapeexport2.cxx @@ -949,26 +949,26 @@ void XMLShapeExport::ImpExportEllipseShape( sal_Bool bCreateNewline( (nFeatures & SEF_EXPORT_NO_WS) == 0 ); // #86116#/#92210# + // prepare name (with most used) + enum ::xmloff::token::XMLTokenEnum eName(XML_CIRCLE); + if(bCircle) { - // write circle - SvXMLElementExport aOBJ(mrExport, XML_NAMESPACE_DRAW, XML_CIRCLE, bCreateNewline, sal_True); - - ImpExportDescription( xShape ); // #i68101# - ImpExportEvents( xShape ); - ImpExportGluePoints( xShape ); - ImpExportText( xShape ); + // name already set } else { - // write ellipse - SvXMLElementExport aOBJ(mrExport, XML_NAMESPACE_DRAW, XML_ELLIPSE, bCreateNewline, sal_True); - - ImpExportDescription( xShape ); // #i68101# - ImpExportEvents( xShape ); - ImpExportGluePoints( xShape ); - ImpExportText( xShape ); + // set name + eName = XML_ELLIPSE; } + + // write ellipse or circle + SvXMLElementExport aOBJ(mrExport, XML_NAMESPACE_DRAW, eName, bCreateNewline, sal_True); + + ImpExportDescription( xShape ); // #i68101# + ImpExportEvents( xShape ); + ImpExportGluePoints( xShape ); + ImpExportText( xShape ); } } @@ -976,17 +976,12 @@ void XMLShapeExport::ImpExportEllipseShape( void XMLShapeExport::ImpExportPolygonShape( const uno::Reference< drawing::XShape >& xShape, - XmlShapeType /*eShapeType*/, sal_Int32 nFeatures, awt::Point* pRefPoint) // TTTT: eShapeType + XmlShapeType /*eShapeType*/, sal_Int32 nFeatures, awt::Point* pRefPoint) { const uno::Reference< beans::XPropertySet > xPropSet(xShape, uno::UNO_QUERY); if(xPropSet.is()) { -// sal_Bool bClosed(eShapeType == XmlShapeTypeDrawPolyPolygonShape -// || eShapeType == XmlShapeTypeDrawClosedBezierShape); -// sal_Bool bBezier(eShapeType == XmlShapeTypeDrawClosedBezierShape -// || eShapeType == XmlShapeTypeDrawOpenBezierShape); - // get matrix ::basegfx::B2DHomMatrix aMatrix; ImpExportNewTrans_GetB2DHomMatrix(aMatrix, xPropSet); @@ -1001,9 +996,6 @@ void XMLShapeExport::ImpExportPolygonShape( // use features and write ImpExportNewTrans_FeaturesAndWrite(aTRScale, fTRShear, fTRRotate, aTRTranslate, nFeatures); - //awt::Point aPoint(0, 0); - //awt::Size aSize(FRound(fabs(aTRScale.getX())), FRound(fabs(aTRScale.getY()))); - // create and export ViewBox. caution! for svg:ViewBox, use the absolute values (!) SdXMLImExViewBox aViewBox(0.0, 0.0, fabs(aTRScale.getX()), fabs(aTRScale.getY())); @@ -1014,6 +1006,9 @@ void XMLShapeExport::ImpExportPolygonShape( basegfx::B2DPolyPolygon aPolyPolygon; const bool bCreateNewline( (nFeatures & SEF_EXPORT_NO_WS) == 0 ); // #86116#/#92210# + // prepare name (with most used) + enum ::xmloff::token::XMLTokenEnum eName(XML_PATH); + if(aAny.getValueType().equals(getCppuType((drawing::PolyPolygonBezierCoords*)0))) { aPolyPolygon = basegfx::tools::UnoPolyPolygonBezierCoordsToB2DPolyPolygon(*(drawing::PolyPolygonBezierCoords*)aAny.getValue()); @@ -1032,13 +1027,8 @@ void XMLShapeExport::ImpExportPolygonShape( // write point array mrExport.AddAttribute(XML_NAMESPACE_DRAW, XML_POINTS, aPointString); - // write object now - SvXMLElementExport aOBJ( - mrExport, - XML_NAMESPACE_DRAW, - aPolygon.isClosed() ? XML_POLYGON : XML_POLYLINE, - bCreateNewline, - sal_True); + // set name + eName = aPolygon.isClosed() ? XML_POLYGON : XML_POLYLINE; } else { @@ -1051,135 +1041,22 @@ void XMLShapeExport::ImpExportPolygonShape( // write point array mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_D, aPolygonString); - - // write object now - SvXMLElementExport aOBJ( - mrExport, - XML_NAMESPACE_DRAW, - XML_PATH, - bCreateNewline, - sal_True); } + // write object, but after attributes are added since this call will + // consume all of these added attributes and the destructor will close the + // scope. Also before text is added; this may add sub-scopes as needed + SvXMLElementExport aOBJ( + mrExport, + XML_NAMESPACE_DRAW, + eName, + bCreateNewline, + sal_True); + ImpExportDescription( xShape ); // #i68101# ImpExportEvents( xShape ); ImpExportGluePoints( xShape ); ImpExportText( xShape ); - -// TTTT -// if(bBezier) -// { -// // get PolygonBezier -// uno::Any aAny( xPropSet->getPropertyValue(OUString(RTL_CONSTASCII_USTRINGPARAM("Geometry"))) ); -// drawing::PolyPolygonBezierCoords* pSourcePolyPolygon = -// (drawing::PolyPolygonBezierCoords*)aAny.getValue(); -// -// if(pSourcePolyPolygon && pSourcePolyPolygon->Coordinates.getLength()) -// { -// sal_Int32 nOuterCnt(pSourcePolyPolygon->Coordinates.getLength()); -// drawing::PointSequence* pOuterSequence = pSourcePolyPolygon->Coordinates.getArray(); -// drawing::FlagSequence* pOuterFlags = pSourcePolyPolygon->Flags.getArray(); -// -// if(pOuterSequence && pOuterFlags) -// { -// // prepare svx:d element export -// SdXMLImExSvgDElement aSvgDElement(aViewBox); -// -// for(sal_Int32 a(0L); a < nOuterCnt; a++) -// { -// drawing::PointSequence* pSequence = pOuterSequence++; -// drawing::FlagSequence* pFlags = pOuterFlags++; -// -// if(pSequence && pFlags) -// { -// aSvgDElement.AddPolygon(pSequence, pFlags, -// aPoint, aSize, bClosed); -// } -// } -// -// // write point array -// mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_D, aSvgDElement.GetExportString()); -// } -// -// // write object now -// SvXMLElementExport aOBJ(mrExport, XML_NAMESPACE_DRAW, XML_PATH, bCreateNewline, sal_True); -// -// ImpExportDescription( xShape ); // #i68101# -// ImpExportEvents( xShape ); -// ImpExportGluePoints( xShape ); -// ImpExportText( xShape ); -// } -// } -// else -// { -// // get non-bezier polygon -// uno::Any aAny( xPropSet->getPropertyValue(OUString(RTL_CONSTASCII_USTRINGPARAM("Geometry"))) ); -// drawing::PointSequenceSequence* pSourcePolyPolygon = (drawing::PointSequenceSequence*)aAny.getValue(); -// -// if(pSourcePolyPolygon && pSourcePolyPolygon->getLength()) -// { -// sal_Int32 nOuterCnt(pSourcePolyPolygon->getLength()); -// -// if(1L == nOuterCnt && !bBezier) -// { -// // simple polygon shape, can be written as svg:points sequence -// drawing::PointSequence* pSequence = pSourcePolyPolygon->getArray(); -// if(pSequence) -// { -// const basegfx::B2DPolygon aPolygon( -// basegfx::tools::UnoPointSequenceToB2DPolygon( -// *pSequence)); -// const ::rtl::OUString aPointString( -// basegfx::tools::exportToSvgPoints( -// aPolygon)); -// // SdXMLImExPointsElement aPoints(pSequence, aViewBox, aPoint, aSize, bClosed); -// -// // write point array -// mrExport.AddAttribute(XML_NAMESPACE_DRAW, XML_POINTS, aPointString); -// } -// -// // write object now -// SvXMLElementExport aOBJ(mrExport, XML_NAMESPACE_DRAW, -// bClosed ? XML_POLYGON : XML_POLYLINE , bCreateNewline, sal_True); -// -// ImpExportDescription( xShape ); // #i68101# -// ImpExportEvents( xShape ); -// ImpExportGluePoints( xShape ); -// ImpExportText( xShape ); -// } -// else -// { -// // polypolygon or bezier, needs to be written as a svg:path sequence -// drawing::PointSequence* pOuterSequence = pSourcePolyPolygon->getArray(); -// if(pOuterSequence) -// { -// // prepare svx:d element export -// SdXMLImExSvgDElement aSvgDElement(aViewBox); -// -// for(sal_Int32 a(0L); a < nOuterCnt; a++) -// { -// drawing::PointSequence* pSequence = pOuterSequence++; -// if(pSequence) -// { -// aSvgDElement.AddPolygon(pSequence, 0L, aPoint, -// aSize, bClosed); -// } -// } -// -// // write point array -// mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_D, aSvgDElement.GetExportString()); -// } -// -// // write object now -// SvXMLElementExport aOBJ(mrExport, XML_NAMESPACE_DRAW, XML_PATH, bCreateNewline, sal_True); -// -// ImpExportDescription( xShape ); // #i68101# -// ImpExportEvents( xShape ); -// ImpExportGluePoints( xShape ); -// ImpExportText( xShape ); -// } -// } -// } } } @@ -1538,34 +1415,6 @@ void XMLShapeExport::ImpExportConnectorShape( // write svg:d mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_D, aPolygonString); -// TTTT -// sal_Int32 nOuterCnt(pSourcePolyPolygon->Coordinates.getLength()); -// drawing::PointSequence* pOuterSequence = pSourcePolyPolygon->Coordinates.getArray(); -// drawing::FlagSequence* pOuterFlags = pSourcePolyPolygon->Flags.getArray(); -// -// if(pOuterSequence && pOuterFlags) -// { -// // prepare svx:d element export -// awt::Point aPoint( 0, 0 ); -// awt::Size aSize( 1, 1 ); -// SdXMLImExViewBox aViewBox( 0.0, 0.0, 1.0, 1.0 ); -// SdXMLImExSvgDElement aSvgDElement(aViewBox); -// -// for(sal_Int32 a(0L); a < nOuterCnt; a++) -// { -// drawing::PointSequence* pSequence = pOuterSequence++; -// drawing::FlagSequence* pFlags = pOuterFlags++; -// -// if(pSequence && pFlags) -// { -// aSvgDElement.AddPolygon(pSequence, pFlags, -// aPoint, aSize, sal_False ); -// } -// } -// -// // write point array -// mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_D, aSvgDElement.GetExportString()); -// } } } diff --git a/xmloff/source/draw/shapeexport3.cxx b/xmloff/source/draw/shapeexport3.cxx index c3ef92d1edc7..b905bb326c21 100644 --- a/xmloff/source/draw/shapeexport3.cxx +++ b/xmloff/source/draw/shapeexport3.cxx @@ -237,99 +237,6 @@ void XMLShapeExport::ImpExport3DShape( // write point array mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_D, aPolygonString); - // TTTT - //// look for maximal values - //double fXMin = 0; - //double fXMax = 0; - //double fYMin = 0; - //double fYMax = 0; - //sal_Bool bInit(sal_False); - //sal_Int32 nOuterSequenceCount(xPolyPolygon3D.SequenceX.getLength()); - //drawing::DoubleSequence* pInnerSequenceX = xPolyPolygon3D.SequenceX.getArray(); - //drawing::DoubleSequence* pInnerSequenceY = xPolyPolygon3D.SequenceY.getArray(); - // - //sal_Int32 a; - //for (a = 0; a < nOuterSequenceCount; a++) - //{ - // sal_Int32 nInnerSequenceCount(pInnerSequenceX->getLength()); - // double* pArrayX = pInnerSequenceX->getArray(); - // double* pArrayY = pInnerSequenceY->getArray(); - // - // for(sal_Int32 b(0L); b < nInnerSequenceCount; b++) - // { - // double fX = *pArrayX++; - // double fY = *pArrayY++; - // - // if(bInit) - // { - // if(fX > fXMax) - // fXMax = fX; - // - // if(fX < fXMin) - // fXMin = fX; - // - // if(fY > fYMax) - // fYMax = fY; - // - // if(fY < fYMin) - // fYMin = fY; - // } - // else - // { - // fXMin = fXMax = fX; - // fYMin = fYMax = fY; - // bInit = sal_True; - // } - // } - // - // pInnerSequenceX++; - // pInnerSequenceY++; - //} - // - //// export ViewBox - //awt::Point aMinPoint(FRound(fXMin), FRound(fYMin)); - //awt::Size aMaxSize(FRound(fXMax) - aMinPoint.X, FRound(fYMax) - aMinPoint.Y); - //SdXMLImExViewBox aViewBox(fXMin, fYMin, fXMax - fXMin, fYMax - fYMin); - //mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_VIEWBOX, aViewBox.GetExportString()); - // - //// prepare svx:d element export - //SdXMLImExSvgDElement aSvgDElement(aViewBox); - //pInnerSequenceX = xPolyPolygon3D.SequenceX.getArray(); - //pInnerSequenceY = xPolyPolygon3D.SequenceY.getArray(); - // - //for (a = 0; a < nOuterSequenceCount; a++) - //{ - // sal_Int32 nInnerSequenceCount(pInnerSequenceX->getLength()); - // double* pArrayX = pInnerSequenceX->getArray(); - // double* pArrayY = pInnerSequenceY->getArray(); - // drawing::PointSequence aPoly(nInnerSequenceCount); - // awt::Point* pInnerSequence = aPoly.getArray(); - // - // for(sal_Int32 b(0L); b < nInnerSequenceCount; b++) - // { - // double fX = *pArrayX++; - // double fY = *pArrayY++; - // - // *pInnerSequence = awt::Point(FRound(fX), FRound(fY)); - // pInnerSequence++; - // } - // - // // calculate closed flag - // awt::Point* pFirst = aPoly.getArray(); - // awt::Point* pLast = pFirst + (nInnerSequenceCount - 1); - // sal_Bool bClosed = (pFirst->X == pLast->X && pFirst->Y == pLast->Y); - // - // aSvgDElement.AddPolygon(&aPoly, 0L, aMinPoint, - // aMaxSize, bClosed); - // - // // #80594# corrected error in PolyPolygon3D export for 3D XML - // pInnerSequenceX++; - // pInnerSequenceY++; - //} - // - //// write point array - //mrExport.AddAttribute(XML_NAMESPACE_SVG, XML_D, aSvgDElement.GetExportString()); - if(eShapeType == XmlShapeTypeDraw3DLatheObject) { // write 3DLathe shape diff --git a/xmloff/source/draw/xexptran.cxx b/xmloff/source/draw/xexptran.cxx index 7ee9bddab83c..3d4204f734da 100644 --- a/xmloff/source/draw/xexptran.cxx +++ b/xmloff/source/draw/xexptran.cxx @@ -1318,1778 +1318,4 @@ const OUString& SdXMLImExViewBox::GetExportString() return msString; } -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -//SdXMLImExPointsElement::SdXMLImExPointsElement(drawing::PointSequence* pPoints, -// const SdXMLImExViewBox& rViewBox, -// const awt::Point& rObjectPos, -// const awt::Size& rObjectSize, -// const bool bClosed) -//: maPoly( 0L ) -//{ -// DBG_ASSERT(pPoints, "Empty PointSequence handed over to SdXMLImExPointsElement(!)"); -// -// // add polygon to string -// sal_Int32 nCnt(pPoints->getLength()); -// -// // #104076# Convert to string only when at last one point included -// if(nCnt > 0) -// { -// OUString aNewString; -// awt::Point* pArray = pPoints->getArray(); -// -// // last point same? Ignore it. -// // #96328# ...but only when polygon is CLOSED -// if(bClosed && (pArray->X == (pArray + (nCnt - 1))->X) && (pArray->Y == (pArray + (nCnt - 1))->Y)) -// nCnt--; -// -// // object size and ViewBox size different? -// bool bScale(rObjectSize.Width != rViewBox.GetWidth() -// || rObjectSize.Height != rViewBox.GetHeight()); -// bool bTranslate(rViewBox.GetX() != 0L || rViewBox.GetY() != 0L); -// -// for(sal_Int32 a(0L); a < nCnt; a++) -// { -// // prepare coordinates -// sal_Int32 nX( pArray->X - rObjectPos.X ); -// sal_Int32 nY( pArray->Y - rObjectPos.Y ); -// -// if(bScale && rObjectSize.Width && rObjectSize.Height) -// { -// nX = (nX * rViewBox.GetWidth()) / rObjectSize.Width; -// nY = (nY * rViewBox.GetHeight()) / rObjectSize.Height; -// } -// -// if(bTranslate) -// { -// nX += rViewBox.GetX(); -// nY += rViewBox.GetY(); -// } -// -// // X and comma -// Imp_PutNumberChar(aNewString, nX); -// aNewString += String(sal_Unicode(',')); -// -// // Y and space (not for last) -// Imp_PutNumberChar(aNewString, nY); -// if(a + 1 != nCnt) -// aNewString += String(sal_Unicode(' ')); -// -// // next point -// pArray++; -// } -// -// // set new string -// msString = aNewString; -// } -//} -// -//// #100617# svg:polyline or svg:polygon values may be double precision. -//SdXMLImExPointsElement::SdXMLImExPointsElement(const OUString& rNew, -// const SdXMLImExViewBox& rViewBox, -// const awt::Point& rObjectPos, -// const awt::Size& rObjectSize, -// const SvXMLUnitConverter& rConv, -// const bool bClosed) -//: msString( rNew ), -// maPoly( 0L ) -//{ -// // convert string to polygon -// const OUString aStr(msString.getStr(), (sal_uInt16)msString.getLength()); -// const sal_Int32 nLen(aStr.getLength()); -// sal_Int32 nPos(0); -// sal_Int32 nNumPoints(0L); -// -// // skip starting spaces -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// // count points in first loop -// while(nPos < nLen) -// { -// // skip number, #100617# be prepared for doubles -// Imp_SkipDouble(aStr, nPos, nLen); -// -// // skip spaces and commas -// Imp_SkipSpacesAndCommas(aStr, nPos, nLen); -// -// // skip number, #100617# be prepared for doubles -// Imp_SkipDouble(aStr, nPos, nLen); -// -// // skip spaces and commas -// Imp_SkipSpacesAndCommas(aStr, nPos, nLen); -// -// // one more point -// nNumPoints++; -// } -// -// // second loop -// if(nNumPoints) -// { -// nPos = 0; -// maPoly.realloc(1); -// drawing::PointSequence* pOuterSequence = maPoly.getArray(); -// pOuterSequence->realloc(nNumPoints + (bClosed ? 1 : 0)); -// awt::Point* pInnerSequence = pOuterSequence->getArray(); -// -// // object size and ViewBox size different? -// bool bScale(rObjectSize.Width != rViewBox.GetWidth() -// || rObjectSize.Height != rViewBox.GetHeight()); -// bool bTranslate(rViewBox.GetX() != 0L || rViewBox.GetY() != 0L); -// -// // skip starting spaces -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen) -// { -// // prepare new parameter pair -// sal_Int32 nX(0L); -// sal_Int32 nY(0L); -// -// // get mX, #100617# be prepared for doubles -// nX = FRound(Imp_GetDoubleChar(aStr, nPos, nLen, rConv, (double)nX)); -// -// // skip spaces and commas -// Imp_SkipSpacesAndCommas(aStr, nPos, nLen); -// -// // get mY, #100617# be prepared for doubles -// nY = FRound(Imp_GetDoubleChar(aStr, nPos, nLen, rConv, (double)nY)); -// -// // skip spaces and commas -// Imp_SkipSpacesAndCommas(aStr, nPos, nLen); -// -// // prepare parameters -// if(bTranslate) -// { -// nX -= rViewBox.GetX(); -// nY -= rViewBox.GetY(); -// } -// -// if(bScale && rViewBox.GetWidth() && rViewBox.GetHeight() ) -// { -// nX = (nX * rObjectSize.Width) / rViewBox.GetWidth(); -// nY = (nY * rObjectSize.Height) / rViewBox.GetHeight(); -// } -// -// nX += rObjectPos.X; -// nY += rObjectPos.Y; -// -// // add new point -// *pInnerSequence = awt::Point( nX, nY ); -// pInnerSequence++; -// } -// -// if(bClosed) -// { -// *pInnerSequence = *pOuterSequence->getArray(); -// } -// } -//} -// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -// -//SdXMLImExSvgDElement::SdXMLImExSvgDElement(const SdXMLImExViewBox& rViewBox) -//: mrViewBox( rViewBox ), -// mbIsClosed( false ), -// mbIsCurve( false ), -// mnLastX( 0L ), -// mnLastY( 0L ), -// maPoly( 0L ), -// maFlag( 0L ) -//{ -//} -// -//void Imp_GetPrevPos(awt::Point*& pPrevPos1, -// drawing::PolygonFlags& aPrevFlag1, -// const bool bClosed, awt::Point* pPoints, -// drawing::PolygonFlags* pFlags, const sal_Int32 nPos, -// const sal_Int32 nCnt, const sal_Int32 nAdd) -//{ -// if(bClosed) -// { -// pPrevPos1 = pPoints + ((nPos + nCnt - nAdd) % nCnt); -// aPrevFlag1 = *(pFlags + ((nPos + nCnt - nAdd) % nCnt)); -// } -// else if(nPos > (nAdd - 1)) -// { -// pPrevPos1 = pPoints + (nPos - nAdd); -// aPrevFlag1 = *(pFlags + (nPos - nAdd)); -// } -// else -// pPrevPos1 = 0L; -//} -// -//void Imp_PrepareCoorExport(sal_Int32& nX, sal_Int32& nY, -// const awt::Point* pPointArray, const awt::Point& rObjectPos, -// const awt::Size& rObjectSize, const SdXMLImExViewBox& mrViewBox, -// const bool bScale, const bool bTranslate) -//{ -// nX = pPointArray->X - rObjectPos.X; -// nY = pPointArray->Y - rObjectPos.Y; -// -// if(bScale && rObjectSize.Width && rObjectSize.Height ) -// { -// nX = (nX * mrViewBox.GetWidth()) / rObjectSize.Width; -// nY = (nY * mrViewBox.GetHeight()) / rObjectSize.Height; -// } -// -// if(bTranslate) -// { -// nX += mrViewBox.GetX(); -// nY += mrViewBox.GetY(); -// } -//} -// -////#define TEST_QUADRATIC_CURVES -//#ifdef TEST_QUADRATIC_CURVES -//// To be able to test quadratic curve code: The code concerning to -//// bDoTestHere can be used (see below). Construct shapes which have their control -//// points on equal coordinates. When these are written, they can be -//// forced to create correct 'Q' and 'T' statements using this flag. -//// These may then be tested for import/exporting. -//static bool bDoTestHere(true); -//#endif // TEST_QUADRATIC_CURVES -// -//void SdXMLImExSvgDElement::AddPolygon( -// drawing::PointSequence* pPoints, -// drawing::FlagSequence* pFlags, -// const awt::Point& rObjectPos, -// const awt::Size& rObjectSize, -// bool bClosed, bool bRelative) -//{ -// DBG_ASSERT(pPoints, "Empty PointSequence handed over to SdXMLImExSvgDElement(!)"); -// -// sal_Int32 nCnt(pPoints->getLength()); -// -// // #104076# Convert to string only when at last one point included -// if(nCnt > 0) -// { -// // append polygon to string -// OUString aNewString; -// sal_Unicode aLastCommand = ' '; -// awt::Point* pPointArray = pPoints->getArray(); -// -// // are the flags used at all? If not forget about them -// if(pFlags) -// { -// sal_Int32 nFlagCnt(pFlags->getLength()); -// -// if(nFlagCnt) -// { -// bool bFlagsUsed(false); -// drawing::PolygonFlags* pFlagArray = pFlags->getArray(); -// -// for(sal_Int32 a(0); !bFlagsUsed && a < nFlagCnt; a++) -// if(drawing::PolygonFlags_NORMAL != *pFlagArray++) -// bFlagsUsed = true; -// -// if(!bFlagsUsed) -// pFlags = 0L; -// } -// else -// { -// pFlags = 0L; -// } -// } -// -// // object size and ViewBox size different? -// bool bScale(rObjectSize.Width != mrViewBox.GetWidth() -// || rObjectSize.Height != mrViewBox.GetHeight()); -// bool bTranslate(mrViewBox.GetX() != 0L || mrViewBox.GetY() != 0L); -// -// // #87202# rework of point reduction: -// // Test for Last point same -> closed, ignore last point. Take -// // some more circumstances in account when looking at curve segments. -// drawing::PolygonFlags* pFlagArray = (pFlags) ? pFlags->getArray() : 0L; -// -// // #121090# only reduce double start/end points if polygon *is* closed -// if(bClosed && (pPointArray->X == (pPointArray + (nCnt - 1))->X) && (pPointArray->Y == (pPointArray + (nCnt - 1))->Y)) -// { -// if(pFlags) -// { -// // point needs to be ignored if point before it is -// // NO control point. Else the last point is needed -// // for exporting the last segment of the curve. That means -// // that the last and the first point will be saved double, -// // but SVG does not support a better solution here. -// if(nCnt >= 2 && drawing::PolygonFlags_CONTROL != *(pFlagArray + (nCnt - 2))) -// { -// nCnt--; -// } -// } -// else -// { -// // no curve, ignore last point -// nCnt--; -// } -// } -// -// // bezier poly, handle curves -// bool bDidWriteStart(false); -// -// for(sal_Int32 a(0L); a < nCnt; a++) -// { -// if(!pFlags || drawing::PolygonFlags_CONTROL != *pFlagArray) -// { -// bool bDidWriteAsCurve(false); -// -// if(bDidWriteStart) -// { -// if(pFlags) -// { -// // real curve point, get previous to see if it's a control point -// awt::Point* pPrevPos1; -// drawing::PolygonFlags aPrevFlag1; -// -// Imp_GetPrevPos(pPrevPos1, aPrevFlag1, bClosed, pPoints->getArray(), -// pFlags->getArray(), a, nCnt, 1); -// -// if(pPrevPos1 && drawing::PolygonFlags_CONTROL == aPrevFlag1) -// { -// // get previous2 to see if it's a control point, too -// awt::Point* pPrevPos2; -// drawing::PolygonFlags aPrevFlag2; -// -// Imp_GetPrevPos(pPrevPos2, aPrevFlag2, bClosed, pPoints->getArray(), -// pFlags->getArray(), a, nCnt, 2); -// -// if(pPrevPos2 && drawing::PolygonFlags_CONTROL == aPrevFlag2) -// { -// // get previous3 to see if it's a curve point and if, -// // if it is fully symmetric or not -// awt::Point* pPrevPos3; -// drawing::PolygonFlags aPrevFlag3; -// -// Imp_GetPrevPos(pPrevPos3, aPrevFlag3, bClosed, pPoints->getArray(), -// pFlags->getArray(), a, nCnt, 3); -// -// if(pPrevPos3) -// { -// // prepare coordinates -// sal_Int32 nX, nY; -// -// Imp_PrepareCoorExport(nX, nY, pPointArray, rObjectPos, rObjectSize, -// mrViewBox, bScale, bTranslate); -// -// // #100617# test if this curve segment may be written as -// // a quadratic bezier -// // That's the case if both control points are in the same place -// // when they are prolonged to the common quadratic control point -// // Left: P = (3P1 - P0) / 2 -// // Right: P = (3P2 - P3) / 2 -// bool bIsQuadratic(false); -// const bool bEnableSaveQuadratic(false); -// -// sal_Int32 nPX_L(FRound((double)((3 * pPrevPos2->X) - pPrevPos3->X) / 2.0)); -// sal_Int32 nPY_L(FRound((double)((3 * pPrevPos2->Y) - pPrevPos3->Y) / 2.0)); -// sal_Int32 nPX_R(FRound((double)((3 * pPrevPos1->X) - pPointArray->X) / 2.0)); -// sal_Int32 nPY_R(FRound((double)((3 * pPrevPos1->Y) - pPointArray->Y) / 2.0)); -// sal_Int32 nDist(0); -// -// if(nPX_L != nPX_R) -// { -// nDist += abs(nPX_L - nPX_R); -// } -// -// if(nPY_L != nPY_R) -// { -// nDist += abs(nPY_L - nPY_R); -// } -// -// if(nDist <= BORDER_INTEGERS_ARE_EQUAL) -// { -// if(bEnableSaveQuadratic) -// { -// bIsQuadratic = true; -// } -// } -// -//#ifdef TEST_QUADRATIC_CURVES -// if(bDoTestHere) -// { -// bIsQuadratic = false; -// -// if(pPrevPos1->X == pPrevPos2->X && pPrevPos1->Y == pPrevPos2->Y) -// bIsQuadratic = true; -// } -//#endif // TEST_QUADRATIC_CURVES -// -// if(bIsQuadratic) -// { -//#ifdef TEST_QUADRATIC_CURVES -// if(bDoTestHere) -// { -// bool bPrevPointIsSymmetric(false); -// -// if(drawing::PolygonFlags_SYMMETRIC == aPrevFlag3) -// { -// // get previous4 to see if it's a control point -// awt::Point* pPrevPos4; -// drawing::PolygonFlags aPrevFlag4; -// -// Imp_GetPrevPos(pPrevPos4, aPrevFlag4, bClosed, pPoints->getArray(), -// pFlags->getArray(), a, nCnt, 4); -// -// if(drawing::PolygonFlags_CONTROL == aPrevFlag4) -// { -// // okay, prevPos3 is symmetric (c2) and prevPos4 -// // is existing control point, the 's' statement can be used -// bPrevPointIsSymmetric = true; -// } -// } -// -// if(bPrevPointIsSymmetric) -// { -// // write a shorthand/smooth quadratic curveto entry (T) -// if(bRelative) -// { -// if(aLastCommand != sal_Unicode('t')) -// aNewString += OUString(sal_Unicode('t')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX - mnLastX); -// Imp_PutNumberCharWithSpace(aNewString, nY - mnLastY); -// -// aLastCommand = sal_Unicode('t'); -// } -// else -// { -// if(aLastCommand != sal_Unicode('T')) -// aNewString += OUString(sal_Unicode('T')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX); -// Imp_PutNumberCharWithSpace(aNewString, nY); -// -// aLastCommand = sal_Unicode('T'); -// } -// } -// else -// { -// // prepare coordinates -// sal_Int32 nX1, nY1; -// -// Imp_PrepareCoorExport(nX1, nY1, pPrevPos1, rObjectPos, rObjectSize, -// mrViewBox, bScale, bTranslate); -// -// // write a quadratic curveto entry (Q) -// if(bRelative) -// { -// if(aLastCommand != sal_Unicode('q')) -// aNewString += OUString(sal_Unicode('q')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX1 - mnLastX); -// Imp_PutNumberCharWithSpace(aNewString, nY1 - mnLastY); -// Imp_PutNumberCharWithSpace(aNewString, nX - mnLastX); -// Imp_PutNumberCharWithSpace(aNewString, nY - mnLastY); -// -// aLastCommand = sal_Unicode('q'); -// } -// else -// { -// if(aLastCommand != sal_Unicode('Q')) -// aNewString += OUString(sal_Unicode('Q')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX1); -// Imp_PutNumberCharWithSpace(aNewString, nY1); -// Imp_PutNumberCharWithSpace(aNewString, nX); -// Imp_PutNumberCharWithSpace(aNewString, nY); -// -// aLastCommand = sal_Unicode('Q'); -// } -// } -// } -// else -// { -//#endif // TEST_QUADRATIC_CURVES -// awt::Point aNewPoint(nPX_L, nPY_L); -// bool bPrevPointIsSmooth(false); -// -// if(drawing::PolygonFlags_SMOOTH == aPrevFlag3) -// { -// // get previous4 to see if it's a control point -// awt::Point* pPrevPos4; -// drawing::PolygonFlags aPrevFlag4; -// -// Imp_GetPrevPos(pPrevPos4, aPrevFlag4, bClosed, pPoints->getArray(), -// pFlags->getArray(), a, nCnt, 4); -// -// if(drawing::PolygonFlags_CONTROL == aPrevFlag4) -// { -// // okay, prevPos3 is smooth (c1) and prevPos4 -// // is existing control point. Test if it's even symmetric -// // and thus the 'T' statement may be used. -// ::basegfx::B2DVector aVec1(pPrevPos4->X - pPrevPos3->X, pPrevPos4->Y - pPrevPos3->Y); -// ::basegfx::B2DVector aVec2(aNewPoint.X - pPrevPos3->X, aNewPoint.Y - pPrevPos3->Y); -// bool bSameLength(false); -// bool bSameDirection(false); -// -// // get vector values -// Imp_CalcVectorValues(aVec1, aVec2, bSameLength, bSameDirection); -// -// if(bSameLength && bSameDirection) -// bPrevPointIsSmooth = true; -// } -// } -// -// if(bPrevPointIsSmooth) -// { -// // write a shorthand/smooth quadratic curveto entry (T) -// if(bRelative) -// { -// if(aLastCommand != sal_Unicode('t')) -// aNewString += String(sal_Unicode('t')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX - mnLastX); -// Imp_PutNumberCharWithSpace(aNewString, nY - mnLastY); -// -// aLastCommand = sal_Unicode('t'); -// } -// else -// { -// if(aLastCommand != sal_Unicode('T')) -// aNewString += String(sal_Unicode('T')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX); -// Imp_PutNumberCharWithSpace(aNewString, nY); -// -// aLastCommand = sal_Unicode('T'); -// } -// } -// else -// { -// // prepare coordinates -// sal_Int32 nX1, nY1; -// -// Imp_PrepareCoorExport(nX1, nY1, &aNewPoint, rObjectPos, rObjectSize, -// mrViewBox, bScale, bTranslate); -// -// // write a quadratic curveto entry (Q) -// if(bRelative) -// { -// if(aLastCommand != sal_Unicode('q')) -// aNewString += String(sal_Unicode('q')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX1 - mnLastX); -// Imp_PutNumberCharWithSpace(aNewString, nY1 - mnLastY); -// Imp_PutNumberCharWithSpace(aNewString, nX - mnLastX); -// Imp_PutNumberCharWithSpace(aNewString, nY - mnLastY); -// -// aLastCommand = sal_Unicode('q'); -// } -// else -// { -// if(aLastCommand != sal_Unicode('Q')) -// aNewString += String(sal_Unicode('Q')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX1); -// Imp_PutNumberCharWithSpace(aNewString, nY1); -// Imp_PutNumberCharWithSpace(aNewString, nX); -// Imp_PutNumberCharWithSpace(aNewString, nY); -// -// aLastCommand = sal_Unicode('Q'); -// } -// } -//#ifdef TEST_QUADRATIC_CURVES -// } -//#endif // TEST_QUADRATIC_CURVES -// } -// else -// { -// bool bPrevPointIsSymmetric(false); -// -// if(drawing::PolygonFlags_SYMMETRIC == aPrevFlag3) -// { -// // get previous4 to see if it's a control point -// awt::Point* pPrevPos4; -// drawing::PolygonFlags aPrevFlag4; -// -// Imp_GetPrevPos(pPrevPos4, aPrevFlag4, bClosed, pPoints->getArray(), -// pFlags->getArray(), a, nCnt, 4); -// -// if(drawing::PolygonFlags_CONTROL == aPrevFlag4) -// { -// // okay, prevPos3 is symmetric (c2) and prevPos4 -// // is existing control point, the 's' statement can be used -// bPrevPointIsSymmetric = true; -// } -// } -// -// // prepare coordinates -// sal_Int32 nX2, nY2; -// -// Imp_PrepareCoorExport(nX2, nY2, pPrevPos1, rObjectPos, rObjectSize, -// mrViewBox, bScale, bTranslate); -// -// if(bPrevPointIsSymmetric) -// { -// // write a shorthand/smooth curveto entry (S) -// if(bRelative) -// { -// if(aLastCommand != sal_Unicode('s')) -// aNewString += String(sal_Unicode('s')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX2 - mnLastX); -// Imp_PutNumberCharWithSpace(aNewString, nY2 - mnLastY); -// Imp_PutNumberCharWithSpace(aNewString, nX - mnLastX); -// Imp_PutNumberCharWithSpace(aNewString, nY - mnLastY); -// -// aLastCommand = sal_Unicode('s'); -// } -// else -// { -// if(aLastCommand != sal_Unicode('S')) -// aNewString += String(sal_Unicode('S')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX2); -// Imp_PutNumberCharWithSpace(aNewString, nY2); -// Imp_PutNumberCharWithSpace(aNewString, nX); -// Imp_PutNumberCharWithSpace(aNewString, nY); -// -// aLastCommand = sal_Unicode('S'); -// } -// } -// else -// { -// // prepare coordinates -// sal_Int32 nX1, nY1; -// -// Imp_PrepareCoorExport(nX1, nY1, pPrevPos2, rObjectPos, rObjectSize, -// mrViewBox, bScale, bTranslate); -// -// // write a curveto entry (C) -// if(bRelative) -// { -// if(aLastCommand != sal_Unicode('c')) -// aNewString += String(sal_Unicode('c')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX1 - mnLastX); -// Imp_PutNumberCharWithSpace(aNewString, nY1 - mnLastY); -// Imp_PutNumberCharWithSpace(aNewString, nX2 - mnLastX); -// Imp_PutNumberCharWithSpace(aNewString, nY2 - mnLastY); -// Imp_PutNumberCharWithSpace(aNewString, nX - mnLastX); -// Imp_PutNumberCharWithSpace(aNewString, nY - mnLastY); -// -// aLastCommand = sal_Unicode('c'); -// } -// else -// { -// if(aLastCommand != sal_Unicode('C')) -// aNewString += String(sal_Unicode('C')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX1); -// Imp_PutNumberCharWithSpace(aNewString, nY1); -// Imp_PutNumberCharWithSpace(aNewString, nX2); -// Imp_PutNumberCharWithSpace(aNewString, nY2); -// Imp_PutNumberCharWithSpace(aNewString, nX); -// Imp_PutNumberCharWithSpace(aNewString, nY); -// -// aLastCommand = sal_Unicode('C'); -// } -// } -// } -// -// // remember that current point IS written -// bDidWriteAsCurve = true; -// -// // remember new last position -// mnLastX = nX; -// mnLastY = nY; -// } -// } -// } -// } -// } -// -// if(!bDidWriteAsCurve) -// { -// // current point not yet written, prepare coordinates -// sal_Int32 nX, nY; -// -// Imp_PrepareCoorExport(nX, nY, pPointArray, rObjectPos, rObjectSize, -// mrViewBox, bScale, bTranslate); -// -// if(bDidWriteStart) -// { -// // write as normal point -// if(mnLastX == nX) -// { -// if(bRelative) -// { -// if(aLastCommand != sal_Unicode('v')) -// aNewString += String(sal_Unicode('v')); -// -// Imp_PutNumberCharWithSpace(aNewString, nY - mnLastY); -// -// aLastCommand = sal_Unicode('v'); -// } -// else -// { -// if(aLastCommand != sal_Unicode('V')) -// aNewString += String(sal_Unicode('V')); -// -// Imp_PutNumberCharWithSpace(aNewString, nY); -// -// aLastCommand = sal_Unicode('V'); -// } -// } -// else if(mnLastY == nY) -// { -// if(bRelative) -// { -// if(aLastCommand != sal_Unicode('h')) -// aNewString += String(sal_Unicode('h')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX - mnLastX); -// -// aLastCommand = sal_Unicode('h'); -// } -// else -// { -// if(aLastCommand != sal_Unicode('H')) -// aNewString += String(sal_Unicode('H')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX); -// -// aLastCommand = sal_Unicode('H'); -// } -// } -// else -// { -// if(bRelative) -// { -// if(aLastCommand != sal_Unicode('l')) -// aNewString += String(sal_Unicode('l')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX - mnLastX); -// Imp_PutNumberCharWithSpace(aNewString, nY - mnLastY); -// -// aLastCommand = sal_Unicode('l'); -// } -// else -// { -// if(aLastCommand != sal_Unicode('L')) -// aNewString += String(sal_Unicode('L')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX); -// Imp_PutNumberCharWithSpace(aNewString, nY); -// -// aLastCommand = sal_Unicode('L'); -// } -// } -// } -// else -// { -// // write as start point -// if(bRelative) -// { -// aNewString += String(sal_Unicode('m')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX - mnLastX); -// Imp_PutNumberCharWithSpace(aNewString, nY - mnLastY); -// -// aLastCommand = sal_Unicode('l'); -// } -// else -// { -// aNewString += String(sal_Unicode('M')); -// -// Imp_PutNumberCharWithSpace(aNewString, nX); -// Imp_PutNumberCharWithSpace(aNewString, nY); -// -// aLastCommand = sal_Unicode('L'); -// } -// -// // remember start written -// bDidWriteStart = true; -// } -// -// // remember new last position -// mnLastX = nX; -// mnLastY = nY; -// } -// } -// -// // next point -// pPointArray++; -// pFlagArray++; -// } -// -// // close path if closed poly -// if(bClosed) -// { -// if(bRelative) -// aNewString += String(sal_Unicode('z')); -// else -// aNewString += String(sal_Unicode('Z')); -// } -// -// // append new string -// msString += aNewString; -// } -//} -// -//// #100617# Linear double reader -//double Imp_ImportDoubleAndSpaces( -// double fRetval, const OUString& rStr, sal_Int32& rPos, -// const sal_Int32 nLen, const SvXMLUnitConverter& rConv) -//{ -// fRetval = Imp_GetDoubleChar(rStr, rPos, nLen, rConv, fRetval); -// Imp_SkipSpacesAndCommas(rStr, rPos, nLen); -// return fRetval; -//} -// -//// #100617# Allow to read doubles, too. This will need to be changed to -//// the usage of Imp_ImportDoubleAndSpaces(...). For now, this is sufficient -//// since the interface cannot transport doubles. -//sal_Int32 Imp_ImportNumberAndSpaces( -// sal_Int32 nRetval, const OUString& rStr, sal_Int32& rPos, -// const sal_Int32 nLen, const SvXMLUnitConverter& rConv) -//{ -// nRetval = FRound(Imp_ImportDoubleAndSpaces(double(nRetval), rStr, rPos, nLen, rConv)); -// Imp_SkipSpacesAndCommas(rStr, rPos, nLen); -// return nRetval; -//} -// -//void Imp_PrepareCoorImport(sal_Int32& nX, sal_Int32& nY, -// const awt::Point& rObjectPos, const awt::Size& rObjectSize, -// const SdXMLImExViewBox& rViewBox, const bool bScale, const bool bTranslate) -//{ -// if(bTranslate) -// { -// nX -= rViewBox.GetX(); -// nY -= rViewBox.GetY(); -// } -// -// if(bScale && rViewBox.GetWidth() && rViewBox.GetHeight()) -// { -// nX = (nX * rObjectSize.Width) / rViewBox.GetWidth(); -// nY = (nY * rObjectSize.Height) / rViewBox.GetHeight(); -// } -// -// nX += rObjectPos.X; -// nY += rObjectPos.Y; -//} -// -//void Imp_AddExportPoints(sal_Int32 nX, sal_Int32 nY, -// awt::Point* pPoints, drawing::PolygonFlags* pFlags, -// const sal_Int32 nInnerIndex, -// drawing::PolygonFlags eFlag) -//{ -// if(pPoints) -// pPoints[nInnerIndex] = awt::Point( nX, nY ); -// -// if(pFlags) -// pFlags[nInnerIndex] = eFlag; -//} -// -//void Imp_CalcVectorValues(::basegfx::B2DVector& aVec1, ::basegfx::B2DVector& aVec2, bool& bSameLength, bool& bSameDirection) -//{ -// const sal_Int32 nLen1(FRound(aVec1.getLength())); -// const sal_Int32 nLen2(FRound(aVec2.getLength())); -// aVec1.normalize(); -// aVec2.normalize(); -// aVec1 += aVec2; -// const sal_Int32 nLen3(FRound(aVec1.getLength() * ((nLen1 + nLen2) / 2.0))); -// -// bSameLength = (abs(nLen1 - nLen2) <= BORDER_INTEGERS_ARE_EQUAL); -// bSameDirection = (nLen3 <= BORDER_INTEGERS_ARE_EQUAL); -//} -// -//void Imp_CorrectPolygonFlag(const sal_uInt32 nInnerIndex, const awt::Point* const pInnerSequence, -// drawing::PolygonFlags* const pInnerFlags, const sal_Int32 nX1, const sal_Int32 nY1) -//{ -// if(nInnerIndex) -// { -// const awt::Point aPPrev1 = pInnerSequence[nInnerIndex - 1]; -// -// if(nInnerIndex > 1) -// { -// const awt::Point aPPrev2 = pInnerSequence[nInnerIndex - 2]; -// const drawing::PolygonFlags aFPrev2 = pInnerFlags[nInnerIndex - 2]; -// ::basegfx::B2DVector aVec1(aPPrev2.X - aPPrev1.X, aPPrev2.Y - aPPrev1.Y); -// ::basegfx::B2DVector aVec2(nX1 - aPPrev1.X, nY1 - aPPrev1.Y); -// bool bSameLength(false); -// bool bSameDirection(false); -// -// // get vector values -// Imp_CalcVectorValues(aVec1, aVec2, bSameLength, bSameDirection); -// -// if(drawing::PolygonFlags_CONTROL == aFPrev2) -// { -// // point before is a control point -// if(bSameDirection) -// { -// if(bSameLength) -// { -// // set to PolygonFlags_SYMMETRIC -// pInnerFlags[nInnerIndex - 1] = drawing::PolygonFlags_SYMMETRIC; -// } -// else -// { -// // set to PolygonFlags_SMOOTH -// pInnerFlags[nInnerIndex - 1] = drawing::PolygonFlags_SMOOTH; -// } -// } -// else -// { -// // set to PolygonFlags_NORMAL -// pInnerFlags[nInnerIndex - 1] = drawing::PolygonFlags_NORMAL; -// } -// } -// else -// { -// // point before is a simple curve point -// if(bSameDirection) -// { -// // set to PolygonFlags_SMOOTH -// pInnerFlags[nInnerIndex - 1] = drawing::PolygonFlags_SMOOTH; -// } -// else -// { -// // set to PolygonFlags_NORMAL -// pInnerFlags[nInnerIndex - 1] = drawing::PolygonFlags_NORMAL; -// } -// } -// } -// else -// { -// // no point before starpoint, set type to PolygonFlags_NORMAL -// pInnerFlags[nInnerIndex - 1] = drawing::PolygonFlags_NORMAL; -// } -// } -//} -// -//SdXMLImExSvgDElement::SdXMLImExSvgDElement(const OUString& rNew, -// const SdXMLImExViewBox& rViewBox, -// const awt::Point& rObjectPos, -// const awt::Size& rObjectSize, -// const SvXMLUnitConverter& rConv) -//: msString( rNew ), -// mrViewBox( rViewBox ), -// mbIsClosed( false ), -// mbIsCurve( false ), -// mnLastX( 0L ), -// mnLastY( 0L ), -// maPoly( 0L ), -// maFlag( 0L ) -//{ -// // convert string to polygon -// const OUString aStr(msString.getStr(), msString.getLength()); -// const sal_Int32 nLen(aStr.getLength()); -// sal_Int32 nPos(0); -// sal_Int32 nNumPolys(0L); -// bool bEllipticalArc(false); -// -// // object size and ViewBox size different? -// bool bScale(rObjectSize.Width != mrViewBox.GetWidth() -// || rObjectSize.Height != mrViewBox.GetHeight()); -// bool bTranslate(mrViewBox.GetX() != 0L || mrViewBox.GetY() != 0L); -// -// // first loop: count polys and get flags -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen) -// { -// switch(aStr[nPos++]) -// { -// case 'Z' : -// case 'z' : -// { -// break; -// } -// case 'M' : -// case 'm' : -// { -// nNumPolys++; -// break; -// } -// case 'S' : -// case 's' : -// case 'C' : -// case 'c' : -// case 'Q' : -// case 'q' : -// case 'T' : -// case 't' : -// { -// mbIsCurve = true; -// break; -// } -// case 'L' : -// case 'l' : -// case 'H' : -// case 'h' : -// case 'V' : -// case 'v' : -// { -// // normal, interpreted values. All okay. -// break; -// } -// case 'A' : -// case 'a' : -// { -// // Not yet interpreted value. -// bEllipticalArc = true; -// break; -// } -// } -// } -// -// DBG_ASSERT(!bEllipticalArc, "XMLIMP: non-interpreted tags in svg:d element!"); -// -// if(nNumPolys) -// { -// // alloc arrays -// maPoly.realloc(nNumPolys); -// if(IsCurve()) -// maFlag.realloc(nNumPolys); -// -// // get outer sequences -// drawing::PointSequence* pOuterSequence = maPoly.getArray(); -// drawing::FlagSequence* pOuterFlags = (IsCurve()) ? maFlag.getArray() : 0L; -// -// // prepare new loop, count -// sal_uInt32 nPointCount(0L); -// nPos = 0; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// // #104076# reset closed flag for next to be started polygon -// mbIsClosed = false; -// -// while(nPos < nLen) -// { -// switch(aStr[nPos]) -// { -// case 'z' : -// case 'Z' : -// { -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// // #104076# remember closed state of current polygon -// mbIsClosed = true; -// -// break; -// } -// case 'm' : -// case 'M' : -// { -// // new poly starts, end-process current poly -// if(nPointCount) -// { -// // #104076# If this partial polygon is closed, use one more point -// // to represent that -// if(mbIsClosed) -// { -// nPointCount++; -// } -// -// pOuterSequence->realloc(nPointCount); -// pOuterSequence++; -// -// if(pOuterFlags) -// { -// pOuterFlags->realloc(nPointCount); -// pOuterFlags++; -// } -// -// // reset point count for next polygon -// nPointCount = 0L; -// } -// -// // #104076# reset closed flag for next to be started polygon -// mbIsClosed = false; -// -// // NO break, continue in next case -// } -// case 'L' : -// case 'l' : -// { -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos)) -// { -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// nPointCount++; -// } -// break; -// } -// case 'H' : -// case 'h' : -// case 'V' : -// case 'v' : -// { -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos)) -// { -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// nPointCount++; -// } -// break; -// } -// case 'S' : -// case 's' : -// { -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos)) -// { -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// nPointCount += 3; -// } -// break; -// } -// case 'C' : -// case 'c' : -// { -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos)) -// { -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// nPointCount += 3; -// } -// break; -// } -// -// // #100617# quadratic beziers, supported as cubic ones -// case 'Q' : -// case 'q' : -// { -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos)) -// { -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// -// // use three points since quadratic is imported as cubic -// nPointCount += 3; -// } -// break; -// } -// -// // #100617# relative quadratic beziers, supported as cubic ones -// case 'T' : -// case 't' : -// { -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos)) -// { -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// -// // use three points since quadratic is imported as cubic -// nPointCount += 3; -// } -// break; -// } -// -// // #100617# not yet supported: elliptical arc -// case 'A' : -// case 'a' : -// { -// DBG_ERROR("XMLIMP: non-interpreted tags in svg:d element (elliptical arc)!"); -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos)) -// { -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipNumberAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipNumberAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// } -// break; -// } -// -// default: -// { -// nPos++; -// DBG_ERROR("XMLIMP: non-interpreted tags in svg:d element (unknown)!"); -// break; -// } -// } -// } -// -// // alloc last poly (when points used) -// if(nPointCount) -// { -// // #104076# If this partial polygon is closed, use one more point -// // to represent that -// if(mbIsClosed) -// { -// nPointCount++; -// } -// -// pOuterSequence->realloc(nPointCount); -// pOuterSequence++; -// -// if(pOuterFlags) -// { -// pOuterFlags->realloc(nPointCount); -// pOuterFlags++; -// } -// } -// -// // set pointers back -// pOuterSequence = maPoly.getArray(); -// pOuterFlags = (IsCurve()) ? maFlag.getArray() : 0L; -// awt::Point* pNotSoInnerSequence = 0L; -// drawing::PolygonFlags* pNotSoInnerFlags = 0L; -// sal_uInt32 nInnerIndex(0L); -// -// // prepare new loop, read points -// nPos = 0; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// // #104076# reset closed flag for next to be started polygon -// mbIsClosed = false; -// -// while(nPos < nLen) -// { -// bool bRelative(false); -// -// switch(aStr[nPos]) -// { -// case 'z' : -// case 'Z' : -// { -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// // #104076# remember closed state of current polygon -// mbIsClosed = true; -// -// // closed: add first point again -// // sal_Int32 nX(pInnerSequence[0].X); -// // sal_Int32 nY(pInnerSequence[0].Y); -// // Imp_AddExportPoints(nX, nY, pInnerSequence, pInnerFlags, nInnerIndex++, drawing::PolygonFlags_NORMAL); -// -// break; -// } -// -// case 'm' : -// { -// bRelative = true; -// } -// case 'M' : -// { -// // #104076# end-process current poly -// if(mbIsClosed) -// { -// if(pNotSoInnerSequence) -// { -// // closed: add first point again -// sal_Int32 nX(pNotSoInnerSequence[0].X); -// sal_Int32 nY(pNotSoInnerSequence[0].Y); -// Imp_AddExportPoints(nX, nY, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_NORMAL); -// } -// -// // reset closed flag for next to be started polygon -// mbIsClosed = false; -// } -// -// // next poly -// pNotSoInnerSequence = pOuterSequence->getArray(); -// pOuterSequence++; -// -// if(pOuterFlags) -// { -// pNotSoInnerFlags = pOuterFlags->getArray(); -// pOuterFlags++; -// } -// -// nInnerIndex = 0L; -// -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos)) -// { -// sal_Int32 nX(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// sal_Int32 nY(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// -// if(bRelative) -// { -// nX += mnLastX; -// nY += mnLastY; -// } -// -// // set last position -// mnLastX = nX; -// mnLastY = nY; -// -// // calc transform and add point and flag -// Imp_PrepareCoorImport(nX, nY, rObjectPos, rObjectSize, mrViewBox, bScale, bTranslate); -// Imp_AddExportPoints(nX, nY, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_NORMAL); -// } -// break; -// } -// -// case 'l' : -// { -// bRelative = true; -// } -// case 'L' : -// { -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos)) -// { -// sal_Int32 nX(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// sal_Int32 nY(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// -// if(bRelative) -// { -// nX += mnLastX; -// nY += mnLastY; -// } -// -// // set last position -// mnLastX = nX; -// mnLastY = nY; -// -// // calc transform and add point and flag -// Imp_PrepareCoorImport(nX, nY, rObjectPos, rObjectSize, mrViewBox, bScale, bTranslate); -// Imp_AddExportPoints(nX, nY, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_NORMAL); -// } -// break; -// } -// -// case 'h' : -// { -// bRelative = true; -// } -// case 'H' : -// { -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos)) -// { -// sal_Int32 nX(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// sal_Int32 nY(mnLastY); -// -// if(bRelative) -// nX += mnLastX; -// -// // set last position -// mnLastX = nX; -// -// // calc transform and add point and flag -// Imp_PrepareCoorImport(nX, nY, rObjectPos, rObjectSize, mrViewBox, bScale, bTranslate); -// Imp_AddExportPoints(nX, nY, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_NORMAL); -// } -// break; -// } -// -// case 'v' : -// { -// bRelative = true; -// } -// case 'V' : -// { -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos)) -// { -// sal_Int32 nX(mnLastX); -// sal_Int32 nY(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// -// if(bRelative) -// nY += mnLastY; -// -// // set last position -// mnLastY = nY; -// -// // calc transform and add point and flag -// Imp_PrepareCoorImport(nX, nY, rObjectPos, rObjectSize, mrViewBox, bScale, bTranslate); -// Imp_AddExportPoints(nX, nY, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_NORMAL); -// } -// break; -// } -// -// case 's' : -// { -// bRelative = true; -// } -// case 'S' : -// { -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos)) -// { -// sal_Int32 nX1; -// sal_Int32 nY1; -// sal_Int32 nX2(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// sal_Int32 nY2(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// sal_Int32 nX(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// sal_Int32 nY(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// -// if(bRelative) -// { -// nX2 += mnLastX; -// nY2 += mnLastY; -// nX += mnLastX; -// nY += mnLastY; -// } -// -// // set last position -// mnLastX = nX; -// mnLastY = nY; -// -// // calc transform for new points -// Imp_PrepareCoorImport(nX2, nY2, rObjectPos, rObjectSize, mrViewBox, bScale, bTranslate); -// Imp_PrepareCoorImport(nX, nY, rObjectPos, rObjectSize, mrViewBox, bScale, bTranslate); -// -// // one more thing is known: the previous real point is PolygonFlags_SYMMETRIC -// // and the Point X1,Y1 can be constructed by mirroring the point before it. -// nX1 = nX2; -// nY1 = nY2; -// if(nInnerIndex) -// { -// awt::Point aPPrev1 = pNotSoInnerSequence[nInnerIndex - 1]; -// -// if(nInnerIndex > 1) -// { -// awt::Point aPPrev2 = pNotSoInnerSequence[nInnerIndex - 2]; -// nX1 = aPPrev1.X -(aPPrev2.X - aPPrev1.X); -// nY1 = aPPrev1.Y -(aPPrev2.Y - aPPrev1.Y); -// } -// -// // set curve point to symmetric -// pNotSoInnerFlags[nInnerIndex - 1] = drawing::PolygonFlags_SYMMETRIC; -// } -// -// // add calculated control point -// Imp_AddExportPoints(nX1, nY1, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_CONTROL); -// -// // add new points and set flags -// Imp_AddExportPoints(nX2, nY2, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_CONTROL); -// Imp_AddExportPoints(nX, nY, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_SMOOTH); -// } -// break; -// } -// -// case 'c' : -// { -// bRelative = true; -// } -// case 'C' : -// { -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos)) -// { -// sal_Int32 nX1(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// sal_Int32 nY1(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// sal_Int32 nX2(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// sal_Int32 nY2(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// sal_Int32 nX(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// sal_Int32 nY(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// -// if(bRelative) -// { -// nX1 += mnLastX; -// nY1 += mnLastY; -// nX2 += mnLastX; -// nY2 += mnLastY; -// nX += mnLastX; -// nY += mnLastY; -// } -// -// // set last position -// mnLastX = nX; -// mnLastY = nY; -// -// // calc transform for new points -// Imp_PrepareCoorImport(nX1, nY1, rObjectPos, rObjectSize, mrViewBox, bScale, bTranslate); -// Imp_PrepareCoorImport(nX2, nY2, rObjectPos, rObjectSize, mrViewBox, bScale, bTranslate); -// Imp_PrepareCoorImport(nX, nY, rObjectPos, rObjectSize, mrViewBox, bScale, bTranslate); -// -// // correct polygon flag for previous point -// Imp_CorrectPolygonFlag(nInnerIndex, pNotSoInnerSequence, pNotSoInnerFlags, nX1, nY1); -// -// // add new points and set flags -// Imp_AddExportPoints(nX1, nY1, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_CONTROL); -// Imp_AddExportPoints(nX2, nY2, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_CONTROL); -// Imp_AddExportPoints(nX, nY, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_SMOOTH); -// } -// break; -// } -// -// // #100617# quadratic beziers are imported as cubic -// case 'q' : -// { -// bRelative = true; -// } -// case 'Q' : -// { -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos)) -// { -// sal_Int32 nXX(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// sal_Int32 nYY(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// sal_Int32 nX(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// sal_Int32 nY(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// -// if(bRelative) -// { -// nXX += mnLastX; -// nYY += mnLastY; -// nX += mnLastX; -// nY += mnLastY; -// } -// -// // set last position -// mnLastX = nX; -// mnLastY = nY; -// -// // calc transform for new points -// Imp_PrepareCoorImport(nXX, nYY, rObjectPos, rObjectSize, mrViewBox, bScale, bTranslate); -// Imp_PrepareCoorImport(nX, nY, rObjectPos, rObjectSize, mrViewBox, bScale, bTranslate); -// -// // calculate X1,X2 -// awt::Point aPPrev1 = (nInnerIndex) ? pNotSoInnerSequence[nInnerIndex-1] : pNotSoInnerSequence[0]; -// sal_Int32 nX1 = FRound((double)((nXX * 2) + aPPrev1.X) / 3.0); -// sal_Int32 nY1 = FRound((double)((nYY * 2) + aPPrev1.Y) / 3.0); -// sal_Int32 nX2 = FRound((double)((nXX * 2) + nX) / 3.0); -// sal_Int32 nY2 = FRound((double)((nYY * 2) + nY) / 3.0); -// -// // correct polygon flag for previous point -// Imp_CorrectPolygonFlag(nInnerIndex, pNotSoInnerSequence, pNotSoInnerFlags, nX1, nY1); -// -// // add new points and set flags -// Imp_AddExportPoints(nX1, nY1, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_CONTROL); -// Imp_AddExportPoints(nX2, nY2, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_CONTROL); -// Imp_AddExportPoints(nX, nY, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_SMOOTH); -// } -// break; -// } -// -// // #100617# relative quadratic beziers are imported as cubic -// case 't' : -// { -// bRelative = true; -// } -// case 'T' : -// { -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos)) -// { -// sal_Int32 nXX; -// sal_Int32 nYY; -// sal_Int32 nX(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// sal_Int32 nY(Imp_ImportNumberAndSpaces(0, aStr, nPos, nLen, rConv)); -// -// if(bRelative) -// { -// nX += mnLastX; -// nY += mnLastY; -// } -// -// // set last position -// mnLastX = nX; -// mnLastY = nY; -// -// // calc transform for new points -// Imp_PrepareCoorImport(nX, nY, rObjectPos, rObjectSize, mrViewBox, bScale, bTranslate); -// -// // one more thing is known: the previous real point is PolygonFlags_SYMMETRIC -// // and the Point X1,Y1 can be constructed by mirroring the point before it. -// nXX = nX; -// nYY = nY; -// awt::Point aPPrev1 = pNotSoInnerSequence[0]; -// -// if(nInnerIndex) -// { -// aPPrev1 = pNotSoInnerSequence[nInnerIndex - 1]; -// -// if(nInnerIndex > 1) -// { -// awt::Point aPPrev2 = pNotSoInnerSequence[nInnerIndex - 2]; -// nXX = aPPrev1.X -(aPPrev2.X - aPPrev1.X); -// nYY = aPPrev1.Y -(aPPrev2.Y - aPPrev1.Y); -// } -// -// // set curve point to smooth here, since length -// // is changed and thus only c1 can be used. -// pNotSoInnerFlags[nInnerIndex - 1] = drawing::PolygonFlags_SMOOTH; -// } -// -// // calculate X1,X2 -// sal_Int32 nX1 = FRound((double)((nXX * 2) + aPPrev1.X) / 3.0); -// sal_Int32 nY1 = FRound((double)((nYY * 2) + aPPrev1.Y) / 3.0); -// sal_Int32 nX2 = FRound((double)((nXX * 2) + nX) / 3.0); -// sal_Int32 nY2 = FRound((double)((nYY * 2) + nY) / 3.0); -// -// // correct polygon flag for previous point -// Imp_CorrectPolygonFlag(nInnerIndex, pNotSoInnerSequence, pNotSoInnerFlags, nX1, nY1); -// -// // add new points and set flags -// Imp_AddExportPoints(nX1, nY1, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_CONTROL); -// Imp_AddExportPoints(nX2, nY2, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_CONTROL); -// Imp_AddExportPoints(nX, nY, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_SMOOTH); -// } -// break; -// } -// -// // #100617# not yet supported: elliptical arc -// case 'A' : -// case 'a' : -// { -// DBG_ERROR("XMLIMP: non-interpreted tags in svg:d element (elliptical arc)!"); -// nPos++; -// Imp_SkipSpaces(aStr, nPos, nLen); -// -// while(nPos < nLen && Imp_IsOnNumberChar(aStr, nPos)) -// { -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipNumberAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipNumberAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// Imp_SkipDoubleAndSpacesAndCommas(aStr, nPos, nLen); -// } -// break; -// } -// -// default: -// { -// nPos++; -// DBG_ERROR("XMLIMP: non-interpreted tags in svg:d element (unknown)!"); -// break; -// } -// } -// } -// -// // #104076# end-process closed state of last poly -// if(mbIsClosed) -// { -// if(pNotSoInnerSequence) -// { -// // closed: add first point again -// sal_Int32 nX(pNotSoInnerSequence[0].X); -// sal_Int32 nY(pNotSoInnerSequence[0].Y); -// Imp_AddExportPoints(nX, nY, pNotSoInnerSequence, pNotSoInnerFlags, nInnerIndex++, drawing::PolygonFlags_NORMAL); -// } -// } -// -// // #87202# If it's a curve and it's closed the last point maybe too much -// // and just exported since SVG does not allow special handling of same -// // start and end point, remove this last point. -// // Evtl. correct the last curve flags, too. -// if(IsCurve() && IsClosed()) -// { -// // make one more loop over the PolyPolygon -// pOuterSequence = maPoly.getArray(); -// pOuterFlags = maFlag.getArray(); -// sal_Int32 nOuterCnt(maPoly.getLength()); -// -// for(sal_Int32 a(0); a < nOuterCnt; a++) -// { -// // get Polygon pointers -// awt::Point* pInnerSequence = pOuterSequence->getArray(); -// drawing::PolygonFlags* pInnerFlags = pOuterFlags->getArray(); -// sal_Int32 nInnerCnt(pOuterSequence->getLength()); -// -// while( nInnerCnt >= 2 -// && ((pInnerSequence + (nInnerCnt - 2))->X == (pInnerSequence + (nInnerCnt - 1))->X) -// && ((pInnerSequence + (nInnerCnt - 2))->Y == (pInnerSequence + (nInnerCnt - 1))->Y) -// && drawing::PolygonFlags_CONTROL != *(pInnerFlags + (nInnerCnt - 2))) -// { -// // remove last point from array -// pOuterSequence->realloc(nInnerCnt - 1); -// pOuterFlags->realloc(nInnerCnt - 1); -// -// // get new pointers -// pInnerSequence = pOuterSequence->getArray(); -// pInnerFlags = pOuterFlags->getArray(); -// nInnerCnt = pOuterSequence->getLength(); -// } -// -// // now evtl. correct the last curve flags -// if(nInnerCnt >= 4) -// { -// if( pInnerSequence->X == (pInnerSequence + (nInnerCnt - 1))->X -// && pInnerSequence->Y == (pInnerSequence + (nInnerCnt - 1))->Y -// && drawing::PolygonFlags_CONTROL == *(pInnerFlags + 1) -// && drawing::PolygonFlags_CONTROL == *(pInnerFlags + (nInnerCnt - 2))) -// { -// awt::Point aPrev = *(pInnerSequence + (nInnerCnt - 2)); -// awt::Point aCurr = *pInnerSequence; -// awt::Point aNext = *(pInnerSequence + 1); -// ::basegfx::B2DVector aVec1(aPrev.X - aCurr.X, aPrev.Y - aCurr.Y); -// ::basegfx::B2DVector aVec2(aNext.X - aCurr.X, aNext.Y - aCurr.Y); -// bool bSameLength(false); -// bool bSameDirection(false); -// -// // get vector values -// Imp_CalcVectorValues(aVec1, aVec2, bSameLength, bSameDirection); -// -// // set correct flag value -// if(bSameDirection) -// { -// if(bSameLength) -// { -// // set to PolygonFlags_SYMMETRIC -// *pInnerFlags = drawing::PolygonFlags_SYMMETRIC; -// *(pInnerFlags + (nInnerCnt - 1)) = drawing::PolygonFlags_SYMMETRIC; -// } -// else -// { -// // set to PolygonFlags_SMOOTH -// *pInnerFlags = drawing::PolygonFlags_SMOOTH; -// *(pInnerFlags + (nInnerCnt - 1)) = drawing::PolygonFlags_SMOOTH; -// } -// } -// else -// { -// // set to PolygonFlags_NORMAL -// *pInnerFlags = drawing::PolygonFlags_NORMAL; -// *(pInnerFlags + (nInnerCnt - 1)) = drawing::PolygonFlags_NORMAL; -// } -// } -// } -// -// // switch to next Polygon -// pOuterSequence++; -// pOuterFlags++; -// } -// } -// } -//} - // eof diff --git a/xmloff/source/draw/ximp3dobject.cxx b/xmloff/source/draw/ximp3dobject.cxx index 1d673cffec6c..cbba3ce7814a 100644 --- a/xmloff/source/draw/ximp3dobject.cxx +++ b/xmloff/source/draw/ximp3dobject.cxx @@ -475,59 +475,6 @@ void SdXML3DPolygonBasedShapeContext::StartElement(const uno::Reference< xml::sa { OSL_ENSURE(false, "Error on importing svg:d for 3D PolyPolygon (!)"); } - - // TTTT - //SdXMLImExViewBox aViewBox(maViewBox, GetImport().GetMM100UnitConverter()); - //awt::Point aMinPoint(aViewBox.GetX(), aViewBox.GetY()); - //awt::Size aMaxSize(aViewBox.GetWidth(), aViewBox.GetHeight()); - //SdXMLImExSvgDElement aPoints(maPoints, aViewBox, - // aMinPoint, aMaxSize, GetImport().GetMM100UnitConverter()); - // - //// convert to double sequences - //drawing::PointSequenceSequence& xPoSeSe = - // (drawing::PointSequenceSequence&)aPoints.GetPointSequenceSequence(); - //sal_Int32 nOuterSequenceCount = xPoSeSe.getLength(); - //drawing::PointSequence* pInnerSequence = xPoSeSe.getArray(); - // - //drawing::PolyPolygonShape3D xPolyPolygon3D; - //xPolyPolygon3D.SequenceX.realloc(nOuterSequenceCount); - //xPolyPolygon3D.SequenceY.realloc(nOuterSequenceCount); - //xPolyPolygon3D.SequenceZ.realloc(nOuterSequenceCount); - //drawing::DoubleSequence* pOuterSequenceX = xPolyPolygon3D.SequenceX.getArray(); - //drawing::DoubleSequence* pOuterSequenceY = xPolyPolygon3D.SequenceY.getArray(); - //drawing::DoubleSequence* pOuterSequenceZ = xPolyPolygon3D.SequenceZ.getArray(); - // - //for(sal_Int32 a(0L); a < nOuterSequenceCount; a++) - //{ - // sal_Int32 nInnerSequenceCount(pInnerSequence->getLength()); - // awt::Point* pArray = pInnerSequence->getArray(); - // - // pOuterSequenceX->realloc(nInnerSequenceCount); - // pOuterSequenceY->realloc(nInnerSequenceCount); - // pOuterSequenceZ->realloc(nInnerSequenceCount); - // double* pInnerSequenceX = pOuterSequenceX->getArray(); - // double* pInnerSequenceY = pOuterSequenceY->getArray(); - // double* pInnerSequenceZ = pOuterSequenceZ->getArray(); - // - // for(sal_Int32 b(0L); b < nInnerSequenceCount; b++) - // { - // *pInnerSequenceX++ = pArray->X; - // *pInnerSequenceY++ = pArray->Y; - // *pInnerSequenceZ++ = 0.0; - // pArray++; - // } - // pInnerSequence++; - // - // pOuterSequenceX++; - // pOuterSequenceY++; - // pOuterSequenceZ++; - //} - // - //// set poly - //uno::Any aAny; - //aAny <<= xPolyPolygon3D; - //xPropSet->setPropertyValue( - // OUString(RTL_CONSTASCII_USTRINGPARAM("D3DPolyPolygon3D")), aAny); } // call parent diff --git a/xmloff/source/draw/ximpshap.cxx b/xmloff/source/draw/ximpshap.cxx index 30b45bf702ac..c9591f777a61 100644 --- a/xmloff/source/draw/ximpshap.cxx +++ b/xmloff/source/draw/ximpshap.cxx @@ -1378,15 +1378,6 @@ void SdXMLPolygonShapeContext::StartElement(const uno::Reference< xml::sax::XAtt xPropSet->setPropertyValue(OUString(RTL_CONSTASCII_USTRINGPARAM("Geometry")), aAny); } } - - //awt::Point aPosition(aViewBox.GetX(), aViewBox.GetY()); - //SdXMLImExPointsElement aPoints(maPoints, aViewBox, - // aPosition, aSize, GetImport().GetMM100UnitConverter(), mbClosed); - // - //uno::Any aAny; - //aAny <<= aPoints.GetPointSequenceSequence(); - //xPropSet->setPropertyValue( - // OUString(RTL_CONSTASCII_USTRINGPARAM("Geometry")), aAny); } } @@ -1552,89 +1543,6 @@ void SdXMLPathShapeContext::StartElement(const uno::Reference< xml::sax::XAttrib } } } - - // TTTT - //// prepare some of the parameters - //SdXMLImExViewBox aViewBox(maViewBox, GetImport().GetMM100UnitConverter()); - //awt::Size aSize(aViewBox.GetWidth(), aViewBox.GetHeight()); - //awt::Point aPosition(aViewBox.GetX(), aViewBox.GetY()); - //if (maSize.Width != 0 && maSize.Height !=0) - //{ - // aSize = maSize; - //} - // - //SdXMLImExSvgDElement aPoints(maD, aViewBox, - // aPosition, aSize, GetImport().GetMM100UnitConverter()); - // - //const char* pService; - //// now create shape - //if(aPoints.IsCurve()) - //{ - // if(aPoints.IsClosed()) - // { - // pService = "com.sun.star.drawing.ClosedBezierShape"; - // } - // else - // { - // pService = "com.sun.star.drawing.OpenBezierShape"; - // } - //} - //else - //{ - // if(aPoints.IsClosed()) - // { - // pService = "com.sun.star.drawing.PolyPolygonShape"; - // } - // else - // { - // pService = "com.sun.star.drawing.PolyLineShape"; - // } - //} - // - //// Add, set Style and properties from base shape - //AddShape(pService); - // - //// #89344# test for mxShape.is() and not for mxShapes.is() to support - //// shape import helper classes WITHOUT XShapes (member mxShapes). This - //// is used by the writer. - //if( mxShape.is() ) - //{ - // SetStyle(); - // SetLayer(); - // - // // set local parameters on shape - // uno::Reference< beans::XPropertySet > xPropSet(mxShape, uno::UNO_QUERY); - // if(xPropSet.is()) - // { - // uno::Any aAny; - // - // // set svg:d - // if(maD.getLength()) - // { - // if(aPoints.IsCurve()) - // { - // drawing::PolyPolygonBezierCoords aSourcePolyPolygon( - // aPoints.GetPointSequenceSequence(), - // aPoints.GetFlagSequenceSequence()); - // - // aAny <<= aSourcePolyPolygon; - // xPropSet->setPropertyValue( - // OUString(RTL_CONSTASCII_USTRINGPARAM("Geometry")), aAny); - // } - // else - // { - // aAny <<= aPoints.GetPointSequenceSequence(); - // xPropSet->setPropertyValue( - // OUString(RTL_CONSTASCII_USTRINGPARAM("Geometry")), aAny); - // } - // } - // } - // - // // set pos, size, shear and rotate - // SetTransformation(); - // - // SdXMLShapeContext::StartElement(xAttrList); - //} } } @@ -2019,34 +1927,6 @@ void SdXMLConnectorShapeContext::processAttribute( sal_uInt16 nPrefix, const ::r } } } - - // TTTT - //SdXMLImExViewBox aViewBox( 0.0, 0.0, 1.0, 1.0 ); - //awt::Point aPoint( 0, 0 ); - //awt::Size aSize( 1, 1 ); - // - //SdXMLImExSvgDElement aPoints( rValue, aViewBox, - // aPoint, aSize, GetImport().GetMM100UnitConverter() ); - // - //if ( aPoints.IsCurve() ) - //{ - // drawing::PolyPolygonBezierCoords aSourcePolyPolygon( - // aPoints.GetPointSequenceSequence(), - // aPoints.GetFlagSequenceSequence()); - // maPath <<= aSourcePolyPolygon; - //} - //else - //{ - // const drawing::PointSequenceSequence& rOuterSeq = aPoints.GetPointSequenceSequence(); - // drawing::FlagSequenceSequence aFlagSeqSeq( rOuterSeq.getLength() ); - // for ( int a = 0; a < rOuterSeq.getLength(); a++ ) - // aFlagSeqSeq[ a ] = drawing::FlagSequence( rOuterSeq[ a ].getLength() ); - // - // drawing::PolyPolygonBezierCoords aSourcePolyPolygon( - // aPoints.GetPointSequenceSequence(), - // aFlagSeqSeq ); - // maPath <<= aSourcePolyPolygon; - //} } } } diff --git a/xmloff/source/style/MarkerStyle.cxx b/xmloff/source/style/MarkerStyle.cxx index e7352aa9a04a..89f9ce0fd22a 100644 --- a/xmloff/source/style/MarkerStyle.cxx +++ b/xmloff/source/style/MarkerStyle.cxx @@ -111,7 +111,7 @@ sal_Bool XMLMarkerStyleImport::importXML( { if(aPolyPolygon.count()) { - // TTTT: ViewBox probably not used, but stay with former processing inside of + // ViewBox probably not used, but stay with former processing inside of // SdXMLImExSvgDElement const basegfx::B2DRange aSourceRange( pViewBox->GetX(), pViewBox->GetY(), @@ -138,44 +138,6 @@ sal_Bool XMLMarkerStyleImport::importXML( } } - // TTTT - //SdXMLImExSvgDElement aPoints(strPathData, *pViewBox, awt::Point( 0, 0 ), - // awt::Size( pViewBox->GetWidth(), pViewBox->GetHeight() ), - // rUnitConverter ); - // - //if(aPoints.IsCurve()) - //{ - // drawing::PolyPolygonBezierCoords aSourcePolyPolygon( - // aPoints.GetPointSequenceSequence(), - // aPoints.GetFlagSequenceSequence()); - // rValue <<= aSourcePolyPolygon; - //} - //else - //{ - // drawing::PolyPolygonBezierCoords aSourcePolyPolygon; - // aSourcePolyPolygon.Coordinates = aPoints.GetPointSequenceSequence(); - // aSourcePolyPolygon.Flags.realloc(aSourcePolyPolygon.Coordinates.getLength()); - // - // // Zeiger auf innere sequences holen - // const drawing::PointSequence* pInnerSequence = aSourcePolyPolygon.Coordinates.getConstArray(); - // drawing::FlagSequence* pInnerSequenceFlags = aSourcePolyPolygon.Flags.getArray(); - // - // for(sal_Int32 a(0); a < aSourcePolyPolygon.Coordinates.getLength(); a++) - // { - // pInnerSequenceFlags->realloc(pInnerSequence->getLength()); - // drawing::PolygonFlags* pPolyFlags = pInnerSequenceFlags->getArray(); - // - // for(sal_Int32 b(0); b < pInnerSequence->getLength(); b++) - // *pPolyFlags++ = drawing::PolygonFlags_NORMAL; - // - // // next run - // pInnerSequence++; - // pInnerSequenceFlags++; - // } - // - // rValue <<= aSourcePolyPolygon; - //} - if( aDisplayName.getLength() ) { rImport.AddStyleDisplayName( XML_STYLE_FAMILY_SD_MARKER_ID, rStrName, @@ -238,54 +200,6 @@ sal_Bool XMLMarkerStyleExport::exportXML( ///////////////// // Viewbox (viewBox="0 0 1500 1000") - // TTTT - //sal_Int32 nMinX(0x7fffffff); - //sal_Int32 nMaxX(0x80000000); - //sal_Int32 nMinY(0x7fffffff); - //sal_Int32 nMaxY(0x80000000); - //sal_Int32 nOuterCnt(aBezier.Coordinates.getLength()); - //drawing::PointSequence* pOuterSequence = aBezier.Coordinates.getArray(); - //sal_Int32 a, b; - //sal_Bool bClosed(sal_False); - // - //for (a = 0; a < nOuterCnt; a++) - //{ - // drawing::PointSequence* pSequence = pOuterSequence++; - // const awt::Point *pPoints = pSequence->getConstArray(); - // sal_Int32 nPointCount(pSequence->getLength()); - // - // if(nPointCount) - // { - // const awt::Point aStart = pPoints[0]; - // const awt::Point aEnd = pPoints[nPointCount - 1]; - // - // if(aStart.X == aEnd.X && aStart.Y == aEnd.Y) - // { - // bClosed = sal_True; - // } - // } - // - // for (b = 0; b < nPointCount; b++) - // { - // const awt::Point aPoint = pPoints[b]; - // - // if( aPoint.X < nMinX ) - // nMinX = aPoint.X; - // - // if( aPoint.X > nMaxX ) - // nMaxX = aPoint.X; - // - // if( aPoint.Y < nMinY ) - // nMinY = aPoint.Y; - // - // if( aPoint.Y > nMaxY ) - // nMaxY = aPoint.Y; - // } - //} - // - //sal_Int32 nDifX(nMaxX - nMinX); - //sal_Int32 nDifY(nMaxY - nMinY); - SdXMLImExViewBox aViewBox( aPolyPolygonRange.getMinX(), aPolyPolygonRange.getMinY(), @@ -299,23 +213,7 @@ sal_Bool XMLMarkerStyleExport::exportXML( basegfx::tools::exportToSvgD( aPolyPolygon, true, // bUseRelativeCoordinates - false)); // bDetectQuadraticBeziers TTTT: not used in old, but maybe activated now - - // TTTT - //pOuterSequence = aBezier.Coordinates.getArray(); - //drawing::FlagSequence* pOuterFlags = aBezier.Flags.getArray(); - //SdXMLImExSvgDElement aSvgDElement(aViewBox); - // - //for (a = 0; a < nOuterCnt; a++) - //{ - // drawing::PointSequence* pSequence = pOuterSequence++; - // drawing::FlagSequence* pFlags = pOuterFlags++; - // - // aSvgDElement.AddPolygon(pSequence, pFlags, - // awt::Point( 0, 0 ), - // awt::Size( aViewBox.GetWidth(), aViewBox.GetHeight() ), - // bClosed); - //} + false)); // bDetectQuadraticBeziers: not used in old, but maybe activated now // write point array rExport.AddAttribute(XML_NAMESPACE_SVG, XML_D, aPolygonString); diff --git a/xmloff/source/text/txtparae.cxx b/xmloff/source/text/txtparae.cxx index 6a23dd514f70..e2f807c2049b 100644 --- a/xmloff/source/text/txtparae.cxx +++ b/xmloff/source/text/txtparae.cxx @@ -2866,8 +2866,8 @@ void XMLTextParagraphExport::_exportTextFrame( } void XMLTextParagraphExport::exportContour( - const Reference < XPropertySet > & rPropSet, - const Reference < XPropertySetInfo > & rPropSetInfo ) + const Reference < XPropertySet > & rPropSet, + const Reference < XPropertySetInfo > & rPropSetInfo ) { if( !rPropSetInfo->hasPropertyByName( sContourPolyPolygon ) ) { @@ -2887,27 +2887,6 @@ void XMLTextParagraphExport::exportContour( } const basegfx::B2DRange aPolyPolygonRange(aPolyPolygon.getB2DRange()); - -// TTTT: -// awt::Point aPoint( 0, 0 ); -// awt::Size aSize( 0, 0 ); -// sal_Int32 nPolygons = aSourcePolyPolygon.getLength(); -// const PointSequence *pPolygons = aSourcePolyPolygon.getConstArray(); -// while( nPolygons-- ) -// { -// sal_Int32 nPoints = pPolygons->getLength(); -// const awt::Point *pPoints = pPolygons->getConstArray(); -// while( nPoints-- ) -// { -// if( aSize.Width < pPoints->X ) -// aSize.Width = pPoints->X; -// if( aSize.Height < pPoints->Y ) -// aSize.Height = pPoints->Y; -// pPoints++; -// } -// pPolygons++; -// } - bool bPixel(false); if( rPropSetInfo->hasPropertyByName( sIsPixelContour ) ) @@ -2953,10 +2932,6 @@ void XMLTextParagraphExport::exportContour( basegfx::tools::exportToSvgPoints( aPolyPolygon.getB2DPolygon(0))); - // TTTT - //PointSequence* pSequence = (PointSequence*)aSourcePolyPolygon.getConstArray(); - //SdXMLImExPointsElement aPoints( pSequence, aViewBox, aPolyPolygonRange.getMinimum(), aPolyPolygonRange.getRange(), true); - // write point array GetExport().AddAttribute(XML_NAMESPACE_DRAW, XML_POINTS, aPointString); eElem = XML_CONTOUR_POLYGON; @@ -2968,36 +2943,11 @@ void XMLTextParagraphExport::exportContour( basegfx::tools::exportToSvgD( aPolyPolygon, true, // bUseRelativeCoordinates - false)); // bDetectQuadraticBeziers TTTT: not used in old, but maybe activated now + false)); // bDetectQuadraticBeziers: not used in old, but maybe activated now // write point array GetExport().AddAttribute( XML_NAMESPACE_SVG, XML_D, aPolygonString); eElem = XML_CONTOUR_PATH; - - // TTTT - ///*const*/ PointSequence* pOuterSequence = - // (PointSequence*)aSourcePolyPolygon.getConstArray(); - //if(pOuterSequence) - //{ - // // prepare svx:d element export - // SdXMLImExSvgDElement aSvgDElement( aViewBox ); - // - // for(sal_Int32 a(0L); a < nPolygonCount; a++) - // { - // /*const*/ PointSequence* pSequence = pOuterSequence++; - // if(pSequence) - // { - // awt::Point aPoint(aPolyPolygonRange.getMinX(), aPolyPolygonRange.getMinY()); - // awt::Size aSize(aPolyPolygonRange.getWidth(), aPolyPolygonRange.getHeight()); - // aSvgDElement.AddPolygon(pSequence, 0L, aPoint, aSize, sal_True ); - // } - // } - // - // // write point array - // GetExport().AddAttribute( XML_NAMESPACE_SVG, XML_D, - // aSvgDElement.GetExportString()); - // eElem = XML_CONTOUR_PATH; - //} } if( rPropSetInfo->hasPropertyByName( sIsAutomaticContour ) ) -- cgit