Package toxi.physics2d
Class VerletPhysics2D
java.lang.Object
toxi.physics2d.VerletPhysics2D
3D particle physics engine using Verlet integration based on:
 http://en.wikipedia.org/wiki/Verlet_integration
 http://www.teknikus.dk/tj/gdc2001.htm
- 
Field Summary
FieldsModifier and TypeFieldDescriptionfinal List<ParticleBehavior2D>final List<ParticleConstraint2D>List of particlesList of spring/stick connectors - 
Constructor Summary
ConstructorsConstructorDescriptionInitializes a Verlet engine instance using the default values.VerletPhysics2D(Vec2D gravity, int numIterations, float drag, float timeStep) Initializes an Verlet engine instance with the passed in configuration. - 
Method Summary
Modifier and TypeMethodDescriptionvoidaddBehavior(ParticleBehavior2D behavior) voidaddConstraint(ParticleConstraint2D constraint) static voidAdds a particle to the listAdds a spring connectorclear()floatgetDrag()getIndex()intAttempts to find the spring element between the 2 particles suppliedfloatbooleanbooleanstatic voidbooleanRemoves a particle from the simulation.booleanRemoves a spring connector from the simulation instance.booleanRemoves a spring connector and its both end point particles from the simulationvoidsetDrag(float drag) voidsetIndex(SpatialIndex<Vec2D> index) voidsetNumIterations(int numIterations) voidsetTimeStep(float timeStep) setWorldBounds(Rect world) Sets bounding boxupdate()Progresses the physics simulation by 1 time step and updates all forces and particle positions accordingly 
- 
Field Details
- 
particles
List of particles - 
springs
List of spring/stick connectors - 
behaviors
 - 
constraints
 
 - 
 - 
Constructor Details
- 
VerletPhysics2D
public VerletPhysics2D()Initializes a Verlet engine instance using the default values. - 
VerletPhysics2D
Initializes an Verlet engine instance with the passed in configuration.- Parameters:
 gravity- 3D gravity vectornumIterations- iterations per time step for verlet solverdrag- drag value 0...1timeStep- time step for calculating forces
 
 - 
 - 
Method Details
- 
addConstraintToAll
 - 
removeConstraintFromAll
 - 
addBehavior
 - 
addConstraint
 - 
addParticle
Adds a particle to the list- Parameters:
 p-- Returns:
 - itself
 
 - 
addSpring
Adds a spring connector- Parameters:
 s-- Returns:
 - itself
 
 - 
clear
 - 
getCurrentBounds
 - 
getDrag
public float getDrag() - 
getIndex
- Returns:
 - the index
 
 - 
getNumIterations
public int getNumIterations()- Returns:
 - the numIterations
 
 - 
getSpring
Attempts to find the spring element between the 2 particles supplied- Parameters:
 a- particle 1b- particle 2- Returns:
 - spring instance, or null if not found
 
 - 
getTimeStep
public float getTimeStep()- Returns:
 - the timeStep
 
 - 
getWorldBounds
- Returns:
 - the worldBounds
 
 - 
removeBehavior
 - 
removeConstraint
 - 
removeParticle
Removes a particle from the simulation.- Parameters:
 p- particle to remove- Returns:
 - true, if removed successfully
 
 - 
removeSpring
Removes a spring connector from the simulation instance.- Parameters:
 s- spring to remove- Returns:
 - true, if the spring has been removed
 
 - 
removeSpringElements
Removes a spring connector and its both end point particles from the simulation- Parameters:
 s- spring to remove- Returns:
 - true, only if spring AND particles have been removed successfully
 
 - 
setDrag
public void setDrag(float drag)  - 
setIndex
- Parameters:
 index- the index to set
 - 
setNumIterations
public void setNumIterations(int numIterations) - Parameters:
 numIterations- the numIterations to set
 - 
setTimeStep
public void setTimeStep(float timeStep) - Parameters:
 timeStep- the timeStep to set
 - 
setWorldBounds
Sets bounding box- Parameters:
 world-- Returns:
 - itself
 
 - 
update
Progresses the physics simulation by 1 time step and updates all forces and particle positions accordingly- Returns:
 - itself
 
 
 -