From Morten Haukness, "When cloning effects osg crashes because the copy constructur tries to run av pure virtual method (setUpEmitterAndProgram). The right thing to do when cloning an effect is to run the inherited version og buildEffect and setUpEmitterAndProgram.

"
This commit is contained in:
Robert Osfield
2008-06-26 18:06:24 +00:00
parent 44c125a801
commit f523515aed
6 changed files with 5 additions and 1 deletions

View File

@@ -57,6 +57,7 @@ ExplosionDebrisEffect::ExplosionDebrisEffect(const osg::Vec3& position, float sc
ExplosionDebrisEffect::ExplosionDebrisEffect(const ExplosionDebrisEffect& copy, const osg::CopyOp& copyop):
ParticleEffect(copy,copyop)
{
if (_automaticSetup) buildEffect();
}
void ExplosionDebrisEffect::setDefaults()

View File

@@ -57,6 +57,7 @@ ExplosionEffect::ExplosionEffect(const osg::Vec3& position, float scale, float i
ExplosionEffect::ExplosionEffect(const ExplosionEffect& copy, const osg::CopyOp& copyop):
ParticleEffect(copy,copyop)
{
if (_automaticSetup) buildEffect();
}
void ExplosionEffect::setDefaults()

View File

@@ -58,6 +58,7 @@ FireEffect::FireEffect(const osg::Vec3& position, float scale, float intensity)
FireEffect::FireEffect(const FireEffect& copy, const osg::CopyOp& copyop):
ParticleEffect(copy,copyop)
{
if (_automaticSetup) buildEffect();
}
void FireEffect::setDefaults()

View File

@@ -30,7 +30,6 @@ ParticleEffect::ParticleEffect(const ParticleEffect& copy, const osg::CopyOp& co
_emitterDuration(copy._emitterDuration),
_wind(copy._wind)
{
if (_automaticSetup) buildEffect();
}
void ParticleEffect::setUseLocalParticleSystem(bool local)

View File

@@ -54,6 +54,7 @@ SmokeEffect::SmokeEffect(const osg::Vec3& position, float scale, float intensity
SmokeEffect::SmokeEffect(const SmokeEffect& copy, const osg::CopyOp& copyop):
ParticleEffect(copy,copyop)
{
if (_automaticSetup) buildEffect();
}
void SmokeEffect::setDefaults()

View File

@@ -55,6 +55,7 @@ SmokeTrailEffect::SmokeTrailEffect(const osg::Vec3& position, float scale, float
SmokeTrailEffect::SmokeTrailEffect(const SmokeTrailEffect& copy, const osg::CopyOp& copyop):
ParticleEffect(copy,copyop)
{
if (_automaticSetup) buildEffect();
}
void SmokeTrailEffect::setDefaults()