|
| Orbit () |
|
| Orbit (double inc, double e, double sma, double lan, double w, double mEp, double t, CelestialBody body) |
|
void | DrawOrbit () |
|
Vector3d | GetANVector () |
|
double | GetDTforTrueAnomaly (double tA, double wrapAfterSeconds) |
|
double | GetEccentricAnomaly (double tA) |
|
Vector3d | GetEccVector () |
|
Vector3d | GetFrameVel () |
| The velocity of the orbiting object, {AliceWorld, Sun}. More...
|
|
Vector3d | GetFrameVelAtUT (double UT) |
|
double | GetMeanAnomaly (double E, double tA) |
|
double | getObTAtMeanAnomaly (double M) |
|
double | getObtAtUT (double UT) |
|
double | getOrbitalSpeedAt (double time) |
|
double | getOrbitalSpeedAtDistance (double d) |
|
double | getOrbitalSpeedAtPos (Vector3d pos) |
|
double | getOrbitalSpeedAtRelativePos (Vector3d relPos) |
|
Vector3d | getOrbitalVelocityAtObT (double ObT) |
|
Vector3d | getOrbitalVelocityAtUT (double UT) |
|
Vector3d | GetOrbitNormal () |
| A unit vector normal to the plane of the orbit. NOTE: All Vector3d's returned by Orbit class functions have their y and z axes flipped. You have to flip these back to get the vectors in world coordinates. More...
|
|
Trajectory | GetPatchTrajectory (int sampleCount) |
|
Vector3d | getPositionAtT (double T) |
|
Vector3d | getPositionAtUT (double UT) |
|
Vector3d | getPositionFromEccAnomaly (double E) |
|
Vector3d | getPositionFromMeanAnomaly (double M) |
|
Vector3d | getPositionFromTrueAnomaly (double tA) |
|
Vector3d | getRelativePositionAtT (double T) |
| Gets the predicted displacement of the orbiting object from the center of the main body at a given time since perigee passage. NOTE: All Vector3d's returned by Orbit class functions have their y and z axes flipped. You have to flip these back to get the vectors in world coordinates. More...
|
|
Vector3d | getRelativePositionAtUT (double UT) |
| Gets the predicted displacement of the orbiting object from the center of the main body at a given universal time. NOTE: All Vector3d's returned by Orbit class functions have their y and z axes flipped. You have to flip these back to get the vectors in world coordinates. More...
|
|
Vector3d | getRelativePositionFromEccAnomaly (double E) |
|
Vector3d | getRelativePositionFromMeanAnomaly (double M) |
|
Vector3d | getRelativePositionFromTrueAnomaly (double tA) |
|
Vector3d | GetRelativeVel () |
| The velocity of the orbiting object, {World, Primary}. More...
|
|
Vector3d | GetRotFrameVel (CelestialBody refBody) |
| The velocity of a hypothetical object, located where the orbiting object is, and at rest in the ConditionallyRotating[refBody] frame, {AliceWorld, BodyCentre[refBody]}. In other words, velocity of the ConditionallyRotating[refBody] frame in the BodyCentre[refBody] frame at the position of the orbiting object (AliceWorld axes). Note: this only depends on the orbital position, not on the orbital velocity. More...
|
|
double | getTrueAnomaly (double E) |
|
double | GetTrueAnomalyOfZupVector (Vector3d vector) |
|
Vector3d | getTruePositionAtUT (double UT) |
|
double | GetUTforTrueAnomaly (double tA, double wrapAfterSeconds) |
|
Vector3d | GetVel () |
| The velocity of the orbiting object, {World, ActiveVesselPrimary}. More...
|
|
Vector3d | GetWorldSpaceVel () |
| The velocity of the orbiting object, {World, ActiveVesselPrimaryConditionallyRotating}. More...
|
|
void | Init () |
|
double | RadiusAtTrueAnomaly (double tA) |
| The distance the orbiting object will be from the center of the main body when it reaches the given true anomaly. More...
|
|
double | solveEccentricAnomaly (double M, double ecc, double maxError, int maxIterations) |
|
double | TrueAnomalyAtRadius (double R) |
| The true anomaly at which the orbiting object will achieve the given distance from the center of the main body. More...
|
|
double | TrueAnomalyAtT (double T) |
|
double | TrueAnomalyAtUT (double UT) |
|
void | UpdateFromOrbitAtUT (Orbit orbit, double UT, CelestialBody toBody) |
|
void | UpdateFromStateVectors (Vector3d pos, Vector3d vel, CelestialBody refBody, double UT) |
| Updates this orbit to reflect the orbit that will be taken around the given body by an object with the given position and velocity at the given universal time. More...
|
|
void | UpdateFromUT (double UT) |
|
|
static void | FindClosestPoints (Orbit p, Orbit s, ref double CD, ref double CCD, ref double FFp, ref double FFs, ref double SFp, ref double SFs, double epsilon, int maxIterations, ref int iterationCount) |
|
static bool | PeApIntersects (Orbit primary, Orbit secondary, double threshold) |
|
static double | SolveClosestApproach (Orbit p, Orbit s, ref double UT, double dT, double threshold, double MinUT, double MaxUT, double epsilon, int maxIterations, ref int iterationCount) |
|
static bool | SolveSOI_BSP (Orbit p, Orbit s, ref double UT, double dT, double Rsoi, double MinUT, double MaxUT, double epsilon, int maxIterations, ref int iterationCount) |
|
|
bool | activePatch |
| Whether this patch actually represents a real orbit patch in the projected flight path. Often Orbit.nextPatch for the last real will not be null, but will be some sort of bogus Orbit object. You can recognize these because activePatch will be false. More...
|
|
double | altitude |
|
Vector3d | an |
|
double | argumentOfPeriapsis |
| The angle between the ascending node and the periapsis, in degrees. More...
|
|
double | ClAppr |
|
double | ClEctr1 |
|
double | ClEctr2 |
|
CelestialBody | closestEncounterBody |
|
Orbit.EncounterSolutionLevel | closestEncounterLevel |
|
Orbit | closestEncounterPatch |
|
double | closestTgtApprUT |
|
double | CrAppr |
|
bool | debug_returnFullEllipseTrajectory |
|
Vector3 | debugAN |
|
Vector3 | debugEccVec |
|
Vector3 | debugH |
|
Vector3 | debugPos |
|
Vector3 | debugVel |
|
double | E |
|
double | eccentricAnomaly |
| A quantity used in the math describing Keplerian orbits; Google it. More...
|
|
double | eccentricity |
| The eccentricity of the orbit. More...
|
|
Vector3d | eccVec |
| A vector that points toward periapsis, with mangitude equal to the eccentricity. NOTE: All Vector3d's returned by Orbit class functions have their y and z axes flipped. You have to flip these back to get the vectors in world coordinates. More...
|
|
double | EndUT |
| The universal time at which this patch ends. More...
|
|
double | epoch |
| A special UT at which the parameters of the Orbit are defined. See meanAnomalyAtEpoch. More...
|
|
double | FEVp |
|
double | FEVs |
|
double | fromE |
|
double | fromV |
|
Vector3d | h |
| The specific orbital angular momentum More...
|
|
double | inclination |
| The inclination of this orbit with respect to the equator of the central body in degrees More...
|
|
double | LAN |
| The longitude of the ascending node of the orbit, in degrees. The LAN is the angle between the ascending node and Planetarium.right, as viewed along Planetarium.up. More...
|
|
double | mag |
|
double | meanAnomaly |
| Mean anomaly is the fraction of the orbit that has been completed, measured starting from the periapsis, multiplied by 2π. Look it up. More...
|
|
double | meanAnomalyAtEpoch |
| The mean anomaly of the orbit at the special UT given by Orbit.epoch. More...
|
|
double | nearestTT |
|
Orbit | nextPatch |
|
double | nextTT |
|
Orbit.ObjectType | objectType |
|
double | ObT |
| Time since periapsis, in seconds. More...
|
|
double | ObTAtEpoch |
| The value of ObT at the universal time given by epoch. More...
|
|
double | orbitalEnergy |
|
double | orbitalSpeed |
|
double | orbitPercent |
| Equal to More...
|
|
Orbit.PatchTransitionType | patchEndTransition |
| How the next patch follows onto this one, or FINAL if there is no patch after this one. More...
|
|
Orbit.PatchTransitionType | patchStartTransition |
|
double | period |
| The period of the orbit, in seconds. More...
|
|
Vector3d | pos |
| The position of the orbiting object, {AliceWorld, Primary}. More...
|
|
Orbit | previousPatch |
|
double | radius |
|
CelestialBody | referenceBody |
| The body orbited. More...
|
|
double | sampleInterval |
|
Vector3d | secondaryPosAtTransition1 |
|
Vector3d | secondaryPosAtTransition2 |
|
double | semiMajorAxis |
| The semi-major axis of the orbit, in meters. Equal to (PeR + ApR)/2 More...
|
|
double | SEVp |
|
double | SEVs |
|
double | StartUT |
|
double | timeToAp |
| The time until the object will reach apoapsis, in seconds. More...
|
|
double | timeToPe |
| The time unti lthe object will reach periapsis, in seconds. More...
|
|
double | timeToTransition1 |
|
double | timeToTransition2 |
|
double | toE |
|
double | toV |
|
double | trueAnomaly |
|
double | UTappr |
|
double | UTsoi |
|
double | V |
|
Vector3d | vel |
| The velocity of the orbiting object, {AliceWorld, Primary}. More...
|
|
An Orbit class represents a Keplerian orbit. Each Vessel and each CelestialBody has an Orbit. CelestialBodies and on-rails Vessels follow their Orbits exactly. Off-rails vessels (the active vessel and any nearby vessels) do not follow their orbits exactly; instead their motion is computed frame-by-frame from the forces acting on them.
A patched consics trajectory consists of a series of Orbits, called patches.
This class uses multiple axes and reference frames to describe positions and velocities.
We call the choices of axes
-
World: world coordinates. Left-handed.
-
AliceWorld: world coordinates with the y and z axes flipped. Right-handed.
We call the reference frames used
-
BodyCentre[foo]: position and velocity relative to the centre of the CelestialBody |foo|.
-
BodyRotating[foo]: position relative to the centre of the CelestialBody |foo|, velocity relative to its rotating surface.
-
ConditionallyRotating[foo]: If |foo.inverseRotation|, BodyRotating[foo], otherwise BodyCentre[foo].
-
Sun: BodyCentre[Planetarium.fetch.Sun].
-
Primary: BodyCentre[this.referenceBody].
-
ActiveVesselPrimary: If the active vessel is not null, BodyCentre[FlightGlobals.ActiveVessel.orbit.referenceBody], otherwise Sun.
-
ActiveVesselPrimaryConditionallyRotating: If the active vessel is not null, ConditionallyRotating[FlightGlobals.ActiveVessel.orbit.referenceBody], otherwise Sun.>
We use the concise notation {Axes, Frame} for describing the reference frame and axes used.