Ejemplo n.º 1
0
        public override Particle emit(ParticleFactory particleFactory)
        {
            Vector3f tmp = new Vector3f(0.5f - random.NextDouble(), 0.5f - random.NextDouble(), 0.5f - random.NextDouble());
            tmp.stretch(new Vector3f((float)random.NextDouble() * side.x, (float)random.NextDouble() * side.y, (float)random.NextDouble() * side.z));
            tmp.add(position);

            return particleFactory.createParticle(tmp, false, null);
        }
Ejemplo n.º 2
0
        public override Particle emit(ParticleFactory particleFactory)
        {
            Vector3f tmp = new Vector3f(0.5f - random.NextDouble(), 0.5f - random.NextDouble(), 0.5f - random.NextDouble());
            tmp.Normalize();
            tmp.stretch(radius);
            tmp.add(position);

            return particleFactory.createParticle(tmp, false, null);
        }
Ejemplo n.º 3
0
        public Particle createParticle(Vector3f emitterPosition, bool emitterUseDirection, Vector3f emitterDirection)
        {
            Color4f color = new Color4f((maximumColor.a - minimalColor.a) * random.NextDouble() + minimalColor.a,
                                        (maximumColor.r - minimalColor.r) * random.NextDouble() + minimalColor.r,
                                        (maximumColor.g - minimalColor.g) * random.NextDouble() + minimalColor.g,
                                        (maximumColor.b - minimalColor.b) * random.NextDouble() + minimalColor.b);
            Vector3f velocity = new Vector3f((maximumInitialVelocity.x - minimalInitialVelocity.x) * random.NextDouble(),
                                           (maximumInitialVelocity.y - minimalInitialVelocity.y) * random.NextDouble(),
                                           (maximumInitialVelocity.z - minimalInitialVelocity.z) * random.NextDouble());
            velocity.add(minimalInitialVelocity);
            float particleLife = minimalParticleLife;
            float t = (maximumParticleLife - minimalParticleLife);
            particleLife += t * (float)random.NextDouble();

            return new BillboardedParticle(emitterPosition.copy(), velocity, gravity, color, particleLife, size);
        }
Ejemplo n.º 4
0
 public override void manipulate(Particle particle, Vector3f deltaVelocity, Color4f deltaColor, ref float deltaLife)
 {
     deltaVelocity.add(direction);
     deltaVelocity.stretch(strength);
 }