summaryrefslogtreecommitdiff
path: root/svx/source/engine3d/obj3d.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/engine3d/obj3d.cxx')
-rw-r--r--svx/source/engine3d/obj3d.cxx46
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