Skip to content

Latest commit

 

History

History
1782 lines (1102 loc) · 66.2 KB

orbit.md

File metadata and controls

1782 lines (1102 loc) · 66.2 KB

ksp::orbit

Types

Body

Represents an in-game celestial body.

Fields

Name Type Read-only Description
SOI_radius float R/O Radius of the sphere of influence of the body
angular_velocity ksp::math::Vec3 R/O Angular velocity vector of the body
atmosphere_depth float R/O Depth/height of the atmosphere if present.
body_frame ksp::math::TransformFrame R/O The body/rotating reference frame of the body.
celestial_frame ksp::math::TransformFrame R/O The celestial/non-rotating reference frame of the body.
global_angular_velocity ksp::math::GlobalAngularVelocity R/O Angular velocity vector of the body (coordinate system independent)
global_position ksp::math::GlobalPosition R/O The current position of the body (coordinate system independent)
global_right ksp::math::GlobalVector R/O Right vector of the body (coordinate system independent)
global_up ksp::math::GlobalVector R/O Up vector of the body (coordinate system independent)
grav_parameter float R/O Standard gravitation parameter of the body.
has_atmosphere bool R/O true if the celestial body has an atmosphere to deal with.
name string R/O Name of the celestial body.
orbit ksp::orbit::Orbit R/O The orbit of the celestial body itself (around the parent body)
orbiting_bodies ksp::orbit::Body[] R/O Get all celestial bodies in orbit around this body (aka child bodies).
parent_body Option<ksp::orbit::Body> R/O Get the celestial body this celestial body orbits if it exists (aka the parent body).
position ksp::math::Vec3 R/O The current position of the body
radius float R/O Radius of the body at sea level
right ksp::math::Vec3 R/O Right vector of the body in its celestial frame
rotation_period float R/O Rotation period of the planet.
up ksp::math::Vec3 R/O Up vector of the body in its celestial frame
waypoints ksp::orbit::Waypoint[] R/O List of all waypoints defined on the body

Methods

atmosphere_density
body.atmosphere_density ( altitude : float ) -> float

Get atmospheric density at a given altitude

Parameters

Name Type Optional Description
altitude float
atmosphere_pressure_kpa
body.atmosphere_pressure_kpa ( altitude : float ) -> float

Get atmospheric pressure in kPa at a given altitude

Parameters

Name Type Optional Description
altitude float
atmosphere_temperature
body.atmosphere_temperature ( altitude : float ) -> float

Get temperature of atmosphere at a given altitude

Parameters

Name Type Optional Description
altitude float
create_orbit
body.create_orbit ( position : ksp::math::Vec3,
                    velocity : ksp::math::Vec3,
                    ut : float ) -> ksp::orbit::Orbit

Create a new orbit around this body starting at a given relative position and velocity at universal time ut

Parameters

Name Type Optional Description
position ksp::math::Vec3
velocity ksp::math::Vec3
ut float
geo_coordinates
body.geo_coordinates ( latitude : float,
                       longitude : float ) -> ksp::orbit::GeoCoordinates

Get GeoCoordinates struct representing a latitude and longitude of the body

Parameters

Name Type Optional Description
latitude float Latitude in degrees
longitude float Longitude in degrees
global_create_orbit
body.global_create_orbit ( velocity : ksp::math::GlobalVelocity,
                           ut : float ) -> ksp::orbit::Orbit

Create a new orbit around this body starting at a given a coordinate independent velocity at universal time ut

Parameters

Name Type Optional Description
velocity ksp::math::GlobalVelocity
ut float
global_surface_normal
body.global_surface_normal ( latitude : float,
                             longitude : float ) -> ksp::math::GlobalVector

Get the surface normal at a latitude and longitude (i.e. the vector pointing up at this geo coordinate, coordinate system independent)

Parameters

Name Type Optional Description
latitude float Latitude in degrees
longitude float Longitude in degrees
global_surface_position
body.global_surface_position ( latitude : float,
                               longitude : float,
                               altitude : float ) -> ksp::math::GlobalPosition

Position of a latitude and longitude at an altitude relative to sea-level (coordinate system independent)

Parameters

Name Type Optional Description
latitude float Latitude in degrees
longitude float Longitude in degrees
altitude float Altitude relative to sea-level
surface_normal
body.surface_normal ( latitude : float,
                      longitude : float ) -> ksp::math::Vec3

Get the surface normal at a latitude and longitude (i.e. the vector pointing up at this geo coordinate)

Parameters

