1*3334a7e6SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*3334a7e6SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*3334a7e6SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*3334a7e6SAndrew Rist * distributed with this work for additional information 6*3334a7e6SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*3334a7e6SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*3334a7e6SAndrew Rist * "License"); you may not use this file except in compliance 9*3334a7e6SAndrew Rist * with the License. You may obtain a copy of the License at 10*3334a7e6SAndrew Rist * 11*3334a7e6SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*3334a7e6SAndrew Rist * 13*3334a7e6SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*3334a7e6SAndrew Rist * software distributed under the License is distributed on an 15*3334a7e6SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*3334a7e6SAndrew Rist * KIND, either express or implied. See the License for the 17*3334a7e6SAndrew Rist * specific language governing permissions and limitations 18*3334a7e6SAndrew Rist * under the License. 19*3334a7e6SAndrew Rist * 20*3334a7e6SAndrew Rist *************************************************************/ 21*3334a7e6SAndrew Rist 22*3334a7e6SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef _E3D_UNDO_HXX 25cdf0e10cSrcweir #define _E3D_UNDO_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <svx/svdundo.hxx> 28cdf0e10cSrcweir class E3DObject; 29cdf0e10cSrcweir #include <svx/scene3d.hxx> 30cdf0e10cSrcweir #include "svx/svxdllapi.h" 31cdf0e10cSrcweir 32cdf0e10cSrcweir class E3dView; 33cdf0e10cSrcweir 34cdf0e10cSrcweir /************************************************************************\ 35cdf0e10cSrcweir |* 36cdf0e10cSrcweir |* Basisklasse fuer alle 3D-Undo-Aktionen. 37cdf0e10cSrcweir |* 38cdf0e10cSrcweir \************************************************************************/ 39cdf0e10cSrcweir class E3dUndoAction : public SdrUndoAction 40cdf0e10cSrcweir { 41cdf0e10cSrcweir 42cdf0e10cSrcweir protected : 43cdf0e10cSrcweir E3dObject *pMy3DObj; 44cdf0e10cSrcweir 45cdf0e10cSrcweir public: 46cdf0e10cSrcweir TYPEINFO(); E3dUndoAction(SdrModel * pModel,E3dObject * p3DObj)47cdf0e10cSrcweir E3dUndoAction (SdrModel *pModel, 48cdf0e10cSrcweir E3dObject *p3DObj) : 49cdf0e10cSrcweir SdrUndoAction (*pModel), 50cdf0e10cSrcweir pMy3DObj (p3DObj) 51cdf0e10cSrcweir { 52cdf0e10cSrcweir } 53cdf0e10cSrcweir 54cdf0e10cSrcweir virtual ~E3dUndoAction (); 55cdf0e10cSrcweir 56cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget&) const; 57cdf0e10cSrcweir }; 58cdf0e10cSrcweir 59cdf0e10cSrcweir /************************************************************************\ 60cdf0e10cSrcweir |* 61cdf0e10cSrcweir |* Undo fuer 3D-Rotation ueber die Rotationsmatrizen (ob das wohl klappt ?) 62cdf0e10cSrcweir |* 63cdf0e10cSrcweir \************************************************************************/ 64cdf0e10cSrcweir class E3dRotateUndoAction : public E3dUndoAction 65cdf0e10cSrcweir { 66cdf0e10cSrcweir basegfx::B3DHomMatrix aMyOldRotation; 67cdf0e10cSrcweir basegfx::B3DHomMatrix aMyNewRotation; 68cdf0e10cSrcweir 69cdf0e10cSrcweir public: 70cdf0e10cSrcweir TYPEINFO(); E3dRotateUndoAction(SdrModel * pModel,E3dObject * p3DObj,const basegfx::B3DHomMatrix & aOldRotation,const basegfx::B3DHomMatrix & aNewRotation)71cdf0e10cSrcweir E3dRotateUndoAction (SdrModel *pModel, 72cdf0e10cSrcweir E3dObject *p3DObj, 73cdf0e10cSrcweir const basegfx::B3DHomMatrix &aOldRotation, 74cdf0e10cSrcweir const basegfx::B3DHomMatrix &aNewRotation) : 75cdf0e10cSrcweir E3dUndoAction (pModel, p3DObj), 76cdf0e10cSrcweir aMyOldRotation (aOldRotation), 77cdf0e10cSrcweir aMyNewRotation (aNewRotation) 78cdf0e10cSrcweir { 79cdf0e10cSrcweir } 80cdf0e10cSrcweir 81cdf0e10cSrcweir virtual ~E3dRotateUndoAction (); 82cdf0e10cSrcweir 83cdf0e10cSrcweir virtual void Undo(); 84cdf0e10cSrcweir virtual void Redo(); 85cdf0e10cSrcweir 86cdf0e10cSrcweir }; 87cdf0e10cSrcweir 88cdf0e10cSrcweir /************************************************************************\ 89cdf0e10cSrcweir |* 90cdf0e10cSrcweir |* Undo fuer 3D-Attribute (Implementiert ueber Set3DAttributes()) 91cdf0e10cSrcweir |* 92cdf0e10cSrcweir \************************************************************************/ 93cdf0e10cSrcweir class SVX_DLLPUBLIC E3dAttributesUndoAction : public SdrUndoAction 94cdf0e10cSrcweir { 95cdf0e10cSrcweir using SdrUndoAction::Repeat; 96cdf0e10cSrcweir 97cdf0e10cSrcweir SdrObject* pObject; 98cdf0e10cSrcweir E3dView* pView; 99cdf0e10cSrcweir sal_Bool bUseSubObjects; 100cdf0e10cSrcweir 101cdf0e10cSrcweir const SfxItemSet aNewSet; 102cdf0e10cSrcweir const SfxItemSet aOldSet; 103cdf0e10cSrcweir 104cdf0e10cSrcweir public: 105cdf0e10cSrcweir TYPEINFO(); 106cdf0e10cSrcweir E3dAttributesUndoAction( SdrModel &rModel, E3dView* pView, 107cdf0e10cSrcweir E3dObject* pInObject, 108cdf0e10cSrcweir const SfxItemSet& rNewSet, 109cdf0e10cSrcweir const SfxItemSet& rOldSet, 110cdf0e10cSrcweir sal_Bool bUseSubObj); 111cdf0e10cSrcweir 112cdf0e10cSrcweir virtual ~E3dAttributesUndoAction(); 113cdf0e10cSrcweir 114cdf0e10cSrcweir virtual sal_Bool CanRepeat(SfxRepeatTarget& rView) const; 115cdf0e10cSrcweir virtual void Undo(); 116cdf0e10cSrcweir virtual void Redo(); 117cdf0e10cSrcweir virtual void Repeat(); 118cdf0e10cSrcweir }; 119cdf0e10cSrcweir 120cdf0e10cSrcweir #endif // _E3D_CUBE3D_HXX 121