Difference between revisions of "API:Orbit"

From Kerbal Space Program Wiki
Jump to: navigation, search
({{Orphan}})
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
+
{{Orphan}}
 
{{PropertiesStart}}
 
{{PropertiesStart}}
 
{{Property
 
{{Property
Line 397: Line 397:
 
|name=Orbit
 
|name=Orbit
 
|args={{arg|double|inc}},{{arg|double|e}},{{arg|double|sma}},{{arg|double|lan}},{{arg|double|w}},{{arg|double|mEp}},{{arg|double|t}},{{arg|CelestialBody|body}}
 
|args={{arg|double|inc}},{{arg|double|e}},{{arg|double|sma}},{{arg|double|lan}},{{arg|double|w}},{{arg|double|mEp}},{{arg|double|t}},{{arg|CelestialBody|body}}
 +
|desc="inc" is probably inclination, "e" is probably eccentricity, "sma" is probably semi-major axis, "lan" is probably longitude of the ascending node, "w" is probably the argument of periapsis (omega), and mEp is probably a mean anomaly at some time, like epoch, and t is probably current time, See https://en.wikipedia.org/wiki/Orbital_elements
 
}}
 
}}
  

Latest revision as of 17:32, 22 January 2020

This page is an orphan, as no other articles link to it.


Properties

The following are public properties available in Orbit.

Signature Description
double ApA { get; } Apoapsis altitude, distance from the apoapsis to the surface of the reference body.
double ApR { get; } Apoapsis radius, distance from the apoapsis to the center of the reference body.
double PeA { get; } Periapsis altitude, distance from the periapsis to the surface of the reference body.
double PeR { get; } Periapsis radius, distance from the periapsis to the center of the reference body.
double semiLatusRectum { get; } Semi-latus rectum, half the length of the chord parallel to the directrix through one of the orbit's foci.
double semiMinorAxis { get; } Semi-minor axis, half the length of the shorter axis through the center of the orbit.

Fields

The following is a list of publically-accessible fields in Orbit. This includes protected items, which can be accessed by subclasses.

Signature Description
bool activePatch ?
double altitude Height above the surface of the reference body, including liquid bodies.
Vector3d an ?
double argumentOfPeriapsis Argument of periapsis (degrees)
double ClAppr Presumably the distance to the target at closest approach agnostic of encounters, in meters).
double ClEctr1 presumably as distance to target during the next closest encounter, in meters.
double ClEctr2 Second closest encounter, as an unknown quantity (presumably distance to target, in meters).
CelestialBody closestEncounterBody The next celestial body to be encountered.
EncounterSolutionLevel closestEncounterLevel The type of the next closest encounter, constrained to the values enumerated in EncounterSolutionLevel.
Orbit closestEncounterPath The Orbit around the next celestial body to be encountered.
double closestTgtApprUT The time of the next closest approach, in Universal Time.
double crAppr Unknown type of approach type, presumably distance in meters.
bool debug_returnFullEllipseTrajectory ?
Vector3 debugAN ?
Vector3 debugEccVec ?
Vector3 debugH ?
Vector3 debugPos ?
Vector3 debugVel ?
double E ?
double eccentricAnomaly The eccentric anomaly of the orbit, corresponding to the angle between the periapsis and the current projected position on a circle of radius equal to the semimajor axis.
double eccentricity The eccentricity of the orbit, describing the deviation of the orbit from a perfect circle, from 0 to 1 exclusive for elliptical and 1 to infinity exclusive for hyperbolic (0 being circular and 1 being parabolic)
Vector3d eccVec The eccentricity vector of the orbit, whose magnitude is the eccentricity.
double EndUT ?
double epoch The reference time of the orbit, presumably in Universal Time.
double FEVp ?
double FEVs ?
double fromE ?
double fromV ?
Vector3d h The specific relative angular momentum vector of the orbit in meters squared per second, being specifically relative to the celestial body around which the orbit exists.
double inclination The inclination of the orbit above the reference plane (degrees)
double LAN Longitude of the ascending node (degrees)
double mag ?
double meanAnomaly Current mean anomaly (radians, not an angle)
double meanAnomalyAtEpoch Mean anomaly at epoch (radians, not an angle)
double nearestTT Obsolete, Use VesselType or CelestialBodyType instead.
double ObT ?
double ObTAtEpoch ?
double orbitalEnergy ?
double orbitalSpeed The current orbital speed(m/s). Use Orbit.vel.magnitude to get the actual orbital speed instead.
double orbitalPercent ?
PatchTransitionType patchEndTransition ?
PatchTransitionType patchStartTransition ?
double period ?
Vector3d pos ?
Orbit previousPatch ?
double radius ?
CelestialBody referenceBody CelestialBody around which you are orbiting.
double sampleInterval ?
Vector3d secondaryPosAtTransition1 ?
Vector3d secondaryPosAtTransition2 ?
double semiMajorAxis ?
double SEVp ?
double SEVs ?
double StartUT ?
double timeToAp Time in seconds before reach the apoapsis.
double timeToPe Time in seconds before reach the periapsis.
double timeToTransition1 ?
double timeToTransition2 ?
double toE ?
double toV ?
double trueAnomaly ?
double UTappr ?
double UTsoi ?
double V ?
Vector3d vel Actual orbital velocity (orbital speed).

