Emini Physics Engine 1.3.5a API Documentation

at.emini.physics2D
Class ParticleEmitter

java.lang.Object
  extended by at.emini.physics2D.ParticleEmitter

public class ParticleEmitter
extends java.lang.Object

Controls a batch of particles. The emitter controls all particle initialization parameters (like position, velocity). It also manages the particles for collisions with other objects. It resolves the collisions and controls the behavior of gravity and other external forces.

Author:
Alexander Adensamer

Field Summary
protected  short[] mLife
          remaining lifetime of particle.
protected  int mMaxParticleCount
          Maximum number of particles.
protected  UserData mUserData
          User data
protected  float[] mXFX
          X positions of the particles.
protected  float[] mXPrevFX
          Last X positions of the particles.
protected  float[] mYFX
          Y positions of the particles.
protected  float[] mYPrevFX
          Last Y positions of the particles.
 
Constructor Summary
ParticleEmitter(int particleCount, float creationRateFX, float creationRateDeviationFX, float averageLifeTimeFX, float averageLifeTimeDeviationFX, Body emitter, FXVector emitPosition1, FXVector emitPosition2, float emitSpeedFX, float emitSpeedDeviationFX, float emitAngle2FX, float emitAngleDeviation2FX, boolean emitAxesFixed, float elasticityFX, float gravityEffectFX, float dampingFX, float timestepFX)
          Constructor.
ParticleEmitter(ParticleEmitter other)
          Copy Constructor.
 
Method Summary
 void applyAcceleration(FXVector gravity, float dtFX)
          APplies gravity to particles.
 boolean canCollide()
           
protected  void collide(FXVector normal, int particleIdx)
          Performs collision for a given particle.
 ParticleEmitter copy(Body[] bodyMapping)
          Copies the particle emitter.
protected  void createParticle(int index, float timestepFX)
          Creates the parameters for the particle at index.
protected  void createParticles(float timestepFX)
          Creates the required number of new particles in the simulation.
 boolean emitAxesFixed()
           
 float getAvgLifeTimeDeviationFX()
           
 float getAvgLifeTimeFX()
           
 float getCreationRateDeviationFX()
           
 float getCreationRateFX()
           
 float getDampingFX()
           
 float getElasticityFX()
           
 float getEmitAngle2FX()
           
 float getEmitAngleDeviation2FX()
           
 float getEmitSpeedDeviationFX()
           
 float getEmitSpeedFX()
           
 Body getEmitter()
           
 float getGravityEffectFX()
           
 short[] getLifeTimes()
           
 int getMaxParticleCount()
           
 FXVector getRelEmitterPos1()
           
 FXVector getRelEmitterPos2()
           
 UserData getUserData()
          Get user data.
 float[] getXPosFX()
           
 float[] getXPrevPosFX()
           
 float[] getYPosFX()
           
 float[] getYPrevPosFX()
           
 void integrateParticles(float timestepFX)
          Moves all particles.
static ParticleEmitter loadParticleEmitter(PhysicsFileReader reader, World world, UserData userData)
          Loads a Particle Emitter from stream.
 void setAvgLifeTime(float avgLifeTimeFX, float avgLifeTimeDeviationFX)
           
 void setCanCollide(boolean canCollide)
           
 void setCreationRateFX(float creationRateFX, float creationRateDeviationFX, float timestepFX)
           
 void setDampingFX(float dampingFX)
           
 void setElasticityFX(float elasticityFX)
           
 void setEmitAngle2FX(float emitAngle2FX, float emitAngleDeviation2FX)
           
 void setEmitAxesFixed(boolean emitAxesFixed)
           
 void setEmitSpeedFX(float emitSpeedFX, float emitSpeedDeviationFX)
           
 void setEmitter(Body emitter)
           
 void setGravityEffectFX(float gravityEffectFX)
           
 void setMaxParticleCount(int maxParticleCount)
           
 void setRelEmitterPos1(FXVector relEmitterPos1)
           
 void setRelEmitterPos2(FXVector relEmitterPos2)
           
 void setUserData(UserData userData)
          Set User data
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mMaxParticleCount

protected int mMaxParticleCount
Maximum number of particles.


mXFX

protected float[] mXFX
X positions of the particles.


mYFX

protected float[] mYFX
Y positions of the particles.


mXPrevFX

protected float[] mXPrevFX
Last X positions of the particles.


mYPrevFX

protected float[] mYPrevFX
Last Y positions of the particles.


mLife

protected short[] mLife
remaining lifetime of particle.


mUserData

protected UserData mUserData
User data

Constructor Detail

ParticleEmitter