Name Type Optional Description
latitude float Latitude in degrees
longitude float Longitude in degrees
surface_position
body.surface_position ( latitude : float,
                        longitude : float,
                        altitude : float ) -> ksp::math::Vec3

Position of a latitude and longitude at an altitude relative to sea-level in the celestial frame of the body

Parameters

Name Type Optional Description
latitude float Latitude in degrees
longitude float Longitude in degrees
altitude float Altitude relative to sea-level
terrain_height
body.terrain_height ( latitude : float,
                      longitude : float ) -> float

Height of the terrain relative to sea-level at latitude and longitude

Parameters

Name Type Optional Description
latitude float Latitude in degrees
longitude float Longitude in degrees

GeoCoordinates

Represents a geo coordinate (longitude, latitude) of a specific celestial body.

Fields

Name Type Read-only Description
body ksp::orbit::Body R/O The celestial body the geo coordinate is based on.
global_surface_normal ksp::math::GlobalVector R/O Coordinate system independent surface normal (i.e. up vector)
latitude float R/W Latitude in degrees
longitude float R/W Longitude in degrees
surface_normal ksp::math::Vec3 R/O The surface normal (i.e. up vector) in the celestial frame of the body
terrain_height float R/O Height of the terrain relative to sea-level

Methods

altitude_position
geocoordinates.altitude_position ( altitude : float ) -> ksp::math::Vec3

Position of the geo coordinate in the celestial frame of the body

Parameters

Name Type Optional Description
altitude float Altitude relative to sea-level
global_altitude_position
geocoordinates.global_altitude_position ( altitude : float ) -> ksp::math::GlobalPosition

Coordinate system independent position of the geo coordinate

Parameters

Name Type Optional Description
altitude float Altitude relative to sea-level

Orbit

Represents an in-game orbit.

Fields

