internal static void ConvertCartesianToKeplerian(CartesianCoordinates cartesianCoordinates, KeplerianCoordinates keplerianCoordinates) { //FIXME try { if (cartesianCoordinates.Depth < CartesianDepth.Velocity) { throw new ArgumentException(); } cartesianCoordinates.CheckCoordinates(); } catch { throw new InvalidOperationException(); } //FIXME keplerianCoordinates.Origin = cartesianCoordinates.Origin; keplerianCoordinates.CoordinateFrame = cartesianCoordinates.CoordinateFrame; keplerianCoordinates.IsValid = true; keplerianCoordinates.SMA = 1D; keplerianCoordinates.Ecc = 1D; keplerianCoordinates.Inc = 1D; keplerianCoordinates.RAAN = 1D; if (keplerianCoordinates.Depth >= KeplerianDepth.PlaneOnly) { keplerianCoordinates.ArgPer = 1D; keplerianCoordinates.TrueAnom = 1D; } }
internal static void ConvertCartesianFrame(CartesianCoordinates cartesianCoordinates1, CartesianCoordinates cartesianCoordinates2) { try { cartesianCoordinates1.CheckCoordinates(); cartesianCoordinates2.CheckSkeleton(ValidityDepth.CoordinateFrame); if (cartesianCoordinates2.Depth > cartesianCoordinates1.Depth) { throw new ArgumentException(); } } catch { throw new InvalidOperationException(); } cartesianCoordinates2.IsValid = true; cartesianCoordinates2.Origin = cartesianCoordinates1.Origin; //FIXME if (cartesianCoordinates1.CoordinateFrame != cartesianCoordinates2.CoordinateFrame) { throw new NotImplementedException(); } else { cartesianCoordinates2.Position = cartesianCoordinates1.Position * 10; if (cartesianCoordinates2.Depth > CartesianDepth.Velocity) { cartesianCoordinates2.Velocity = cartesianCoordinates1.Velocity * 10; } } }