Difference between revisions of "API:Orbit"
From Kerbal Space Program Wiki
m (Blanked the page) |
Rocketdocker (talk | contribs) ({{Orphan}}) |
||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
+ | {{Orphan}} | ||
+ | {{PropertiesStart}} | ||
+ | {{Property | ||
+ | |type=double | ||
+ | |name=ApA | ||
+ | |hasget=1 | ||
+ | |desc=Apoapsis altitude, distance from the apoapsis to the surface of the reference body. | ||
+ | }} | ||
+ | {{Property | ||
+ | |type=double | ||
+ | |name=ApR | ||
+ | |hasget=1 | ||
+ | |desc=Apoapsis radius, distance from the apoapsis to the center of the reference body. | ||
+ | }} | ||
+ | {{Property | ||
+ | |type=double | ||
+ | |name=PeA | ||
+ | |hasget=1 | ||
+ | |desc=Periapsis altitude, distance from the periapsis to the surface of the reference body. | ||
+ | }} | ||
+ | {{Property|type=double | ||
+ | |name=PeR | ||
+ | |hasget=1 | ||
+ | |desc=Periapsis radius, distance from the periapsis to the center of the reference body. | ||
+ | }} | ||
+ | {{Property | ||
+ | |type=double | ||
+ | |name=semiLatusRectum | ||
+ | |hasget=1 | ||
+ | |desc=Semi-latus rectum, half the length of the chord parallel to the directrix through one of the orbit's foci. | ||
+ | }} | ||
+ | {{Property | ||
+ | |type=double | ||
+ | |name=semiMinorAxis | ||
+ | |hasget=1 | ||
+ | |desc=Semi-minor axis, half the length of the shorter axis through the center of the orbit. | ||
+ | }} | ||
+ | {{PropertiesEnd}} | ||
+ | {{FieldsStart}} | ||
+ | {{Field | ||
+ | |type=bool | ||
+ | |name=activePatch | ||
+ | }} | ||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=altitude | ||
+ | |desc=Height above the surface of the reference body, including liquid bodies. | ||
+ | }} | ||
+ | {{Field | ||
+ | |type=Vector3d | ||
+ | |name=an | ||
+ | }} | ||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=argumentOfPeriapsis | ||
+ | |desc=[[w:Argument of periapsis|Argument of periapsis]] (degrees) | ||
+ | }} | ||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=ClAppr | ||
+ | |desc=Presumably the distance to the target at closest approach agnostic of encounters, in meters). | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=ClEctr1 | ||
+ | |desc= presumably as distance to target during the next closest encounter, in meters. | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=ClEctr2 | ||
+ | |desc=Second closest encounter, as an unknown quantity (presumably distance to target, in meters). | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=CelestialBody | ||
+ | |name=closestEncounterBody | ||
+ | |desc=The next celestial body to be encountered. | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=EncounterSolutionLevel | ||
+ | |name=closestEncounterLevel | ||
+ | |desc=The type of the next closest encounter, constrained to the values enumerated in EncounterSolutionLevel. | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=Orbit | ||
+ | |name=closestEncounterPath | ||
+ | |desc=The Orbit around the next celestial body to be encountered. | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=closestTgtApprUT | ||
+ | |desc=The time of the next closest approach, in Universal Time. | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=crAppr | ||
+ | |desc=Unknown type of approach type, presumably distance in meters. | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=bool | ||
+ | |name=debug_returnFullEllipseTrajectory | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=Vector3 | ||
+ | |name=debugAN | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=Vector3 | ||
+ | |name=debugEccVec | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=Vector3 | ||
+ | |name=debugH | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=Vector3 | ||
+ | |name=debugPos | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=Vector3 | ||
+ | |name=debugVel | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=E | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=eccentricAnomaly | ||
+ | |desc=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. | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=eccentricity | ||
+ | |desc=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) | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=Vector3d | ||
+ | |name=eccVec | ||
+ | |desc=The eccentricity vector of the orbit, whose magnitude is the eccentricity. | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=EndUT | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=epoch | ||
+ | |desc=The reference time of the orbit, presumably in Universal Time. | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=FEVp | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=FEVs | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=fromE | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=fromV | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=Vector3d | ||
+ | |name=h | ||
+ | |desc=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. | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=inclination | ||
+ | |desc=The inclination of the orbit above the reference plane (degrees) | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=LAN | ||
+ | |desc=[[w:Longitude of the ascending node|Longitude of the ascending node]] (degrees) | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=mag | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=meanAnomaly | ||
+ | |desc=Current [[w:Mean Anomaly|mean anomaly]] (radians, not an angle) | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=meanAnomalyAtEpoch | ||
+ | |desc=[[w:Mean Anomaly|Mean anomaly]] at epoch (radians, not an angle) | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=nearestTT | ||
+ | |desc=Obsolete, Use VesselType or CelestialBodyType instead. | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=ObT | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=ObTAtEpoch | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=orbitalEnergy | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=orbitalSpeed | ||
+ | |desc=The current orbital speed(m/s). Use Orbit.vel.magnitude to get the actual orbital speed instead. | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=orbitalPercent | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=PatchTransitionType | ||
+ | |name=patchEndTransition | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=PatchTransitionType | ||
+ | |name=patchStartTransition | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=period | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=Vector3d | ||
+ | |name=pos | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=Orbit | ||
+ | |name=previousPatch | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=radius | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=CelestialBody | ||
+ | |name=referenceBody | ||
+ | |desc=CelestialBody around which you are orbiting. | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=sampleInterval | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=Vector3d | ||
+ | |name=secondaryPosAtTransition1 | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=Vector3d | ||
+ | |name=secondaryPosAtTransition2 | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=semiMajorAxis | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=SEVp | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=SEVs | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=StartUT | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=timeToAp | ||
+ | |desc=Time in seconds before reach the apoapsis. | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=timeToPe | ||
+ | |desc=Time in seconds before reach the periapsis. | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=timeToTransition1 | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=timeToTransition2 | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=toE | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=toV | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=trueAnomaly | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=UTappr | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=UTsoi | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=double | ||
+ | |name=V | ||
+ | }} | ||
+ | |||
+ | {{Field | ||
+ | |type=Vector3d | ||
+ | |name=vel | ||
+ | |desc=Actual orbital velocity (orbital speed). | ||
+ | }} | ||
+ | {{FieldsEnd}} | ||
+ | |||
+ | {{MethodsStart}} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=static | ||
+ | |name=Orbit | ||
+ | |args= | ||
+ | }} | ||
+ | {{Method | ||
+ | |returntype=public | ||
+ | |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}} | ||
+ | |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 | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=void | ||
+ | |name=DrawOrbit | ||
+ | |args= | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=static void | ||
+ | |name=FindClosestPoints | ||
+ | |args={{arg|Orbit|p}},{{arg|Orbit|s}},{{arg|ref double|CD}},{{arg|ref double CCD}},{{arg|ref double|FFp}},{{arg|ref double|FFs}},{{arg|ref double|SFp}},{{arg|ref double SFs}},{{arg|double|epsilon}},{{arg|int|maxIterations}},{{arg|ref int|iterationCount}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=GetANVector | ||
+ | |args= | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=GetDTforTrueAnomaly | ||
+ | |args={{arg|double|tA}},{{arg|double|wrapAfterSeconds}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=GetEccentricAnomaly | ||
+ | |args={{arg|double|tA}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=GetEccVector | ||
+ | |args= | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=GetFrameVel | ||
+ | |args= | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=GetFrameVelAtUT | ||
+ | |args={{arg|double|UT}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=GetMeanAnomaly | ||
+ | |args={{arg|double|E}},{{arg|double|tA}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=getObTAtMeanAnomaly | ||
+ | |args={{arg|double|M}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=getObtAtUT | ||
+ | |args={{arg|double|UT}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=getOrbitalSpeedAt | ||
+ | |args={{arg|double|time}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=getOrbitalSpeedAtDistance | ||
+ | |args={{arg|double|d}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=getOrbitalSpeedAtPos | ||
+ | |args={{arg|Vector3d|pos}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=getOrbitalSpeedAtRelativePos | ||
+ | |args={{arg|Vector3d|relPos}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=getOrbitalVelocityAtObT | ||
+ | |args={{arg|double|ObT}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=getOrbitalVelocityAtUT | ||
+ | |args={{arg|double|UT}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=GetOrbitNormal() | ||
+ | |args= | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Trajectory | ||
+ | |name=GetPatchTrajectory | ||
+ | |args={{arg|int|sampleCount}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=getPositionAtT | ||
+ | |args={{arg|double|T}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=getPositionAtUT | ||
+ | |args={{arg|double|UT}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=getPositionFromEccAnomaly | ||
+ | |args={{arg|double|E}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=getPositionFromMeanAnomaly | ||
+ | |args={{arg|double|M}} | ||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=getPositionFromTrueAnomaly | ||
+ | |args={{arg|double|tA}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=getRelativePositionAtT | ||
+ | |args={{arg|double|T}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | |||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=getRelativePositionAtUT | ||
+ | |args={{arg|double|UT}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=getRelativePositionFromEccAnomaly | ||
+ | |args={{arg|double|E}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=getRelativePositionFromMeanAnomaly | ||
+ | |args={{arg|double|m}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=getRelativePositionFromTrueAnomaly | ||
+ | |args={{arg|double|tA}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=GetRelativeVel | ||
+ | |args= | ||
+ | |||
+ | }} | ||
+ | |||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=GetRotFrameVel | ||
+ | |args={{arg|CelestialBody|refBody}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=getTrueAnomaly | ||
+ | |args={{arg|double|E}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=GetTrueAnomalyOfZupVector | ||
+ | |args={{arg|Vector3d|vector}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=getTruePositionAtUT | ||
+ | |args={{arg|double|UT}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=GetUTforTrueAnomaly | ||
+ | |args={{arg|double|tA}},{{arg|double|wrapAfterSeconds}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=GetVel | ||
+ | |args= | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=Vector3d | ||
+ | |name=GetWorldSpaceVel | ||
+ | |args= | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=static bool | ||
+ | |name=PeApIntersects | ||
+ | |args={{arg|Orbit|primary}},{{arg|Orbit|secondary}},{{arg|double|threshold}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=RadiusAtTrueAnomaly | ||
+ | |args={{arg|double|tA}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=static double | ||
+ | |name=SolveClosestApproach | ||
+ | |args={{arg|Orbit|p}},{{arg|Orbit|s}},{{arg|ref double|UT}},{{arg|double|dT}},{{arg|double|threshold}},{{arg|double|MinUT}},{{arg|double|MaxUT}},{{arg|double|epsilon}},{{arg|int|maxIterations}},{{arg|ref int|iterationCount}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=static double | ||
+ | |name=SolveClosestBSP | ||
+ | |args={{arg|ref double|Fp}},{{arg|ref double|Fs}},{{arg|double|Ir}},{{arg|double|dF}},{{arg|Orbit|p}},{{arg|orbit|s}},{{arg|double|epsilon}},{{arg|int|maxIterations}},{{arg|ref int|iterationCount}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=solveEccentricAnomaly | ||
+ | |args={{arg|double|M}},{{arg|double|ecc}},{{arg|double|maxError}},{{arg|int|maxIterations}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=static bool | ||
+ | |name=SolveSOI_BSP | ||
+ | |args={{arg|Orbit|p}},{{arg|Orbit|s}},{{arg|ref double|UT}},{{arg|double|dT}},{{arg|double|Rsoi}},{{arg|double|MinUT}},{{arg|double|MaxUT}},{{arg|double|epsilon}},{{arg|int|maxIterations}},{{arg|ref int|iterationCount}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=TrueAnomalyAtRadius | ||
+ | |args={{arg|double|R}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=TrueAnomalyAtT | ||
+ | |args={{arg|double|T}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=double | ||
+ | |name=TrueAnomalyAtUT | ||
+ | |args={{arg|double|UT}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=void | ||
+ | |name=UpdateFromOrbitAtUT | ||
+ | |args={{arg|Orbit|orbit}},{{arg|double|UT}},{{arg|CelestialBody|toBody}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=void | ||
+ | |name=UpdateFromStateVectors | ||
+ | |args={{arg|Vector3d|pos}},{{arg|Vector3d|vel}},{{arg|CelestialBody|refBody}},{{arg|double|UT}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Method | ||
+ | |returntype=void | ||
+ | |name=UpdateFromUT | ||
+ | |args={{arg|double|UT}} | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{MethodsEnd}} | ||
+ | |||
+ | == 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 '''[[API:FlightGlobals|FlightGlobals]].[[API:FlightGlobals|ActiveVessel]].orbit.ApA''' to get the actual Apoapsis of the vessel controlled by the player.<br /> | ||
+ | -Use '''[[API:FlightGlobals|FlightGlobals]].[[API:FlightGlobals|ActiveVessel]].orbit.vel.magnitude''' to get the actual orbital speed in m/s of the vessel controlled by the player. | ||
+ | [[Category:Community API Documentation]] |
Latest revision as of 17:32, 22 January 2020
Contents
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.