public void get_InitialState(IAgVAMCSInitialState InitStateObj, int depth, List <string> localParent)
        {
            depth++;
            #region List Header
            l_SegObj.Add(null);
            l_Names.Add("Orbit State/Elements");
            l_unit.Add("");
            l_Values.Add(double.PositiveInfinity);
            l_types.Add(" ");
            l_depth.Add(depth);
            l_isQuantity.Add(false);
            l_implemClass.Add(implem_Classes.NULL);
            l_localParents.Add(localParent);
            #endregion

            AgEVAElementType m_CoordType = InitStateObj.ElementType;
            if (m_CoordType == AgEVAElementType.eVAElementTypeKeplerian)
            {
                IAgVAElementKeplerian keplerState = InitStateObj.Element as IAgVAElementKeplerian;
                OrbElems.Add("Apoapsis Altitude", keplerState.ApoapsisAltitudeSize); l_unit.Add(units.u_Distance);
                OrbElems.Add("Apoapsis Radius", keplerState.ApoapsisRadiusSize); l_unit.Add(units.u_Distance);
                OrbElems.Add("Eccentricity", keplerState.Eccentricity); l_unit.Add(units.u_Null);
                OrbElems.Add("Inclination", keplerState.Inclination); l_unit.Add(units.u_Angle);
                OrbElems.Add("RAAN", keplerState.RAAN); l_unit.Add(units.u_Angle);
                OrbElems.Add("True Anomaly", keplerState.TrueAnomaly); l_unit.Add(units.u_Angle);
                OrbElems.Add("Semi-Major Axis", keplerState.SemiMajorAxis); l_unit.Add(units.u_Distance);
                OrbElems.Add("Period", keplerState.Period); l_unit.Add(units.u_Time);
                OrbElems.Add("Mean Motion", keplerState.MeanMotion); l_unit.Add(units.u_AngleRate);
                OrbElems.Add("Arg Of Latitude", keplerState.ArgOfLatitude); l_unit.Add(units.u_Angle);
                OrbElems.Add("Arg Of Periapsis", keplerState.ArgOfPeriapsis); l_unit.Add(units.u_Angle);
                OrbElems.Add("Mean Anomaly", keplerState.MeanMotion); l_unit.Add(units.u_Angle);
                OrbElems.Add("LAN", keplerState.LAN); l_unit.Add(units.u_Angle);
                OrbElems.Add("Periapsis Altitude", keplerState.PeriapsisAltitudeSize); l_unit.Add(units.u_Distance);
                OrbElems.Add("Periapsis Radius", keplerState.PeriapsisRadiusSize); l_unit.Add(units.u_Distance);

                update_Lists(OrbElems, depth, InitStateObj, implem_Classes.Astg_InitState, localParent);
            }
            else if (m_CoordType == AgEVAElementType.eVAElementTypeCartesian)
            {
                IAgVAElementCartesian cartesianState = InitStateObj.Element as IAgVAElementCartesian;
                OrbElems.Add("X", cartesianState.X); l_unit.Add(units.u_Distance);
                OrbElems.Add("Y", cartesianState.Y); l_unit.Add(units.u_Distance);
                OrbElems.Add("Z", cartesianState.Z); l_unit.Add(units.u_Distance);
                OrbElems.Add("Vx", cartesianState.Vx); l_unit.Add(units.u_Velocity);
                OrbElems.Add("Vy", cartesianState.Vy); l_unit.Add(units.u_Velocity);
                OrbElems.Add("Vz", cartesianState.Vz); l_unit.Add(units.u_Velocity);
                update_Lists(OrbElems, depth, InitStateObj, implem_Classes.Astg_InitState, localParent);
            }
        }
        public void set_InitialState(object InitStateObj, string name, double value)
        {
            IAgVAMCSInitialState state = InitStateObj as IAgVAMCSInitialState;

            AgEVAElementType CoordType = state.ElementType;

            if (CoordType == AgEVAElementType.eVAElementTypeKeplerian)
            {
                IAgVAElementKeplerian keplerState = state.Element as IAgVAElementKeplerian;
                if (name == "Apoapsis Altitude")
                {
                    keplerState.ApoapsisAltitudeSize = value;
                }
                else if (name == "Apoapsis Radius")
                {
                    keplerState.ApoapsisRadiusSize = value;
                }
                else if (name == "Eccentricity")
                {
                    keplerState.Eccentricity = value;
                }
                else if (name == "Inclination")
                {
                    keplerState.Inclination = value;
                }
                else if (name == "RAAN")
                {
                    keplerState.RAAN = value;
                }
                else if (name == "True Anomaly")
                {
                    keplerState.TrueAnomaly = value;
                }
                else if (name == "Semi-Major Axis")
                {
                    keplerState.SemiMajorAxis = value;
                }
                else if (name == "Period")
                {
                    keplerState.Period = value;
                }
                else if (name == "Mean Motion")
                {
                    keplerState.MeanMotion = value;
                }
                else if (name == "Arg Of Latitude")
                {
                    keplerState.ArgOfLatitude = value;
                }
                else if (name == "Arg Of Periapsis")
                {
                    keplerState.ArgOfPeriapsis = value;
                }
                else if (name == "Mean Anomaly")
                {
                    keplerState.MeanMotion = value;
                }
                else if (name == "LAN")
                {
                    keplerState.LAN = value;
                }
                else if (name == "Periapsis Altitude")
                {
                    keplerState.PeriapsisAltitudeSize = value;
                }
                else if (name == "Periapsis Radius")
                {
                    keplerState.PeriapsisRadiusSize = value;
                }
            }
            else if (CoordType == AgEVAElementType.eVAElementTypeCartesian)
            {
                IAgVAElementCartesian cartesianState = state.Element as IAgVAElementCartesian;
                if (name == "X")
                {
                    cartesianState.X = value;
                }
                else if (name == "Y")
                {
                    cartesianState.Y = value;
                }
                else if (name == "Z")
                {
                    cartesianState.Z = value;
                }
                else if (name == "Vx")
                {
                    cartesianState.Vx = value;
                }
                else if (name == "Vy")
                {
                    cartesianState.Vy = value;
                }
                else if (name == "Vz")
                {
                    cartesianState.Vz = value;
                }
            }
        }