|
static void | EvolveKeplerMassive (double t_to, ref GEPhysicsCore.GEBodies bodies, ref NativeArray< PropInfo > kpi, ref NativeArray< int > indices, int lenIndices) |
| Evolves all the massive Kepler bodies to their new absolute position.
|
|
static bool | EvolveMasslessProgagators (double t_to, ref GEPhysicsCore.GEBodies bodies, ref NativeArray< PropInfo > kpi, ref NativeArray< GEPhysicsCore.PatchInfo > patchInfo, ref NativeArray< int > indices, int lenIndices, ref NativeList< GEPhysicsCore.PhysEvent > eventList, bool coRoFrame) |
|
static void | EvolveRelative (double t, int propId, ref NativeArray< PropInfo > kpi, ref GEBodyState state) |
| Version to allow direct use of a propagator in GE.
|
|
static void | FindC2C3 (double znew, out double c2new, out double c3new) |
|
static void | ManeuverPropagator (int bodyIndex, double time, ref GEPhysicsCore.GEBodies bodies, ref NativeArray< PropInfo > kpi) |
| Update the KeplerPropagator for the body at bodyIndex with the new position, velocity and time based on applying a maneuver in the Run() loop.
|
|
static int double3 | RVforTime (RVT rvt, double physicsTime) |
|
Code to propagate Kepler orbits (ellipse, parabola, hyperbola).
This code will be called from Job in the job system so it cannot make reference to any classes, hence the implementation as a data struct and static methods.
The propagator is based on the universal variable Kepler method from Vallado. This is chosen since it has smooth hand off between ellipse, parabola and hyperbola.
RVT has two contructors, one that preserves the initial COE (which can then be retreived by e.g. orbit display code that does not care about the exact phase of the orbit (since it will be drawing the entire shape).