| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| #ifndef _XEXPTRANSFORM_HXX |
| #define _XEXPTRANSFORM_HXX |
| |
| #include <rtl/ustring.hxx> |
| #include <com/sun/star/drawing/PointSequenceSequence.hpp> |
| #include <com/sun/star/drawing/PointSequence.hpp> |
| #include <com/sun/star/awt/Size.hpp> |
| #include <com/sun/star/drawing/FlagSequenceSequence.hpp> |
| #include <com/sun/star/drawing/FlagSequence.hpp> |
| #include <com/sun/star/drawing/HomogenMatrix.hpp> |
| #include <tools/mapunit.hxx> |
| |
| #include <vector> |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| // predeclarations |
| |
| struct ImpSdXMLExpTransObj2DBase; |
| struct ImpSdXMLExpTransObj3DBase; |
| class SvXMLUnitConverter; |
| |
| namespace basegfx |
| { |
| class B2DTuple; |
| class B2DHomMatrix; |
| class B3DTuple; |
| class B3DHomMatrix; |
| } // end of namespace basegfx |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| |
| typedef ::std::vector< ImpSdXMLExpTransObj2DBase* > ImpSdXMLExpTransObj2DBaseList; |
| typedef ::std::vector< ImpSdXMLExpTransObj3DBase* > ImpSdXMLExpTransObj3DBaseList; |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| |
| class SdXMLImExTransform2D |
| { |
| ImpSdXMLExpTransObj2DBaseList maList; |
| rtl::OUString msString; |
| |
| void EmptyList(); |
| |
| public: |
| SdXMLImExTransform2D() {} |
| SdXMLImExTransform2D(const rtl::OUString& rNew, const SvXMLUnitConverter& rConv); |
| ~SdXMLImExTransform2D() { EmptyList(); } |
| |
| void AddRotate(double fNew); |
| void AddScale(const ::basegfx::B2DTuple& rNew); |
| void AddTranslate(const ::basegfx::B2DTuple& rNew); |
| void AddSkewX(double fNew); |
| void AddSkewY(double fNew); |
| void AddMatrix(const ::basegfx::B2DHomMatrix& rNew); |
| |
| bool NeedsAction() const { return !maList.empty(); } |
| void GetFullTransform(::basegfx::B2DHomMatrix& rFullTrans); |
| const rtl::OUString& GetExportString(const SvXMLUnitConverter& rConv); |
| void SetString(const rtl::OUString& rNew, const SvXMLUnitConverter& rConv); |
| }; |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| |
| class SdXMLImExTransform3D |
| { |
| ImpSdXMLExpTransObj3DBaseList maList; |
| rtl::OUString msString; |
| |
| void EmptyList(); |
| |
| public: |
| SdXMLImExTransform3D() {} |
| SdXMLImExTransform3D(const rtl::OUString& rNew, const SvXMLUnitConverter& rConv); |
| ~SdXMLImExTransform3D() { EmptyList(); } |
| |
| void AddRotateX(double fNew); |
| void AddRotateY(double fNew); |
| void AddRotateZ(double fNew); |
| void AddScale(const ::basegfx::B3DTuple& rNew); |
| void AddTranslate(const ::basegfx::B3DTuple& rNew); |
| void AddMatrix(const ::basegfx::B3DHomMatrix& rNew); |
| |
| void AddHomogenMatrix(const com::sun::star::drawing::HomogenMatrix& xHomMat); |
| bool NeedsAction() const { return !maList.empty(); } |
| void GetFullTransform(::basegfx::B3DHomMatrix& rFullTrans); |
| bool GetFullHomogenTransform(com::sun::star::drawing::HomogenMatrix& xHomMat); |
| const rtl::OUString& GetExportString(const SvXMLUnitConverter& rConv); |
| void SetString(const rtl::OUString& rNew, const SvXMLUnitConverter& rConv); |
| }; |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| |
| class SdXMLImExViewBox |
| { |
| rtl::OUString msString; |
| double mfX; |
| double mfY; |
| double mfW; |
| double mfH; |
| |
| public: |
| SdXMLImExViewBox(double fX = 0.0, double fY = 0.0, double fW = 1000.0, double fH = 1000.0); |
| SdXMLImExViewBox(const rtl::OUString& rNew, const SvXMLUnitConverter& rConv); |
| |
| double GetX() const { return mfX; } |
| double GetY() const { return mfY; } |
| double GetWidth() const { return mfW; } |
| double GetHeight() const { return mfH; } |
| const rtl::OUString& GetExportString(); |
| }; |
| |
| #endif // _XEXPTRANSFORM_HXX |
| // eof |