|
Gravity Engine 12.0
Unity Asset for Gravity
|
Common interface for numerical NBody integration. Used by the GravityEngine. More...
Public Member Functions | |
| 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. | |
Common interface for numerical NBody integration. Used by the GravityEngine.
Index Tracking:
This interface is not normally called from developer scripts.
| void INBodyIntegrator.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 |
Implemented in AZTripleIntegrator, HermiteIntegrator, and LeapfrogIntegrator.
| void INBodyIntegrator.Clear | ( | ) |
Clear internal information so no bodies are evolved.
Implemented in AZTripleIntegrator, HermiteIntegrator, and LeapfrogIntegrator.
| INBodyIntegrator INBodyIntegrator.DeepClone | ( | ) |
Clone this instance, replicating internal arrays. Copy across any internal state required for continued evolution.
Implemented in AZTripleIntegrator, HermiteIntegrator, and LeapfrogIntegrator.
| double INBodyIntegrator.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. |
Implemented in AZTripleIntegrator, HermiteIntegrator, and LeapfrogIntegrator.
| float INBodyIntegrator.GetEnergy | ( | GravityState | gs | ) |
Gets the energy of the system.
| mass | Mass. |
| pos | Position. |
Implemented in AZTripleIntegrator, HermiteIntegrator, and LeapfrogIntegrator.
| float INBodyIntegrator.GetInitialEnergy | ( | GravityState | gs | ) |
Gets the initial energy.
| mass | Mass. |
| pos | Position. |
Implemented in AZTripleIntegrator, HermiteIntegrator, and LeapfrogIntegrator.
| void INBodyIntegrator.GrowArrays | ( | int | growBy | ) |
Grows the arrays. Called by GravityEngine when it changes internal data sizes.
| growBy | Grow by. |
Implemented in AZTripleIntegrator, HermiteIntegrator, and LeapfrogIntegrator.
| void INBodyIntegrator.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. |
Implemented in AZTripleIntegrator, HermiteIntegrator, and LeapfrogIntegrator.
| void INBodyIntegrator.RemoveBodyAtIndex | ( | int | atIndex | ) |
Removes NBody at index i.
| atIndex | At index. |
Implemented in AZTripleIntegrator, HermiteIntegrator, and LeapfrogIntegrator.
| void INBodyIntegrator.Setup | ( | int | maxBodies, |
| double | timeStep | ||
| ) |
Setup the specified maxBodies and timeStep. Must be called prior to PreEvolve/Evolve.
| maxBodies | Max bodies. |
| timeStep | Time step. |
Implemented in AZTripleIntegrator, HermiteIntegrator, and LeapfrogIntegrator.