// 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). local delta is 1. local diff is n:ORBIT:APOAPSIS - n:ORBIT:PERIAPSIS. until (diff < 1000) { set n:PROGRADE to n:PROGRADE + delta. local newDiff is n:ORBIT:APOAPSIS - n:ORBIT:PERIAPSIS. if newDiff > diff { set delta to (delta * -1) / 10. } set diff to newDiff. } }