Name Type Read-only Description
LAN float R/O Longitude of ascending node of the orbit in degree
apoapsis Option<float> R/O Apoapsis of the orbit above sealevel of the reference_body. Is not defined for a hyperbolic orbit
apoapsis_radius Option<float> R/O Radius of apoapsis of the orbit (i.e. from the center of the `reference_body'). Is not defined for a hyperbolic orbit
argument_of_periapsis float R/O Argument of periapsis of the orbit.
eccentricity float R/O Eccentricity of the orbit.
epoch float R/O Orbit epoch.
global_orbit_normal ksp::math::GlobalVector R/O Get the coordinate independent normal vector of the orbit
inclination float R/O Inclination of the orbit in degree.
mean_anomaly_at_epoch float R/O Mean anomaly of the orbit at epoch
mean_motion float R/O Mean motion of the orbit.
orbit_normal ksp::math::Vec3 R/O Normal vector perpendicular to orbital plane.
periapsis float R/O Periapsis of the orbit above sealevel of the reference_body
periapsis_radius float R/O Radius of periapsis of the orbit (i.e. from the center of the `reference_body')
period float R/O Orbital period.
reference_body ksp::orbit::Body R/O The celestial body the orbit is referenced on.
reference_frame ksp::math::TransformFrame R/O Internal reference frame of the orbit. This might be useful to compare numbers. Note: All relative vectors are in the celestial frame of the reference_body which might be different!
relative_ascending_node ksp::math::Vec3 R/O Get the relative position of the ascending node.
relative_eccentricity_vector ksp::math::Vec3 R/O Get the relative eccentricity vector.
semi_major_axis float R/O Semi major axis of the orbit.

Methods

ascending_node_true_anomaly
orbit.ascending_node_true_anomaly ( b : ksp::orbit::Orbit ) -> float

Gives the true anomaly (in a's orbit) at which a crosses its ascending node with b's orbit. The returned value is always between 0 and 360.

Parameters

Name Type Optional Description
b ksp::orbit::Orbit
descending_node_true_anomaly
orbit.descending_node_true_anomaly ( b : ksp::orbit::Orbit ) -> float

Gives the true anomaly (in a's orbit) at which a crosses its descending node with b's orbit. The returned value is always between 0 and 360.

Parameters

Name Type Optional Description
b ksp::orbit::Orbit
get_eccentric_anomaly_at_true_anomaly
orbit.get_eccentric_anomaly_at_true_anomaly ( trueAnomaly : float ) -> float

Converts a true anomaly into an eccentric anomaly. For elliptical orbits this returns a value between 0 and 2pi. For hyperbolic orbits the returned value can be any number.

Parameters

Name Type Optional Description
trueAnomaly float
get_mean_anomaly_at_eccentric_anomaly
orbit.get_mean_anomaly_at_eccentric_anomaly ( ecc : float ) -> float

Converts an eccentric anomaly into a mean anomaly. For an elliptical orbit, the returned value is between 0 and 2pi. For a hyperbolic orbit, the returned value is any number.

Parameters

Name Type Optional Description
ecc float
global_position
orbit.global_position ( ut : float ) -> ksp::math::GlobalPosition

Get the coordinate independent position at a given universal time ut. Note: This takes the motion of the parent body into account.

Parameters

Name Type Optional Description
ut float
global_position_for_true_anomaly
orbit.global_position_for_true_anomaly ( trueAnomaly : float ) -> ksp::math::GlobalPosition

Get the coordinate independent position for a given trueAnomaly

Parameters

Name Type Optional Description
trueAnomaly float
global_relative_position
orbit.global_relative_position ( ut : float ) -> ksp::math::GlobalVector

Shorthand for orbit.global_position(ut) - orbit.reference_body.orbit.global_position(ut)

Parameters

Name Type Optional Description
ut float
global_velocity
orbit.global_velocity ( ut : float ) -> ksp::math::GlobalVelocity

Get the coordinate independent velocity at a given universal time ut. Note: This takes the motion of the parent body into account.

Parameters

Name Type Optional Description
ut float
horizontal
orbit.horizontal ( ut : float ) -> ksp::math::Vec3

Relative horizontal vector at a given universal time ut

Parameters

Name Type Optional Description
ut float
mean_anomaly_at_ut
orbit.mean_anomaly_at_ut ( ut : float ) -> float

The mean anomaly of the orbit. For elliptical orbits, the value return is always between 0 and 2pi. For hyperbolic orbits, the value can be any number.

Parameters

Name Type Optional Description
ut float
next_apoapsis_time
orbit.next_apoapsis_time ( ut : Option<float> ) -> Option<float>

Returns the next time at which the orbiting object will be at apoapsis after a given universal time ut. If ut is omitted the current time will be used. For elliptical orbits, this will be between ut and ut + Period. For hyperbolic orbits, this is undefined.

Parameters

Name Type Optional Description
ut Option x
next_periapsis_time
orbit.next_periapsis_time ( ut : Option<float> ) -> float

The next time at which the orbiting object will be at periapsis after a given universal time ut. If ut is omitted the current time will be used. For elliptical orbits, this will be between ut and ut + Period. For hyperbolic orbits, this can be any time, including a time in the past, if the periapsis is in the past.

Parameters

Name Type Optional Description
ut Option x
next_time_of_radius
orbit.next_time_of_radius ( ut : float,
                            radius : float ) -> Option<float>

Finds the next time at which the orbiting object will achieve a given radius from center of the body after a given universal time ut. This will be undefined if the specified radius is impossible for this orbit, otherwise: For elliptical orbits this will be a time between ut and ut + period. For hyperbolic orbits this can be any time. If the given radius will be achieved in the future then the next time at which that radius will be achieved will be returned. If the given radius was only achieved in the past, then there are no guarantees about which of the two times in the past will be returned.

Parameters

Name Type Optional Description
ut float
radius float
normal_plus
orbit.normal_plus ( ut : float ) -> ksp::math::Vec3

The relative normal-plus vector at a given universal time ut

Parameters

Name Type Optional Description
ut float
orbital_velocity
orbit.orbital_velocity ( ut : float ) -> ksp::math::Vec3

Get the relative orbital velocity at a given universal time ut

Parameters

Name Type Optional Description
ut float
perturbed_orbit
orbit.perturbed_orbit ( ut : float,
                        dV : ksp::math::Vec3 ) -> ksp::orbit::Orbit

Returns a new Orbit object that represents the result of applying a given relative deltaV to o at ut. Note: The resulting orbit is calculated as if the velocity change happens instantaneously, which might lead to unrealistic results for larger deltaV. The main use-case of this method is to be used as part of an orbit-optimization algorithm as it is quiet fast.

Parameters

Name Type Optional Description
ut float
dV ksp::math::Vec3
prograde
orbit.prograde ( ut : float ) -> ksp::math::Vec3

The relative prograde vector at a given universal time ut

Parameters

Name Type Optional Description
ut float
radial_plus
orbit.radial_plus ( ut : float ) -> ksp::math::Vec3

The relative radial-plus vector at a given universal time ut

Parameters

Name Type Optional Description
ut float
radius
orbit.radius ( ut : float ) -> float

Get the orbital radius (distance from center of body) at a given universal time ut

Parameters

Name Type Optional Description
ut float
relative_position
orbit.relative_position ( ut : float ) -> ksp::math::Vec3

Get relative position at a given universal time ut

Parameters

Name Type Optional Description
ut float
relative_position_for_true_anomaly
orbit.relative_position_for_true_anomaly ( trueAnomaly : float ) -> ksp::math::Vec3

Get relative position for a given trueAnomaly

Parameters

Name Type Optional Description
trueAnomaly float
synodic_period
orbit.synodic_period ( other : ksp::orbit::Orbit ) -> float

Computes the period of the phase angle between orbiting objects of this orbit and and other orbit. For noncircular orbits the time variation of the phase angle is only quasiperiodic and for high eccentricities and/or large relative inclinations, the relative motion is not really periodic at all.

Parameters

Name Type Optional Description
other ksp::orbit::Orbit
time_of_ascending_node
orbit.time_of_ascending_node ( b : ksp::orbit::Orbit,
                               maybeUt : Option<float> ) -> float

Returns the next time at which a will cross its ascending node with b. For elliptical orbits this is a time between UT and UT + a.period. For hyperbolic orbits this can be any time, including a time in the past if the ascending node is in the past. NOTE: this function will throw an ArgumentException if a is a hyperbolic orbit and the ascending node occurs at a true anomaly that a does not actually ever attain. If ut is omitted the current time will be used.

Parameters

Name Type Optional Description
b ksp::orbit::Orbit
maybeUt Option x
time_of_descending_node
orbit.time_of_descending_node ( b : ksp::orbit::Orbit,
                                maybeUt : Option<float> ) -> float

Returns the next time at which a will cross its descending node with b. For elliptical orbits this is a time between UT and UT + a.period. For hyperbolic orbits this can be any time, including a time in the past if the descending node is in the past. NOTE: this function will throw an ArgumentException if a is a hyperbolic orbit and the descending node occurs at a true anomaly that a does not actually ever attain. If ut is omitted the current time will be used

Parameters

Name Type Optional Description
b ksp::orbit::Orbit
maybeUt Option x
time_of_true_anomaly
orbit.time_of_true_anomaly ( trueAnomaly : float,
                             maybeUt : Option<float> ) -> float

Next time of a certain true anomaly after a given universal time ut. If ut is omitted the current time will be used

Parameters

Name Type Optional Description
trueAnomaly float
maybeUt Option x
to_fixed
orbit.to_fixed ( decimals : int ) -> string

Convert orbital parameter to string using specified number of decimals

Parameters

Name Type Optional Description
decimals int
to_string
orbit.to_string ( ) -> string

Convert orbital parameters to string.

true_anomaly_at_radius
orbit.true_anomaly_at_radius ( radius : float ) -> float

Get the true anomaly of a radius. If the radius is below the periapsis the true anomaly of the periapsis will be returned. If it is above the apoapsis the true anomaly of the apoapsis is returned. The returned value is always between 0 and 2pi.

Parameters

Name Type Optional Description
radius float
true_anomaly_at_ut
orbit.true_anomaly_at_ut ( ut : float ) -> float

The true anomaly of the orbit at a given universal type ut. The vector is projected into the orbital plane and then the true anomaly is computed as the angle this vector makes with the vector pointing to the periapsis. The returned value is always between 0 and 2pi.

Parameters

Name Type Optional Description
ut float
true_anomaly_from_vector
orbit.true_anomaly_from_vector ( vec : ksp::math::Vec3 ) -> float

Converts a relative direction, into a true anomaly. The vector is projected into the orbital plane and then the true anomaly is computed as the angle this vector makes with the vector pointing to the periapsis. The returned value is always between 0 and 2pi.

Parameters

Name Type Optional Description
vec ksp::math::Vec3
up
orbit.up ( ut : float ) -> ksp::math::Vec3

Relative up vector of the orbit at a given universal time ut

Parameters

Name Type Optional Description
ut float
ut_at_mean_anomaly
orbit.ut_at_mean_anomaly ( meanAnomaly : float,
                           ut : float ) -> float

The next time at which the orbiting object will reach the given mean anomaly. For elliptical orbits, this will be a time between UT and UT + o.period. For hyperbolic orbits, this can be any time, including a time in the past, if the given mean anomaly occurred in the past

Parameters

Name Type Optional Description
meanAnomaly float
ut float

OrbitPatch

Represents a orbit patch of a trajectory

Fields

Name Type Read-only Description
LAN float R/O Longitude of ascending node of the orbit in degree
apoapsis Option<float> R/O Apoapsis of the orbit above sealevel of the reference_body. Is not defined for a hyperbolic orbit
apoapsis_radius Option<float> R/O Radius of apoapsis of the orbit (i.e. from the center of the `reference_body'). Is not defined for a hyperbolic orbit
argument_of_periapsis float R/O Argument of periapsis of the orbit.
eccentricity float R/O Eccentricity of the orbit.
end_transition ksp::orbit::PatchTransitionType R/O Get transition type at the end of the orbit patch
end_ut float R/O Universal time of the start of the orbit patch
epoch float R/O Orbit epoch.
global_orbit_normal ksp::math::GlobalVector R/O Get the coordinate independent normal vector of the orbit
inclination float R/O Inclination of the orbit in degree.
mean_anomaly_at_epoch float R/O Mean anomaly of the orbit at epoch
mean_motion float R/O Mean motion of the orbit.
next_patch Option<ksp::orbit::OrbitPatch> R/O Get the next orbit patch of the trajectory (if available)
orbit_normal ksp::math::Vec3 R/O Normal vector perpendicular to orbital plane.
periapsis float R/O Periapsis of the orbit above sealevel of the reference_body
periapsis_radius float R/O Radius of periapsis of the orbit (i.e. from the center of the `reference_body')
period float R/O Orbital period.
previous_patch Option<ksp::orbit::OrbitPatch> R/O Get the previous orbit patch of the trajectory (if available)
reference_body ksp::orbit::Body R/O The celestial body the orbit is referenced on.
reference_frame ksp::math::TransformFrame R/O Internal reference frame of the orbit. This might be useful to compare numbers. Note: All relative vectors are in the celestial frame of the reference_body which might be different!
relative_ascending_node ksp::math::Vec3 R/O Get the relative position of the ascending node.
relative_eccentricity_vector ksp::math::Vec3 R/O Get the relative eccentricity vector.
semi_major_axis float R/O Semi major axis of the orbit.
start_transition ksp::orbit::PatchTransitionType R/O Get transition type at the beginning of the orbit patch
start_ut float R/O Universal time of the start of the orbit patch
trajectory ksp::orbit::Trajectory R/O The trajectory this orbit patch belongs to

Methods

ascending_node_true_anomaly
orbitpatch.ascending_node_true_anomaly ( b : ksp::orbit::Orbit ) -> float

Gives the true anomaly (in a's orbit) at which a crosses its ascending node with b's orbit. The returned value is always between 0 and 360.

Parameters

Name Type Optional Description
b ksp::orbit::Orbit
descending_node_true_anomaly
orbitpatch.descending_node_true_anomaly ( b : ksp::orbit::Orbit ) -> float

Gives the true anomaly (in a's orbit) at which a crosses its descending node with b's orbit. The returned value is always between 0 and 360.

Parameters

Name Type Optional Description
b ksp::orbit::Orbit
get_eccentric_anomaly_at_true_anomaly
orbitpatch.get_eccentric_anomaly_at_true_anomaly ( trueAnomaly : float ) -> float

Converts a true anomaly into an eccentric anomaly. For elliptical orbits this returns a value between 0 and 2pi. For hyperbolic orbits the returned value can be any number.

Parameters

Name Type Optional Description
trueAnomaly float
get_mean_anomaly_at_eccentric_anomaly
orbitpatch.get_mean_anomaly_at_eccentric_anomaly ( ecc : float ) -> float

Converts an eccentric anomaly into a mean anomaly. For an elliptical orbit, the returned value is between 0 and 2pi. For a hyperbolic orbit, the returned value is any number.

Parameters

Name Type Optional Description
ecc float
global_position
orbitpatch.global_position ( ut : float ) -> ksp::math::GlobalPosition

Get the coordinate independent position at a given universal time ut. Note: This takes the motion of the parent body into account.

Parameters

Name Type Optional Description
ut float
global_position_for_true_anomaly
orbitpatch.global_position_for_true_anomaly ( trueAnomaly : float ) -> ksp::math::GlobalPosition

Get the coordinate independent position for a given trueAnomaly

Parameters

Name Type Optional Description
trueAnomaly float
global_relative_position
orbitpatch.global_relative_position ( ut : float ) -> ksp::math::GlobalVector

Shorthand for orbit.global_position(ut) - orbit.reference_body.orbit.global_position(ut)

Parameters

Name Type Optional Description
ut float
global_velocity
orbitpatch.global_velocity ( ut : float ) -> ksp::math::GlobalVelocity

Get the coordinate independent velocity at a given universal time ut. Note: This takes the motion of the parent body into account.

Parameters

Name Type Optional Description
ut float
horizontal
orbitpatch.horizontal ( ut : float ) -> ksp::math::Vec3

Relative horizontal vector at a given universal time ut

Parameters

Name Type Optional Description
ut float
mean_anomaly_at_ut
orbitpatch.mean_anomaly_at_ut ( ut : float ) -> float

The mean anomaly of the orbit. For elliptical orbits, the value return is always between 0 and 2pi. For hyperbolic orbits, the value can be any number.

Parameters

Name Type Optional Description
ut float
next_apoapsis_time
orbitpatch.next_apoapsis_time ( maybeUt : Option<float> ) -> Option<float>

Returns the next time at which the orbiting object will be at apoapsis after a given universal time ut. If ut is omitted the current time will be used. For elliptical orbits, this will be between ut and ut + Period. For hyperbolic orbits, this is undefined.

Parameters

Name Type Optional Description
maybeUt Option x
next_periapsis_time
orbitpatch.next_periapsis_time ( maybeUt : Option<float> ) -> float

The next time at which the orbiting object will be at periapsis after a given universal time ut. If ut is omitted the current time will be used. For elliptical orbits, this will be between ut and ut + Period. For hyperbolic orbits, this can be any time, including a time in the past, if the periapsis is in the past.

Parameters

Name Type Optional Description
maybeUt Option x
next_time_of_radius
orbitpatch.next_time_of_radius ( ut : float,
                                 radius : float ) -> Option<float>

Finds the next time at which the orbiting object will achieve a given radius from center of the body after a given universal time ut. This will be undefined if the specified radius is impossible for this orbit, otherwise: For elliptical orbits this will be a time between ut and ut + period. For hyperbolic orbits this can be any time. If the given radius will be achieved in the future then the next time at which that radius will be achieved will be returned. If the given radius was only achieved in the past, then there are no guarantees about which of the two times in the past will be returned.

Parameters

Name Type Optional Description
ut float
radius float
normal_plus
orbitpatch.normal_plus ( ut : float ) -> ksp::math::Vec3

The relative normal-plus vector at a given universal time ut

Parameters

Name Type Optional Description
ut float
orbital_velocity
orbitpatch.orbital_velocity ( ut : float ) -> ksp::math::Vec3

Get the relative orbital velocity at a given universal time ut

Parameters

Name Type Optional Description
ut float
perturbed_orbit
orbitpatch.perturbed_orbit ( ut : float,
                             dV : ksp::math::Vec3 ) -> ksp::orbit::Orbit

Returns a new Orbit object that represents the result of applying a given relative deltaV to o at ut. Note: The resulting orbit is calculated as if the velocity change happens instantaneously, which might lead to unrealistic results for larger deltaV. The main use-case of this method is to be used as part of an orbit-optimization algorithm as it is quiet fast.

Parameters

Name Type Optional Description
ut float
dV ksp::math::Vec3
prograde
orbitpatch.prograde ( ut : float ) -> ksp::math::Vec3

The relative prograde vector at a given universal time ut

Parameters

Name Type Optional Description
ut float
radial_plus
orbitpatch.radial_plus ( ut : float ) -> ksp::math::Vec3

The relative radial-plus vector at a given universal time ut

Parameters

Name Type Optional Description
ut float
radius
orbitpatch.radius ( ut : float ) -> float

Get the orbital radius (distance from center of body) at a given universal time ut

Parameters

Name Type Optional Description
ut float
relative_position
orbitpatch.relative_position ( ut : float ) -> ksp::math::Vec3

Get relative position at a given universal time ut

Parameters

Name Type Optional Description
ut float
relative_position_for_true_anomaly
orbitpatch.relative_position_for_true_anomaly ( trueAnomaly : float ) -> ksp::math::Vec3

Get relative position for a given trueAnomaly

Parameters

Name Type Optional Description
trueAnomaly float
synodic_period
orbitpatch.synodic_period ( other : ksp::orbit::Orbit ) -> float

Computes the period of the phase angle between orbiting objects of this orbit and and other orbit. For noncircular orbits the time variation of the phase angle is only quasiperiodic and for high eccentricities and/or large relative inclinations, the relative motion is not really periodic at all.

Parameters

Name Type Optional Description
other ksp::orbit::Orbit
time_of_ascending_node
orbitpatch.time_of_ascending_node ( b : ksp::orbit::Orbit,
                                    maybeUt : Option<float> ) -> float

Returns the next time at which a will cross its ascending node with b. For elliptical orbits this is a time between UT and UT + a.period. For hyperbolic orbits this can be any time, including a time in the past if the ascending node is in the past. NOTE: this function will throw an ArgumentException if a is a hyperbolic orbit and the ascending node occurs at a true anomaly that a does not actually ever attain. If ut is omitted the current time will be used.

Parameters

Name Type Optional Description
b ksp::orbit::Orbit
maybeUt Option x
time_of_descending_node
orbitpatch.time_of_descending_node ( b : ksp::orbit::Orbit,
                                     maybeUt : Option<float> ) -> float

Returns the next time at which a will cross its descending node with b. For elliptical orbits this is a time between UT and UT + a.period. For hyperbolic orbits this can be any time, including a time in the past if the descending node is in the past. NOTE: this function will throw an ArgumentException if a is a hyperbolic orbit and the descending node occurs at a true anomaly that a does not actually ever attain. If ut is omitted the current time will be used

Parameters

Name Type Optional Description
b ksp::orbit::Orbit
maybeUt Option x
time_of_true_anomaly
orbitpatch.time_of_true_anomaly ( trueAnomaly : float,
                                  maybeUt : Option<float> ) -> float

Next time of a certain true anomaly after a given universal time ut. If ut is omitted the current time will be used

Parameters

Name Type Optional Description
trueAnomaly float
maybeUt Option x
to_fixed
orbitpatch.to_fixed ( decimals : int ) -> string

Convert orbital parameter to string using specified number of decimals

Parameters

Name Type Optional Description
decimals int
to_string
orbitpatch.to_string ( ) -> string

Convert orbital parameters to string.

true_anomaly_at_radius
orbitpatch.true_anomaly_at_radius ( radius : float ) -> float

Get the true anomaly of a radius. If the radius is below the periapsis the true anomaly of the periapsis will be returned. If it is above the apoapsis the true anomaly of the apoapsis is returned. The returned value is always between 0 and 2pi.

Parameters

Name Type Optional Description
radius float
true_anomaly_at_ut
orbitpatch.true_anomaly_at_ut ( ut : float ) -> float

The true anomaly of the orbit at a given universal type ut. The vector is projected into the orbital plane and then the true anomaly is computed as the angle this vector makes with the vector pointing to the periapsis. The returned value is always between 0 and 2pi.

Parameters

Name Type Optional Description
ut float
true_anomaly_from_vector
orbitpatch.true_anomaly_from_vector ( vec : ksp::math::Vec3 ) -> float

Converts a relative direction, into a true anomaly. The vector is projected into the orbital plane and then the true anomaly is computed as the angle this vector makes with the vector pointing to the periapsis. The returned value is always between 0 and 2pi.

Parameters

Name Type Optional Description
vec ksp::math::Vec3
up
orbitpatch.up ( ut : float ) -> ksp::math::Vec3

Relative up vector of the orbit at a given universal time ut

Parameters

Name Type Optional Description
ut float
ut_at_mean_anomaly
orbitpatch.ut_at_mean_anomaly ( meanAnomaly : float,
                                ut : float ) -> float

The next time at which the orbiting object will reach the given mean anomaly. For elliptical orbits, this will be a time between UT and UT + o.period. For hyperbolic orbits, this can be any time, including a time in the past, if the given mean anomaly occurred in the past

Parameters

Name Type Optional Description
meanAnomaly float
ut float

PatchTransitionType

Transition type at the beginning or end of an orbit patch

Methods

to_string
patchtransitiontype.to_string ( ) -> string

String representation of the number

PatchTransitionTypeConstants

Fields

Name Type Read-only Description
Collision ksp::orbit::PatchTransitionType R/O Orbits collides with a (celestial) object
CompletelyOutOfFuel ksp::orbit::PatchTransitionType R/O Planed maneuver will run out of fuel
Encounter ksp::orbit::PatchTransitionType R/O Orbit enters a sphere of influence (SOI)
EndThrust ksp::orbit::PatchTransitionType R/O End of thrust of a planed maneuver
Escape ksp::orbit::PatchTransitionType R/O Orbit leaves a sphere of influence (SOI)
Final ksp::orbit::PatchTransitionType R/O Final transition (orbit ends here)
Initial ksp::orbit::PatchTransitionType R/O Initial transition (orbit starts here)
Maneuver ksp::orbit::PatchTransitionType R/O Orbit changes due to a planed maneuver
PartialOutOfFuel ksp::orbit::PatchTransitionType R/O Planed maneuver will partially run out of fuel

Methods

from_string
patchtransitiontypeconstants.from_string ( value : string ) -> Option<ksp::orbit::PatchTransitionType>

Parse from string

Parameters

Name Type Optional Description
value string Enum value to lookup

Trajectory

Representation of a trajectory of a vessel that might has multiple orbit patches

Can be used in for(... in ...) loop to iterate over ksp::orbit::OrbitPatch

Can be used like an array ksp::orbit::OrbitPatch[]

Fields

Name Type Read-only Description
end_ut float R/O Universal time of the end of the trajectory
length int R/O length
start_ut float R/O Universal time of the start of the trajectory

Methods

exists
trajectory.exists ( predicate : sync fn(ksp::orbit::OrbitPatch) -> bool ) -> bool

Check if an item of the array matches predicate

Parameters

Name Type Optional Description
predicate sync fn(ksp::orbit::OrbitPatch) -> bool Predicate function/check to be applied on each element of the array until element is found.
filter
trajectory.filter ( predicate : sync fn(ksp::orbit::OrbitPatch) -> bool ) -> T[]

Filter the content of the array by a `predicate

Parameters

Name Type Optional Description
predicate sync fn(ksp::orbit::OrbitPatch) -> bool Predicate function/check to be applied on each element of the array
filter_map
trajectory.filter_map ( mapper : sync fn(ksp::orbit::OrbitPatch) -> Option<U> ) -> U[]

Map the content of the array

Parameters

Name Type Optional Description
mapper sync fn(ksp::orbit::OrbitPatch) -> Option Function to be applied on each element of the array
find
trajectory.find ( predicate : sync fn(ksp::orbit::OrbitPatch) -> bool ) -> Option<T>

Find first item of the array matching predicate

Parameters

Name Type Optional Description
predicate sync fn(ksp::orbit::OrbitPatch) -> bool Predicate function/check to be applied on each element of the array until element is found.
find_patch
trajectory.find_patch ( ut : float ) -> Option<ksp::orbit::OrbitPatch>

Find orbit patch for a given universal time ut

Parameters

Name Type Optional Description
ut float
flat_map
trajectory.flat_map ( mapper : sync fn(ksp::orbit::OrbitPatch) -> U[] ) -> U[]

Map the content of the array

Parameters

Name Type Optional Description
mapper sync fn(ksp::orbit::OrbitPatch) -> U[] Function to be applied on each element of the array
map
trajectory.map ( mapper : sync fn(ksp::orbit::OrbitPatch) -> U ) -> U[]

Map the content of the array

Parameters

Name Type Optional Description
mapper sync fn(ksp::orbit::OrbitPatch) -> U Function to be applied on each element of the array
map_with_index
trajectory.map_with_index ( mapper : sync fn(ksp::orbit::OrbitPatch, int) -> U ) -> U[]

Map the content of the array

Parameters

Name Type Optional Description
mapper sync fn(ksp::orbit::OrbitPatch, int) -> U Function to be applied on each element of the array including index of the element
reduce
trajectory.reduce ( initial : U,
                    reducer : sync fn(U, ksp::orbit::OrbitPatch) -> U ) -> U

Reduce array by an operation

Parameters

Name Type Optional Description
initial U Initial value of the accumulator
reducer sync fn(U, ksp::orbit::OrbitPatch) -> U Combines accumulator with each element of the array and returns new accumulator value
reverse
trajectory.reverse ( ) -> ksp::orbit::OrbitPatch[]

Reverse the order of the array

Waypoint

Fields

Name Type Read-only Description
altitude float R/O Get altitude above sea-level of waypoint
body ksp::orbit::Body R/O Celestial body the waypoint is based on
geo_coordinates ksp::orbit::GeoCoordinates R/O Get GeoCoordinates of the waypoint
global_position ksp::math::GlobalPosition R/O Coordinate system independent position of the waypoint
name string R/O Name/label of the waypoint

Constants

Name Type Description
PatchTransitionType ksp::orbit::PatchTransitionTypeConstants Transition type at the beginning or end of an orbit patch

Functions

find_body

pub sync fn find_body ( name : string ) -> Result<ksp::orbit::Body>

Find a body by name.

Parameters

Name Type Optional Description
name string

find_waypoint

pub sync fn find_waypoint ( name : string ) -> Result<ksp::orbit::Waypoint>

Find waypoint by name/label.

Parameters

Name Type Optional Description
name string

galactic_origin

pub sync fn galactic_origin ( ) -> ksp::math::TransformFrame

Get the galactic celestial frame.