Gravity Engine 12.0
Unity Asset for Gravity
|
Public Member Functions | |
HermiteIntegrator (IForceDelegate force) | |
INBodyIntegrator | DeepClone () |
Clone this instance, replicating internal arrays. Copy across any internal state required for continued evolution. | |
void | Setup (int maxBodies, double timeStep) |
Setup the specified maxBodies and timeStep. Must be called prior to PreEvolve/Evolve. | |
void | Clear () |
Clear internal information so no bodies are evolved. | |
void | AddNBody (int bodyNum, NBody nbody, GravityState.NbodyState[] nbodyStates) |
Adds the N body. Implementation may support the case where the initial number of bodies in Setup() is exceeded, creating space, or may ignore additions that exceed this limit (e.g. AZTTriple). | |
void | RemoveBodyAtIndex (int atIndex) |
Removes NBody at index i. | |
void | GrowArrays (int growBy) |
Grows the arrays. Called by GravityEngine when it changes internal data sizes. | |
Vector3d | GetAccelerationForIndex (int i) |
float | GetEnergy (GravityState gravityState) |
Gets the energy of the system. | |
float | GetInitialEnergy (GravityState gravityState) |
Gets the initial energy. | |
void | Reset (int numEntries) |
void | PreEvolve (GravityState gravityState) |
Call ONCE after all game objects have been added to allow integrator to pre-calc starting quantities required for integration. | |
double | Evolve (double time, GravityState gravityState, bool exactTime=false) |
Evolve the specified time, m, r and info. | |
string | GetExternalAccelForIndex (int i) |
void | Setup (int maxBodies, double timeStep) |
Setup the specified maxBodies and timeStep. Must be called prior to PreEvolve/Evolve. | |
void | Clear () |
Clear internal information so no bodies are evolved. | |
INBodyIntegrator | DeepClone () |
Clone this instance, replicating internal arrays. Copy across any internal state required for continued evolution. | |
void | AddNBody (int bodyNum, NBody nbody, GravityState.NbodyState[] nbodyState) |
Adds the N body. Implementation may support the case where the initial number of bodies in Setup() is exceeded, creating space, or may ignore additions that exceed this limit (e.g. AZTTriple). | |
void | RemoveBodyAtIndex (int atIndex) |
Removes NBody at index i. | |
void | GrowArrays (int growBy) |
Grows the arrays. Called by GravityEngine when it changes internal data sizes. | |
Vector3d | GetAccelerationForIndex (int i) |
string | GetExternalAccelForIndex (int i) |
void | PreEvolve (GravityState gravityState) |
Call ONCE after all game objects have been added to allow integrator to pre-calc starting quantities required for integration. | |
double | Evolve (double time, GravityState gravityState, bool exactTime=false) |
Evolve the specified time, m, r and info. | |
float | GetEnergy (GravityState gs) |
Gets the energy of the system. | |
float | GetInitialEnergy (GravityState gs) |
Gets the initial energy. | |
void HermiteIntegrator.AddNBody | ( | int | bodyNum, |
NBody | nbody, | ||
GravityState.NbodyState[] | nbodyState | ||
) |
Adds the N body. Implementation may support the case where the initial number of bodies in Setup() is exceeded, creating space, or may ignore additions that exceed this limit (e.g. AZTTriple).
nbody | NBody component |
Implements INBodyIntegrator.
void HermiteIntegrator.Clear | ( | ) |
Clear internal information so no bodies are evolved.
Implements INBodyIntegrator.
INBodyIntegrator HermiteIntegrator.DeepClone | ( | ) |
Clone this instance, replicating internal arrays. Copy across any internal state required for continued evolution.
Implements INBodyIntegrator.
double HermiteIntegrator.Evolve | ( | double | time, |
GravityState | gravityState, | ||
bool | exactTime = false |
||
) |
Evolve the specified time, m, r and info.
Integrators will evolve for at least as long as the specified time, but can overshoot. The GravityEngine will correct on the next cycle.
time | Time. |
m | M. |
r | The red component. |
info | Info. |
Implements INBodyIntegrator.
Vector3d HermiteIntegrator.GetAccelerationForIndex | ( | int | i | ) |
Implements INBodyIntegrator.
float HermiteIntegrator.GetEnergy | ( | GravityState | gs | ) |
Gets the energy of the system.
mass | Mass. |
pos | Position. |
Implements INBodyIntegrator.
string HermiteIntegrator.GetExternalAccelForIndex | ( | int | i | ) |
Implements INBodyIntegrator.
float HermiteIntegrator.GetInitialEnergy | ( | GravityState | gs | ) |
Gets the initial energy.
mass | Mass. |
pos | Position. |
Implements INBodyIntegrator.
void HermiteIntegrator.GrowArrays | ( | int | growBy | ) |
Grows the arrays. Called by GravityEngine when it changes internal data sizes.
growBy | Grow by. |
Implements INBodyIntegrator.
void HermiteIntegrator.PreEvolve | ( | GravityState | gravityState | ) |
Call ONCE after all game objects have been added to allow integrator to pre-calc starting quantities required for integration.
To avoid copies of mass and position arrays in integrators provide a reference to these for Evolve and PreEvolve
Some implementations (e.g. AZTriple) may make their own copies and then copy the result back into these arrays ///
m | M. |
r | The red component. |
info | Info. |
Implements INBodyIntegrator.
void HermiteIntegrator.RemoveBodyAtIndex | ( | int | atIndex | ) |
void HermiteIntegrator.Setup | ( | int | maxBodies, |
double | timeStep | ||
) |
Setup the specified maxBodies and timeStep. Must be called prior to PreEvolve/Evolve.
maxBodies | Max bodies. |
timeStep | Time step. |
Implements INBodyIntegrator.