public ParticleEmitter(int particleCount,
                       float creationRateFX,
                       float creationRateDeviationFX,
                       float averageLifeTimeFX,
                       float averageLifeTimeDeviationFX,
                       Body emitter,
                       FXVector emitPosition1,
                       FXVector emitPosition2,
                       float emitSpeedFX,
                       float emitSpeedDeviationFX,
                       float emitAngle2FX,
                       float emitAngleDeviation2FX,
                       boolean emitAxesFixed,
                       float elasticityFX,
                       float gravityEffectFX,
                       float dampingFX,
                       float timestepFX)
Constructor.


ParticleEmitter

public ParticleEmitter(ParticleEmitter other)
Copy Constructor.

Method Detail

copy

public ParticleEmitter copy(Body[] bodyMapping)
Copies the particle emitter. Performs a deep copy.

Parameters:
bodyMapping - the mapping of bodies in the new world (null if not used).
Returns:
the new particle emitter.

createParticle

protected final void createParticle(int index,
                                    float timestepFX)
Creates the parameters for the particle at index. This represents the particle.

Parameters:
index - index of the new particle
timestepFX - the timestep of the simulation

createParticles

protected void createParticles(float timestepFX)
Creates the required number of new particles in the simulation.


integrateParticles

public void integrateParticles(float timestepFX)
Moves all particles. The particles are moved according to theirs respective velocity. Performs collision and resolves it. Collision response is only for particles not interacting bodies.


applyAcceleration

public void applyAcceleration(FXVector gravity,
                              float dtFX)
APplies gravity to particles.

Parameters:
gravity -
dtFX -

collide

protected void collide(FXVector normal,
                       int particleIdx)
Performs collision for a given particle.


getCreationRateFX

public float getCreationRateFX()

getCreationRateDeviationFX

public float getCreationRateDeviationFX()

getAvgLifeTimeFX

public float getAvgLifeTimeFX()

getAvgLifeTimeDeviationFX

public float getAvgLifeTimeDeviationFX()

getMaxParticleCount

public int getMaxParticleCount()

getElasticityFX

public float getElasticityFX()

getGravityEffectFX

public float getGravityEffectFX()

getEmitter

public Body getEmitter()

getRelEmitterPos1

public FXVector getRelEmitterPos1()

getRelEmitterPos2

public FXVector getRelEmitterPos2()

emitAxesFixed

public boolean emitAxesFixed()

getEmitSpeedFX

public float getEmitSpeedFX()

getEmitSpeedDeviationFX

public float getEmitSpeedDeviationFX()

getEmitAngle2FX

public float getEmitAngle2FX()

getEmitAngleDeviation2FX

public float getEmitAngleDeviation2FX()

getDampingFX

public float getDampingFX()

canCollide

public boolean canCollide()

setCreationRateFX

public void setCreationRateFX(float creationRateFX,
                              float creationRateDeviationFX,
                              float timestepFX)

setAvgLifeTime

public void setAvgLifeTime(float avgLifeTimeFX,
                           float avgLifeTimeDeviationFX)

setElasticityFX

public void setElasticityFX(float elasticityFX)

setGravityEffectFX

public void setGravityEffectFX(float gravityEffectFX)

setEmitter

public void setEmitter(Body emitter)

setRelEmitterPos1

public void setRelEmitterPos1(FXVector relEmitterPos1)

setRelEmitterPos2

public void setRelEmitterPos2(FXVector relEmitterPos2)

setEmitAxesFixed

public void setEmitAxesFixed(boolean emitAxesFixed)

setEmitSpeedFX

public void setEmitSpeedFX(float emitSpeedFX,
                           float emitSpeedDeviationFX)

setEmitAngle2FX

public void setEmitAngle2FX(float emitAngle2FX,
                            float emitAngleDeviation2FX)

setMaxParticleCount

public void setMaxParticleCount(int maxParticleCount)

setDampingFX

public void setDampingFX(float dampingFX)

setCanCollide

public void setCanCollide(boolean canCollide)

getXPosFX

public float[] getXPosFX()

getYPosFX

public float[] getYPosFX()

getXPrevPosFX

public float[] getXPrevPosFX()

getYPrevPosFX

public float[] getYPrevPosFX()

getLifeTimes

public short[] getLifeTimes()

loadParticleEmitter

public static ParticleEmitter loadParticleEmitter(PhysicsFileReader reader,
                                                  World world,
                                                  UserData userData)
Loads a Particle Emitter from stream.

Parameters:
reader - the file reader representing the data stream
world - the world for correct referencing of bodies used by the particle emitter
Returns:
the loaded particle emitter

getUserData

public UserData getUserData()
Get user data.

Returns:
the user data.

setUserData

public void setUserData(UserData userData)
Set User data

Parameters:
userData - the user data

Emini Physics Engine 1.3.5a API Documentation

Emini Physics Engine 1.3.5a API Documentation - Copyright 2014 Alexander Adensamer