Closest Approach#

class ClosestApproach#

A close approach between an orbit and a target orbit. Obtained by calling Orbit::next_closest_approach() or Orbit::closest_approaches().

Note

The object names the approach rather than describing it once: each member estimates the time of closest approach from where the two orbits are now, and describes the state at that time. The estimate moves as the game runs, so members read at different moments can differ a little; members read in one physics tick all describe the same estimate. Relative quantities are the target relative to the orbiting object (target minus self).

The search runs forward over one orbital period from the current time. Once an approach has passed and the two orbits are moving apart, the closest point in that period is the current one, so the object reports the approach as now, at the present separation, until the orbits bring another one within range.

double ut()#

The universal time of the closest approach, in seconds.

double time_to()#

The time until the closest approach, in seconds.

double distance()#

The distance between the objects at the closest approach, in meters.

double relative_speed()#

The relative speed of the objects at the closest approach, in meters per second. This is the magnitude of ClosestApproach::relative_velocity(), and does not depend on the choice of reference frame.

std::optional<Vessel> vessel()#

The vessel doing the approaching, or NULL if it is not a vessel.

std::optional<CelestialBody> body()#

The celestial body doing the approaching, or NULL if it is not a celestial body.

std::optional<Vessel> target_vessel()#

The vessel being approached, or NULL if the target is not a vessel.

std::optional<CelestialBody> target_body()#

The celestial body being approached, or NULL if the target is not a celestial body.

std::tuple<double, double, double> position(std::optional<ReferenceFrame> reference_frame = std::optional<ReferenceFrame>())#

The position of the orbiting object at the closest approach.

Parameters:
  • reference_frame – The reference frame that the returned position vector is in. Defaults to the orbital reference frame of the object the orbit belongs to.

Returns:

The position as a vector.

std::tuple<double, double, double> target_position(std::optional<ReferenceFrame> reference_frame = std::optional<ReferenceFrame>())#

The position of the target object at the closest approach.

Parameters:
  • reference_frame – The reference frame that the returned position vector is in. Defaults to the orbital reference frame of the object the orbit belongs to.

Returns:

The position as a vector.

std::tuple<double, double, double> velocity(std::optional<ReferenceFrame> reference_frame = std::optional<ReferenceFrame>())#

The velocity of the orbiting object at the closest approach.

Parameters:
  • reference_frame – The reference frame that the returned velocity vector is in. Defaults to the orbital reference frame of the object the orbit belongs to.

Returns:

The velocity as a vector.

std::tuple<double, double, double> target_velocity(std::optional<ReferenceFrame> reference_frame = std::optional<ReferenceFrame>())#

The velocity of the target object at the closest approach.

Parameters:
  • reference_frame – The reference frame that the returned velocity vector is in. Defaults to the orbital reference frame of the object the orbit belongs to.

Returns:

The velocity as a vector.

std::tuple<double, double, double> relative_position(std::optional<ReferenceFrame> reference_frame = std::optional<ReferenceFrame>())#

The position of the target relative to the orbiting object at the closest approach.

Parameters:
  • reference_frame – The reference frame whose axes the returned vector is expressed in. Defaults to the orbital reference frame of the object the orbit belongs to.

Returns:

The relative position as a vector.

std::tuple<double, double, double> relative_velocity(std::optional<ReferenceFrame> reference_frame = std::optional<ReferenceFrame>())#

The velocity of the target relative to the orbiting object at the closest approach.

Parameters:
  • reference_frame – The reference frame whose axes the returned vector is expressed in. Defaults to the orbital reference frame of the object the orbit belongs to.

Returns:

The relative velocity as a vector.