added call to copy constructor for virtual base classes in copy constructor of derived classes, removed these for abstract classes

This commit is contained in:
Laurens Voerman
2016-08-29 10:41:40 +02:00
parent 2bdf56cb4b
commit 628f8fd9dc
31 changed files with 88 additions and 42 deletions

View File

@@ -24,7 +24,8 @@ Action::Action()
_loop = 1;
_state = Stop;
}
Action::Action(const Action&rhs,const osg::CopyOp&)
Action::Action(const Action&rhs,const osg::CopyOp& copyop):
osg::Object(rhs, copyop)
{
_numberFrame = rhs._numberFrame;
_fps = rhs._fps;

View File

@@ -63,8 +63,6 @@ void AnimationManagerBase::operator()(osg::Node* node, osg::NodeVisitor* nv)
AnimationManagerBase::AnimationManagerBase(const AnimationManagerBase& b, const osg::CopyOp& copyop) :
osg::Object(b,copyop),
osg::Callback(b,copyop),
osg::NodeCallback(b,copyop) // TODO check this
{
const AnimationList& animationList = b.getAnimationList();

View File

@@ -22,8 +22,10 @@ BasicAnimationManager::BasicAnimationManager()
{
}
BasicAnimationManager::BasicAnimationManager(const AnimationManagerBase& b, const osg::CopyOp& copyop)
: AnimationManagerBase(b,copyop)
BasicAnimationManager::BasicAnimationManager(const AnimationManagerBase& b, const osg::CopyOp& copyop):
osg::Object(b, copyop),
osg::Callback(b, copyop),
AnimationManagerBase(b,copyop)
, _lastUpdate(0.0)
{
}

View File

@@ -198,6 +198,7 @@ void MorphGeometry::transformSoftwareMethod()
UpdateMorph::UpdateMorph(const UpdateMorph& apc,const osg::CopyOp& copyop) :
osg::Object(apc, copyop),
osg::Callback(apc, copyop),
AnimationUpdateCallback<osg::NodeCallback>(apc, copyop)
{
}

View File

@@ -27,9 +27,12 @@ TimelineAnimationManager::TimelineAnimationManager(const AnimationManagerBase& m
_timeline = new Timeline;
}
TimelineAnimationManager::TimelineAnimationManager(const TimelineAnimationManager& nc,const osg::CopyOp& co) : AnimationManagerBase(nc, co)
TimelineAnimationManager::TimelineAnimationManager(const TimelineAnimationManager& nc,const osg::CopyOp& co):
osg::Object(nc,co),
osg::Callback(nc,co),
AnimationManagerBase(nc, co)
{
_timeline = new Timeline(*nc.getTimeline());
_timeline = new Timeline(*nc.getTimeline(), co);
}
void TimelineAnimationManager::update(double time)

View File

@@ -23,7 +23,7 @@ UpdateBone::UpdateBone(const std::string& name) : UpdateMatrixTransform(name)
{
}
UpdateBone::UpdateBone(const UpdateBone& apc,const osg::CopyOp& copyop) : osg::Object(apc,copyop), UpdateMatrixTransform(apc, copyop)
UpdateBone::UpdateBone(const UpdateBone& apc,const osg::CopyOp& copyop) : osg::Object(apc,copyop), osg::Callback(apc, copyop), UpdateMatrixTransform(apc, copyop)
{
}

View File

@@ -19,6 +19,7 @@ using namespace osgAnimation;
UpdateMaterial::UpdateMaterial(const UpdateMaterial& apc,const osg::CopyOp& copyop)
: osg::Object(apc, copyop),
osg::Callback(apc,copyop),
AnimationUpdateCallback<osg::StateAttributeCallback>(apc, copyop)
{
_diffuse = new osgAnimation::Vec4Target(apc._diffuse->getValue());