XYZ principia__BubbleVelocityCorrection(Plugin const* const plugin, int const reference_body_index) { journal::Method<journal::BubbleVelocityCorrection> m({plugin, reference_body_index}); CHECK_NOTNULL(plugin); Velocity<World> const result = plugin->BubbleVelocityCorrection(reference_body_index); return m.Return(ToXYZ(result.coordinates() / (Metre / Second))); }
XYZ VesselWorldVelocity(Plugin const* const plugin, char const* vessel_guid, XYZ const parent_world_velocity, double const parent_rotation_period) { Velocity<World> result = CHECK_NOTNULL(plugin)->VesselWorldVelocity( vessel_guid, Velocity<World>({parent_world_velocity.x * Metre / Second, parent_world_velocity.y * Metre / Second, parent_world_velocity.z * Metre / Second}), parent_rotation_period * Second); R3Element<Speed> const& coordinates = result.coordinates(); return XYZ{coordinates.x / (Metre / Second), coordinates.y / (Metre / Second), coordinates.z / (Metre / Second)}; }