Example #1
0
        /// <summary>
        /// Parent ralitive velocity vector.
        /// </summary>
        /// <returns>The orbital vector ralitive to the parent</returns>
        /// <param name="orbit">Orbit.</param>
        /// <param name="atDateTime">At date time.</param>
        public static Vector3 InstantaneousOrbitalVelocityVector_m(OrbitDB orbit, DateTime atDateTime)
        {
            var position = GetPosition_m(orbit, atDateTime);
            var sma      = orbit.SemiMajorAxis;

            if (orbit.GravitationalParameter_Km3S2 == 0 || sma == 0)
            {
                return(new Vector3()); //so we're not returning NaN;
            }
            var sgp = orbit.GravitationalParameter_m3S2;

            double e           = orbit.Eccentricity;
            double trueAnomaly = GetTrueAnomaly(orbit, atDateTime);
            double aoP         = orbit.ArgumentOfPeriapsis;
            double i           = orbit.Inclination;
            double loAN        = orbit.LongitudeOfAscendingNode;

            return(OrbitMath.ParentLocalVeclocityVector(sgp, position, sma, e, trueAnomaly, aoP, i, loAN));
        }