public static void GetHelioCentricKeplerianElements(DateTime epoch, KeplerianCoordinates keplerianCoordinates) { if (keplerianCoordinates == null || keplerianCoordinates.CoordinateFrame == null) { throw new ArgumentNullException(); } if (keplerianCoordinates.CoordinateFrame == Frame.EME2000) { KeplerianCoordinates dummy = new KeplerianCoordinates { SMA = 1.00000011 * Constants.AU, Ecc = 0.01671022, Inc = BasicMath.DegreeToRadian(0.00005), RAAN = BasicMath.DegreeToRadian(-11.26064), ArgPer = BasicMath.DegreeToRadian(102.94719), TrueAnom = BasicMath.DegreeToRadian(100.46435), Origin = Body.Sun, CoordinateFrame = Frame.EME2000, }; keplerianCoordinates.Origin = dummy.Origin; keplerianCoordinates.IsValid = true; keplerianCoordinates.SMA = dummy.SMA; keplerianCoordinates.Ecc = dummy.Ecc; keplerianCoordinates.Inc = dummy.Inc; keplerianCoordinates.RAAN = dummy.RAAN; if (keplerianCoordinates.Depth > KeplerianDepth.PlaneOnly) { keplerianCoordinates.ArgPer = dummy.ArgPer; keplerianCoordinates.TrueAnom = dummy.TrueAnom; } } else { throw new NotImplementedException(); } }