Methods

The following are methods included in Orbit.

Signature Description
static Orbit() ?
public Orbit(double inc,double e,double sma,double lan,double w,double mEp,double t,CelestialBody body) "inc" is probably inclination, "e" is probably eccentricity, "sma" is probably semi-major axis, "lan" is probably longitude of the ascending node, "w" is probably the argument of periapsis (omega), and mEp is probably a mean anomaly at some time, like epoch, and t is probably current time, See https://en.wikipedia.org/wiki/Orbital_elements
void DrawOrbit() ?
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) ?
Vector3d GetANVector() ?
double GetDTforTrueAnomaly(double tA,double wrapAfterSeconds) ?
double GetEccentricAnomaly(double tA) ?
Vector3d GetEccVector() ?
Vector3d GetFrameVel() ?
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()() ?
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) ?


Vector3d getRelativePositionAtUT(double UT) ?


Vector3d getRelativePositionFromEccAnomaly(double E) ?


Vector3d getRelativePositionFromMeanAnomaly(double m) ?


Vector3d getRelativePositionFromTrueAnomaly(double tA) ?


Vector3d GetRelativeVel() ?


Vector3d GetRotFrameVel(CelestialBody refBody) ?


double getTrueAnomaly(double E) ?


double GetTrueAnomalyOfZupVector(Vector3d vector) ?
Vector3d getTruePositionAtUT(double UT) ?
double GetUTforTrueAnomaly(double tA,double wrapAfterSeconds) ?
Vector3d GetVel() ?
Vector3d GetWorldSpaceVel() ?
static bool PeApIntersects(Orbit primary,Orbit secondary,double threshold) ?
double RadiusAtTrueAnomaly(double tA) ?
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 double SolveClosestBSP(ref double Fp,ref double Fs,double Ir,double dF,Orbit p,orbit s,double epsilon,int maxIterations,ref int iterationCount) ?
double solveEccentricAnomaly(double M,double ecc,double maxError,int maxIterations) ?
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) ?
double TrueAnomalyAtRadius(double R) ?
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) ?
void UpdateFromUT(double UT) ?

Enumerations

public enum EncounterSolutionLevel {

NONE,
ESCAPE,
ORBIT_INTERSECT,
SOI_INTERSECT_2,
SOI_INTERSECT_1

}

public enum ObjectType {

VESSEL,
SPACE_DEBRIS,
CELESTIAL_BODIES,
UNKOWN_MISC,
KERBAL

}

public enum PatchTransitionType{

INITIAL,
FINAL,
ENCOUNTER,
ESCAPE,
MANEUVER

}

Tips

-Use FlightGlobals.ActiveVessel.orbit.ApA to get the actual Apoapsis of the vessel controlled by the player.
-Use FlightGlobals.ActiveVessel.orbit.vel.magnitude to get the actual orbital speed in m/s of the vessel controlled by the player.