void ParticleTrailGenerator::handleParticleGenerated(ParticleEventDetails* const details)
{
    ParticleTrailGenerator::TrailSection newSection;
    newSection.pos = details->getParticlePosition();
    newSection.time = details->getTimeStamp();
    newSection.ID = getNextTSID();
    ParticleTrailGenerator::ParticleTrail trail;
    trail.push_back(newSection);
    _mTrails[details->getParticleIndex()] = trail;
    internalGenerated(details);
    internalTrailSectGenerated(newSection, details->getParticleVelocity());
}
    void
ParticleTrailGenerator::TrailParticleSystemListener::particleGenerated(const ParticleEventUnrecPtr e)
{
    ParticleTrailGenerator::TrailSection newSection;
    newSection.pos = e->getParticlePosition();
    newSection.time = e->getTimeStamp();
    newSection.ID = _mTrailGenerator->getNextTSID();
    ParticleTrailGenerator::ParticleTrail trail;
    trail.push_back(newSection);
    _mTrailGenerator->_mTrails[e->getParticleIndex()] = trail;
    _mTrailGenerator->internalGenerated(e);
    _mTrailGenerator->internalTrailSectGenerated(newSection, e->getParticleVelocity());
}