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

- Packages that use Vector3D
  Package | Description
  --- | ---
  org.gicentre.utils.network.traer.physics | Physics library for use with Processing.

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

    Fields in org.gicentre.utils.network.traer.physics declared as Vector3D
    Modifier and Type | Field and Description
    --- | ---
    `protected Vector3D` | Particle.`position` The position of the particle in 3d space.
    `protected Vector3D` | Particle.`velocity` The 3d velocity of the particle.

    Methods in org.gicentre.utils.network.traer.physics that return Vector3D
    Modifier and Type | Method and Description
    --- | ---
    `Vector3D` | Vector3D.`add(float x, float y, float z)` Adds the arguments to this vector's components.
    `Vector3D` | Vector3D.`add(Vector3D p)` Adds the argument Vector3D's components to this Vector3D's components.
    `static Vector3D` | Vector3D.`add(Vector3D v1, Vector3D v2)` Creates a new Vector3D from v1+v2.
    `static Vector3D` | Vector3D.`add(Vector3D v1, Vector3D v2, Vector3D target)` Returns v1+v2 in target, or a new Vector3D if target is null
    `Vector3D` | Vector3D.`copy()` Provides a copy of this Vector3D.
    `static Vector3D` | Vector3D.`copy(Vector3D from)` Copies the provided Vector3D.
    `Vector3D` | Vector3D.`cross(Vector3D v)` Creates a new Vector3D from this and the cross product with the given vector.
    `Vector3D` | Vector3D.`floor(float f)` The opposite of `limit(float)`: puts a lower bound on the length of `f`.
    `Vector3D` | Particle.`force()` Deprecated. Calls to this method should replaced with calls to the more standard `Particle.getForce()`.
    `protected Vector3D` | TwoBodyForce.ForcePair.`forceOnOneEnd()` Reports the force at oneEnd.
    `protected Vector3D` | TwoBodyForce.ForcePair.`forceOnTheOtherEnd()` Reports the force at theOtherEnd.
    `Vector3D` | Particle.`getForce()` Reports the force currently applied to this particle.
    `Vector3D` | Vector3D.`length(float f)` Reports the normalised length of this vector scaled by the given scale factor.
    `Vector3D` | Vector3D.`limit(float f)` Limits the length of this Vector3D to `f`.
    `Vector3D` | Vector3D.`multiplyBy(float f)` Multiplies each component by `f`.
    `static Vector3D` | Vector3D.`multiplyBy(Vector3D v, float f)` Creates a new Vector3D from v, by copying it and multiplying each of its components by f.
    `static Vector3D` | Vector3D.`multiplyBy(Vector3D v, float f, Vector3D target)` Returns the result of v*f in target, or creates a new Vector3D if target==null.
    `Vector3D` | Vector3D.`normalize()` Sets this Vector3Ds length to one by appropriately scaling x, y, and z.
    `static Vector3D` | Vector3D.`of()` Creates a 'zero' vector.
    `static Vector3D` | Vector3D.`of(float x, float y, float z)` Static constructor; convenience method for chaining calls.
    `Vector3D` | Particle.`position()` Reports the position of the particle.
    `Vector3D` | Vector3D.`projectOnto(Vector3D p)` Projects this Vector3D onto another Vector3D.
    `Vector3D` | Vector3D.`set(float x, float y, float z)` Sets all the components.
    `Vector3D` | Vector3D.`set(Vector3D p)` Sets this Vector3D components to those of another Vector3D.
    `Vector3D` | Vector3D.`setX(float x)` Sets the x component and return this Vector3D after modification.
    `Vector3D` | Vector3D.`setY(float y)` Sets the y component and return this Vector3D after modification.
    `Vector3D` | Vector3D.`setZ(float z)` Sets the z component and return this Vector3D after modification.
    `Vector3D` | Vector3D.`subtract(float x, float y, float z)` Subtracts the arguments from this vector's components.
    `Vector3D` | Vector3D.`subtract(Vector3D p)` Subtracts the argument from this vector.
    `static Vector3D` | Vector3D.`subtract(Vector3D v1, Vector3D v2)` Returns a new Vector3D, v1 - v2.
    `static Vector3D` | Vector3D.`subtract(Vector3D v1, Vector3D v2, Vector3D target)` Returns v1-v2 in target, or a new Vector3D if target is null.
    `static Vector3D` | Vector3D.`thrower(java.lang.String message)` Throws a NullPointerException with the provided message.
    `Vector3D` | Particle.`velocity()` Reports the velocity of the particle.

    Methods in org.gicentre.utils.network.traer.physics with parameters of type Vector3D
    Modifier and Type | Method and Description
    --- | ---
    `Vector3D` | Vector3D.`add(Vector3D p)` Adds the argument Vector3D's components to this Vector3D's components.
    `static Vector3D` | Vector3D.`add(Vector3D v1, Vector3D v2)` Creates a new Vector3D from v1+v2.
    `static Vector3D` | Vector3D.`add(Vector3D v1, Vector3D v2, Vector3D target)` Returns v1+v2 in target, or a new Vector3D if target is null
    `Particle` | Particle.`addForce(Vector3D addedForce)` Updates the force on this particle by adding the given extra force.
    `static Vector3D` | Vector3D.`copy(Vector3D from)` Copies the provided Vector3D.
    `Vector3D` | Vector3D.`cross(Vector3D v)` Creates a new Vector3D from this and the cross product with the given vector.
    `float` | Vector3D.`distanceSquaredTo(Vector3D v)` Like `distanceTo(Vector3D)`, only squared
    `float` | Vector3D.`distanceTo(Vector3D v)` Calculates the distance between the tip of this Vector3D and that of p.
    `float` | Vector3D.`dot(Vector3D p)` Calculates the dot product between this Vector3D and another - this.x*p.x + this.y*p.y + this.y*p.y
    `protected static TwoBodyForce.ForcePair` | TwoBodyForce.`equalAndOpposite(Vector3D forceOnOneEnd)` Creates a force pair for when the forces to be applied are equal and opposite.
    `protected boolean` | Vector3D.`equals(Vector3D other)` Determines if the components of this vector match those of the given one.
    `static Vector3D` | Vector3D.`multiplyBy(Vector3D v, float f)` Creates a new Vector3D from v, by copying it and multiplying each of its components by f.
    `static Vector3D` | Vector3D.`multiplyBy(Vector3D v, float f, Vector3D target)` Returns the result of v*f in target, or creates a new Vector3D if target==null.
    `Vector3D` | Vector3D.`projectOnto(Vector3D p)` Projects this Vector3D onto another Vector3D.
    `Vector3D` | Vector3D.`set(Vector3D p)` Sets this Vector3D components to those of another Vector3D.
    `Gravity` | Gravity.`setGravity(Vector3D grav3d)` Sets the gravity function with the given gravity value applied 3 dimensions.
    `protected static TwoBodyForce.ForcePair` | TwoBodyForce.`specifyBoth(Vector3D forceOnOneEnd, Vector3D forceOnTheOtherEnd)` Creates a `TwoBodyForce.ForcePair` from two not necessarily equal and opposite forces.
    `Vector3D` | Vector3D.`subtract(Vector3D p)` Subtracts the argument from this vector.
    `static Vector3D` | Vector3D.`subtract(Vector3D v1, Vector3D v2)` Returns a new Vector3D, v1 - v2.
    `static Vector3D` | Vector3D.`subtract(Vector3D v1, Vector3D v2, Vector3D target)` Returns v1-v2 in target, or a new Vector3D if target is null.
    `protected TwoBodyForce.ForcePair` | TwoBodyForce.ForcePair.`updateBoth(Vector3D forceOnOneEnd, Vector3D forceOnTheOtherEnd)` Updates the force for both ends according to the parameters.
    `protected TwoBodyForce.ForcePair` | TwoBodyForce.ForcePair.`updateEqualAndOpposite(Vector3D forceOnOneEnd)` Sets the force at oneEnd according to forceOnOneEnd argument, and the force on theOtherEnd as equal and opposite.

    Method parameters in org.gicentre.utils.network.traer.physics with type arguments of type Vector3D
    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 Vector3D
    Constructor and Description
    `Gravity(Vector3D grav3d)` Creates a gravity function with the given gravity value applied 3 dimensions.
    `Vector3D(Vector3D p)` Creates a new cloned 3D vector copied from the components of the given vector.