Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## toxi.physics2d
Class VerletPhysics2D

    java.lang.Object
      toxi.physics2d.VerletPhysics2D

    public class VerletPhysics2D

extends java.lang.Object

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
`java.util.List<ParticleBehavior2D>` | `behaviors`
`java.util.ArrayList<VerletParticle2D>` | `particles` List of particles
`java.util.ArrayList<VerletSpring2D>` | `springs` List of spring/stick connectors

Constructor Summary
`VerletPhysics2D()` Initializes a Verlet engine instance using the default values.
`VerletPhysics2D(toxi.geom.Vec2D gravity, int numIterations, float drag, float timeStep)` Initializes an Verlet engine instance with the passed in configuration.

Method Summary
`void` | `addBehavior(ParticleBehavior2D behavior)`
`static void` | `addConstraintToAll(ParticleConstraint2D c, java.util.List<VerletParticle2D> list)`
`VerletPhysics2D` | `addParticle(VerletParticle2D p)` Adds a particle to the list
`VerletPhysics2D` | `addSpring(VerletSpring2D s)` Adds a spring connector
`VerletPhysics2D` | `clear()`
`toxi.geom.Rect` | `getCurrentBounds()`
`float` | `getDrag()`
`int` | `getNumIterations()`
`VerletSpring2D` | `getSpring(toxi.geom.Vec2D a, toxi.geom.Vec2D b)` Attempts to find the spring element between the 2 particles supplied
`float` | `getTimeStep()`
`toxi.geom.Rect` | `getWorldBounds()`
`boolean` | `removeBehavior(ParticleBehavior2D c)`
`static void` | `removeConstraintFromAll(ParticleConstraint2D c, java.util.List<VerletParticle2D> list)`
`boolean` | `removeParticle(VerletParticle2D p)` Removes a particle from the simulation.
`boolean` | `removeSpring(VerletSpring2D s)` Removes a spring connector from the simulation instance.
`boolean` | `removeSpringElements(VerletSpring2D s)` Removes a spring connector and its both end point particles from the simulation
`void` | `setDrag(float drag)`
`void` | `setNumIterations(int numIterations)`
`void` | `setTimeStep(float timeStep)`
`VerletPhysics2D` | `setWorldBounds(toxi.geom.Rect world)` Sets bounding box
`VerletPhysics2D` | `update()` Progresses the physics simulation by 1 time step and updates all forces and particle positions accordingly

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### particles

    public java.util.ArrayList<VerletParticle2D> particles

  List of particles

### springs

    public java.util.ArrayList<VerletSpring2D> springs

  List of spring/stick connectors

### behaviors

    public final java.util.List<ParticleBehavior2D> behaviors

Constructor Detail

### VerletPhysics2D

    public VerletPhysics2D()

  Initializes a Verlet engine instance using the default values.

### VerletPhysics2D

    public VerletPhysics2D(toxi.geom.Vec2D gravity,
                           int numIterations,
                           float drag,
                           float timeStep)

  Initializes an Verlet engine instance with the passed in configuration.

  Parameters:
    `gravity` - 3D gravity vector
    `numIterations` - iterations per time step for verlet solver
    `drag` - drag value 0...1
    `timeStep` - time step for calculating forces

Method Detail

### addConstraintToAll

    public static void addConstraintToAll(ParticleConstraint2D c,
                                          java.util.List<VerletParticle2D> list)

### removeConstraintFromAll

    public static void removeConstraintFromAll(ParticleConstraint2D c,
                                               java.util.List<VerletParticle2D> list)

### addBehavior

    public void addBehavior(ParticleBehavior2D behavior)

### addParticle

    public VerletPhysics2D addParticle(VerletParticle2D p)

  Adds a particle to the list

  Parameters:
    `p` -
  Returns:
    itself

### addSpring

    public VerletPhysics2D addSpring(VerletSpring2D s)

  Adds a spring connector

  Parameters:
    `s` -
  Returns:
    itself

### clear

    public VerletPhysics2D clear()

### getCurrentBounds

    public toxi.geom.Rect getCurrentBounds()

### getDrag

    public float getDrag()

### getNumIterations

    public int getNumIterations()

  Returns:
    the numIterations

### getSpring

    public VerletSpring2D getSpring(toxi.geom.Vec2D a,
                                    toxi.geom.Vec2D b)

  Attempts to find the spring element between the 2 particles supplied

  Parameters:
    `a` - particle 1
    `b` - particle 2
  Returns:
    spring instance, or null if not found

### getTimeStep

    public float getTimeStep()

  Returns:
    the timeStep

### getWorldBounds

    public toxi.geom.Rect getWorldBounds()

  Returns:
    the worldBounds

### removeBehavior

    public boolean removeBehavior(ParticleBehavior2D c)

### removeParticle

    public boolean removeParticle(VerletParticle2D p)

  Removes a particle from the simulation.

  Parameters:
    `p` - particle to remove
  Returns:
    true, if removed successfully

### removeSpring

    public boolean removeSpring(VerletSpring2D s)

  Removes a spring connector from the simulation instance.

  Parameters:
    `s` - spring to remove
  Returns:
    true, if the spring has been removed

### removeSpringElements

    public boolean removeSpringElements(VerletSpring2D s)

  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)

### 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

    public VerletPhysics2D setWorldBounds(toxi.geom.Rect world)

  Sets bounding box

  Parameters:
    `world` -
  Returns:
    itself

### update

    public VerletPhysics2D update()

  Progresses the physics simulation by 1 time step and updates all forces and particle positions accordingly

  Returns:
    itself

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD