diff options
Diffstat (limited to 'svx/source/engine3d/obj3d.cxx')
-rw-r--r-- | svx/source/engine3d/obj3d.cxx | 46 |
1 files changed, 25 insertions, 21 deletions
diff --git a/svx/source/engine3d/obj3d.cxx b/svx/source/engine3d/obj3d.cxx index 73a0675efdb4..959ecf1f0c49 100644 --- a/svx/source/engine3d/obj3d.cxx +++ b/svx/source/engine3d/obj3d.cxx @@ -81,16 +81,16 @@ using namespace com::sun::star; // List for 3D-Objects - - E3dObjList::E3dObjList() -: SdrObjList(nullptr, nullptr) +: SdrObjList(nullptr) { } -E3dObjList::E3dObjList(const E3dObjList&) -: SdrObjList() +E3dObjList* E3dObjList::CloneSdrObjList(SdrModel* pNewModel) const { + E3dObjList* pObjList = new E3dObjList(); + pObjList->lateInitSdrObjList(*this, pNewModel); + return pObjList; } E3dObjList::~E3dObjList() @@ -169,8 +169,9 @@ sdr::properties::BaseProperties* E3dObject::CreateObjectSpecificProperties() } -E3dObject::E3dObject() -: maSubList(), +E3dObject::E3dObject(SdrModel& rSdrModel) +: SdrAttrObj(rSdrModel), + maSubList(), maLocalBoundVol(), maTransformation(), maFullTransform(), @@ -303,14 +304,7 @@ void E3dObject::SetPage(SdrPage* pNewPage) maSubList.SetPage(pNewPage); } -void E3dObject::SetModel(SdrModel* pNewModel) -{ - SdrAttrObj::SetModel(pNewModel); - maSubList.SetModel(pNewModel); -} - // resize object, used from old 2d interfaces, e.g. in Move/Scale dialog (F4) - void E3dObject::NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact) { // Movement in X, Y in the eye coordinate system @@ -656,9 +650,9 @@ OUString E3dObject::TakeObjNamePlural() const return ImpGetResStr(STR_ObjNamePluralObj3d); } -E3dObject* E3dObject::Clone() const +E3dObject* E3dObject::Clone(SdrModel* pTargetModel) const { - return CloneHelper< E3dObject >(); + return CloneHelper< E3dObject >(pTargetModel); } E3dObject& E3dObject::operator=(const E3dObject& rObj) @@ -736,9 +730,8 @@ sdr::properties::BaseProperties* E3dCompoundObject::CreateObjectSpecificProperti return new sdr::properties::E3dCompoundProperties(*this); } - -E3dCompoundObject::E3dCompoundObject() -: E3dObject(), +E3dCompoundObject::E3dCompoundObject(SdrModel& rSdrModel) +: E3dObject(rSdrModel), aMaterialAmbientColor() { // Set defaults @@ -881,9 +874,20 @@ void E3dCompoundObject::RecalcSnapRect() } } -E3dCompoundObject* E3dCompoundObject::Clone() const +E3dCompoundObject* E3dCompoundObject::Clone(SdrModel* pTargetModel) const { - return CloneHelper< E3dCompoundObject >(); + return CloneHelper< E3dCompoundObject >(pTargetModel); +} + +E3dCompoundObject& E3dCompoundObject::operator=(const E3dCompoundObject& rObj) +{ + if( this == &rObj ) + return *this; + E3dObject::operator=(rObj); + + aMaterialAmbientColor = rObj.aMaterialAmbientColor; + + return *this; } // convert given basegfx::B3DPolyPolygon to screen coor |