## Uses of Class
org.gicentre.utils.network.traer.physics.Particle

- Packages that use Particle
  Package | Description
  --- | ---
  org.gicentre.utils.network | Network-related utilities for use with Processing.
  org.gicentre.utils.network.traer.physics | Physics library for use with Processing.

- - ### Uses of Particle in org.gicentre.utils.network

    Methods in org.gicentre.utils.network that return Particle
    Modifier and Type | Method and Description
    --- | ---
    `Particle` | ParticleViewer.`getParticle(N node)` Provides the particle associated with the given node.

  - ### Uses of Particle in org.gicentre.utils.network.traer.physics

    Subclasses of Particle in org.gicentre.utils.network.traer.physics
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ChargedParticle` Represents a charged particle in the particle system, but currently not implemented.

    Methods in org.gicentre.utils.network.traer.physics that return Particle
    Modifier and Type | Method and Description
    --- | ---
    `Particle` | Particle.`addForce(Vector3D addedForce)` Updates the force on this particle by adding the given extra force.
    `Particle` | TargetedForce.`apply(Particle p)` This type of `Force` does not support application to any Particle p; an exception will be thrown by this method.
    `Particle` | Gravity.`apply(Particle p)` Applies this gravity function to the given particle, modifying its velocity and direction as appropriate.
    `Particle` | Force.`apply(Particle p)` Should apply this Force to a Particle p.
    `Particle` | Drag.`apply(Particle p)` Applies this drag to the given particle.
    `Particle` | Particle.`clearForce()` Clears the force on this particle.
    `Particle` | TwoBodyForce.`getOneEnd()` Reports the particle at `TwoBodyForce.oneEnd`.
    `Particle` | ParticleSystem.`getParticle(int i)` Provides the particle at the given position in the collection of particles stored in this particle system.
    `Particle` | TwoBodyForce.`getTheOtherEnd()` Reports the particle at `TwoBodyForce.theOtherEnd`.
    `Particle` | Particle.`makeFixed()` Fixes the particle.
    `Particle` | Particle.`makeFree()` Frees this particle.
    `Particle` | ParticleSystem.`makeParticle()` Creates a Particle with `DEFAULT_MASS` and position=(0,0,0).
    `Particle` | ParticleSystem.`makeParticle(float mass, float x, float y, float z)` Creates a particle in the ParticleSystem, and returns that Particle
    `Particle` | ParticleSystem.`makeParticle(Particle p)` Adds a custom Particle to the ParticleSystem, and returns the ParticleSystem.
    `Particle` | Particle.`reset()` Resets this particle by setting its age to 0, dead=false, clears the position, velocity, force Vector3Ds, and mass = DEFAULT_MASS.
    `Particle` | Particle.`setFixed(boolean isFixed)` Sets the particle's fixed/free state.
    `Particle` | Particle.`setMass(float m)` Sets the particle's mass to the given value.

    Methods in org.gicentre.utils.network.traer.physics that return types with arguments of type Particle
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Collection<Particle>` | ParticleSystem.`getParticles()` Provides a collection of the particles currently defined as part of this particle system.
    `protected static Function<Particle,?>` | RungeKuttaIntegrator.`kApplier(java.util.Map<Particle,Vector3D> kForces, java.util.Map<Particle,Vector3D> kVelocities, java.util.Map<Particle,Vector3D> originalPositions, java.util.Map<Particle,Vector3D> originalVelocities, float deltaT)` Provides the function that applies the single increment of the particles' positions and velocities.
    `protected static Function<Particle,?>` | RungeKuttaIntegrator.`kFunctor(java.util.Map<Particle,Vector3D> kForces, java.util.Map<Particle,Vector3D> kVelocities)` Provides the function capable of performing the integration.
    `java.util.Collection<Particle>` | ParticleSystem.`particles()` Deprecated. Replace in favour of the more consistently named getParticles().
    `protected Function<Particle,?>` | SettlingRungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | RungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.

    Methods in org.gicentre.utils.network.traer.physics with parameters of type Particle
    Modifier and Type | Method and Description
    --- | ---
    `Particle` | TargetedForce.`apply(Particle p)` This type of `Force` does not support application to any Particle p; an exception will be thrown by this method.
    `Particle` | Gravity.`apply(Particle p)` Applies this gravity function to the given particle, modifying its velocity and direction as appropriate.
    `Particle` | Force.`apply(Particle p)` Should apply this Force to a Particle p.
    `Particle` | Drag.`apply(Particle p)` Applies this drag to the given particle.
    `float` | Particle.`distanceTo(Particle p)` Calculates the distance between this particle and another.
    `Attraction` | ParticleSystem.`makeAttraction(Particle a, Particle b, float strength, float minDistance)` Creates an attractive force between the given particles with the given strength.
    `Particle` | ParticleSystem.`makeParticle(Particle p)` Adds a custom Particle to the ParticleSystem, and returns the ParticleSystem.
    `Spring` | ParticleSystem.`makeSpring(Particle a, Particle b, float strength, float damping, float restLength)` Creates a spring between the given particles with the given strength, damping and reset length.
    `ParticleSystem` | ParticleSystem.`removeParticle(Particle p)` Removes the given particle from the collection of particles stored in this particle system if it exists.
    `protected TwoBodyForce` | TwoBodyForce.`setOneEnd(Particle p)` Sets `TwoBodyForce.oneEnd` to the give particle.
    `protected TwoBodyForce` | TwoBodyForce.`setTheOtherEnd(Particle p)` Sets `TwoBodyForce.theOtherEnd` to the give particle.

    Method parameters in org.gicentre.utils.network.traer.physics with type arguments of type Particle
    Modifier and Type | Method and Description
    --- | ---
    `protected static Function<Particle,?>` | RungeKuttaIntegrator.`kApplier(java.util.Map<Particle,Vector3D> kForces, java.util.Map<Particle,Vector3D> kVelocities, java.util.Map<Particle,Vector3D> originalPositions, java.util.Map<Particle,Vector3D> originalVelocities, float deltaT)` Provides the function that applies the single increment of the particles' positions and velocities.
    `protected static Function<Particle,?>` | RungeKuttaIntegrator.`kApplier(java.util.Map<Particle,Vector3D> kForces, java.util.Map<Particle,Vector3D> kVelocities, java.util.Map<Particle,Vector3D> originalPositions, java.util.Map<Particle,Vector3D> originalVelocities, float deltaT)` Provides the function that applies the single increment of the particles' positions and velocities.
    `protected static Function<Particle,?>` | RungeKuttaIntegrator.`kApplier(java.util.Map<Particle,Vector3D> kForces, java.util.Map<Particle,Vector3D> kVelocities, java.util.Map<Particle,Vector3D> originalPositions, java.util.Map<Particle,Vector3D> originalVelocities, float deltaT)` Provides the function that applies the single increment of the particles' positions and velocities.
    `protected static Function<Particle,?>` | RungeKuttaIntegrator.`kApplier(java.util.Map<Particle,Vector3D> kForces, java.util.Map<Particle,Vector3D> kVelocities, java.util.Map<Particle,Vector3D> originalPositions, java.util.Map<Particle,Vector3D> originalVelocities, float deltaT)` Provides the function that applies the single increment of the particles' positions and velocities.
    `protected static Function<Particle,?>` | RungeKuttaIntegrator.`kFunctor(java.util.Map<Particle,Vector3D> kForces, java.util.Map<Particle,Vector3D> kVelocities)` Provides the function capable of performing the integration.
    `protected static Function<Particle,?>` | RungeKuttaIntegrator.`kFunctor(java.util.Map<Particle,Vector3D> kForces, java.util.Map<Particle,Vector3D> kVelocities)` Provides the function capable of performing the integration.
    `protected Function<Particle,?>` | SettlingRungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | SettlingRungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | SettlingRungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | SettlingRungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | SettlingRungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | SettlingRungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | SettlingRungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | SettlingRungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | SettlingRungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | SettlingRungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | RungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | RungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | RungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | RungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | RungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | RungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | RungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | RungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | RungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.
    `protected Function<Particle,?>` | RungeKuttaIntegrator.`updater(java.util.Map<Particle,Vector3D> k1f, java.util.Map<Particle,Vector3D> k1v, java.util.Map<Particle,Vector3D> k2f, java.util.Map<Particle,Vector3D> k2v, java.util.Map<Particle,Vector3D> k3f, java.util.Map<Particle,Vector3D> k3v, java.util.Map<Particle,Vector3D> k4f, java.util.Map<Particle,Vector3D> k4v, java.util.Map<Particle,Vector3D> oPos, java.util.Map<Particle,Vector3D> oVel, float deltaT)` Provides the function that updates the particles in the system.

    Constructors in org.gicentre.utils.network.traer.physics with parameters of type Particle
    Constructor and Description
    `Attraction(Particle oneEnd, Particle theOtherEnd, float k, float distanceMin)` Creates an Attraction between oneEnd and theOtherEnd, with scale k and minimum distance distanceMin.
    `Spring(Particle oneEnd, Particle theOtherEnd, float ks, float d, float l)` Creates a spring with the given properties between the given particles.
    `TwoBodyForce(Particle oneEnd, Particle theOtherEnd)` Creates a two-body force between the two given particles.