Ejemplo n.º 1
0
void PUObserver::updateObserver( PUParticle3D *particle, float deltaTime, bool firstParticle )
{
    if (!_enabled)
        return;

    // Call the _firstParticle() function if the first particle in the update loop is encountered.
    if (firstParticle)
    {
        firstParticleUpdate(particle, deltaTime);
    }

    if (_particleTypeToObserveSet && particle->particleType != _particleTypeToObserve)
        return;

    // Observe
    handleObserve(particle, deltaTime);
}
Ejemplo n.º 2
0
void PUAffector::process( PUParticle3D* particle, float delta, bool firstParticle )
{
    if (firstParticle){
        firstParticleUpdate(particle, delta);
    }

    if (!_excludedEmitters.empty() && particle->parentEmitter){
        // Return if the emitter which emits this particle is part of the vector
        std::string emitterName = particle->parentEmitter->getName();
        auto iter = std::find(_excludedEmitters.begin(), _excludedEmitters.end(), emitterName);
        if (iter != _excludedEmitters.end())
        {
            return;
        }
    }

    updatePUAffector(particle, delta);
}