// functions for calculating steering values. @lazyglobal off. function GetPitch { parameter v is SHIP:FACING:FOREVECTOR. return 90 - vectorangle(SHIP:UP:FOREVECTOR, v). } function AddCircularizationNode { parameter usePeriapsis is false. local target is SHIP:ORBIT:APOAPSIS. local t is TIME + SHIP:ORBIT:ETA:APOAPSIS. if usePeriapsis { set target to SHIP:ORBIT:PERIAPSIS. set t to SHIP:ORBIT:ETA:PERIAPSIS. } local n is Node(t, 0, 0, 0). add(n). // move fast until we pass our target. until (usePeriapsis and n:ORBIT:APOAPSIS <= target) or n:ORBIT:PERIAPSIS >= target { set n:PROGRADE to n:PROGRADE + 1. } // now bring it back in real slow until we come back. until (usePeriapsis and n:ORBIT:APOAPSIS > target) or n:ORBIT:PERIAPSIS < target { set n:PROGRADE to n:PROGRADE - 0.01. } }