Пример #1
0
        private void InitializeModules()
        {
            modules = new List <IInfoModule>();

            peri = new Periapsis("Periapsis", currentVessel);
            apo  = new Apoapsis("Apoapsis", currentVessel);
            sma  = new SemiMajorAxis("Semi-Major Axis", currentVessel);
            ecc  = new Eccentricity("Eccentricity", currentVessel);
            inc  = new Inclination("Inclination", currentVessel);
            alt  = new Altitude("Current Altitude", currentVessel);
            vel  = new Velocity("Current Speed", currentVessel);
            acc  = new Acceleration("Current Acceleration", currentVessel);

            peri.IsVisible = PTGUI_Settings.Instance.showPeriapsis;
            apo.IsVisible  = PTGUI_Settings.Instance.showApoapsis;
            sma.IsVisible  = PTGUI_Settings.Instance.showSMA;
            ecc.IsVisible  = PTGUI_Settings.Instance.showApoapsis;
            inc.IsVisible  = PTGUI_Settings.Instance.showInclination;
            alt.IsVisible  = PTGUI_Settings.Instance.showAltitude;
            vel.IsVisible  = PTGUI_Settings.Instance.showVelocity;
            acc.IsVisible  = PTGUI_Settings.Instance.showAcceleration;

            modules.Add(peri);
            modules.Add(apo);
            modules.Add(sma);
            modules.Add(ecc);
            modules.Add(inc);
            modules.Add(alt);
            modules.Add(vel);
            modules.Add(acc);
        }
        public virtual void SaveToXml(System.Xml.XmlTextWriter xmlWriter)
        {
            xmlWriter.WriteStartElement("ReferenceFrame");
            xmlWriter.WriteAttributeString("Name", Name);
            xmlWriter.WriteAttributeString("Parent", Parent);
            xmlWriter.WriteAttributeString("ReferenceFrameType", ReferenceFrameType.ToString());
            xmlWriter.WriteAttributeString("Reference", Reference.ToString());
            xmlWriter.WriteAttributeString("ParentsRoationalBase", ParentsRoationalBase.ToString());
            xmlWriter.WriteAttributeString("MeanRadius", MeanRadius.ToString());
            xmlWriter.WriteAttributeString("Oblateness", Oblateness.ToString());
            xmlWriter.WriteAttributeString("Heading", Heading.ToString());
            xmlWriter.WriteAttributeString("Pitch", Pitch.ToString());
            xmlWriter.WriteAttributeString("Roll", Roll.ToString());
            xmlWriter.WriteAttributeString("Scale", Scale.ToString());
            xmlWriter.WriteAttributeString("Tilt", Tilt.ToString());
            xmlWriter.WriteAttributeString("Translation", Translation.ToString());
            if (ReferenceFrameType == ReferenceFrameTypes.FixedSherical)
            {
                xmlWriter.WriteAttributeString("Lat", Lat.ToString());
                xmlWriter.WriteAttributeString("Lng", Lng.ToString());
                xmlWriter.WriteAttributeString("Altitude", Altitude.ToString());
            }
            xmlWriter.WriteAttributeString("RotationalPeriod", RotationalPeriod.ToString());
            xmlWriter.WriteAttributeString("ZeroRotationDate", ZeroRotationDate.ToString());
            xmlWriter.WriteAttributeString("RepresentativeColor", SavedColor.Save(RepresentativeColor));
            xmlWriter.WriteAttributeString("ShowAsPoint", ShowAsPoint.ToString());
            xmlWriter.WriteAttributeString("ShowOrbitPath", ShowOrbitPath.ToString());

            xmlWriter.WriteAttributeString("StationKeeping", StationKeeping.ToString());

            if (ReferenceFrameType == ReferenceFrameTypes.Orbital)
            {
                xmlWriter.WriteAttributeString("SemiMajorAxis", SemiMajorAxis.ToString());
                xmlWriter.WriteAttributeString("SemiMajorAxisScale", this.SemiMajorAxisUnits.ToString());
                xmlWriter.WriteAttributeString("Eccentricity", Eccentricity.ToString());
                xmlWriter.WriteAttributeString("Inclination", Inclination.ToString());
                xmlWriter.WriteAttributeString("ArgumentOfPeriapsis", ArgumentOfPeriapsis.ToString());
                xmlWriter.WriteAttributeString("LongitudeOfAscendingNode", LongitudeOfAscendingNode.ToString());
                xmlWriter.WriteAttributeString("MeanAnomolyAtEpoch", MeanAnomolyAtEpoch.ToString());
                xmlWriter.WriteAttributeString("MeanDailyMotion", MeanDailyMotion.ToString());
                xmlWriter.WriteAttributeString("Epoch", Epoch.ToString());
            }

            if (ReferenceFrameType == ReferenceFrameTypes.Trajectory)
            {
                xmlWriter.WriteStartElement("Trajectory");

                foreach (TrajectorySample sample in Trajectory)
                {
                    string data = sample.ToString();
                    xmlWriter.WriteElementString("Sample", data);
                }
                xmlWriter.WriteEndElement();
            }

            xmlWriter.WriteEndElement();
        }
Пример #3
0
        private List <IBasicModule> AddOrbitModules()
        {
            List <IBasicModule> modules = new List <IBasicModule>();

            apo      = new Apoapsis("Apoapsis");
            peri     = new Periapsis("Periapsis");
            inc      = new Inclination("Inclination");
            ecc      = new Eccentricity("Eccentricity");
            period   = new Period("Period");
            SMA      = new SemiMajorAxis("Semi Major Axis");
            LAN      = new LongAscending("LAN");
            AoPE     = new ArgOfPeriapsis("Arg of Pe");
            altitude = new OrbitAltitude("Altitude");
            radar    = new RadarAltitude("Radar Altitude");
            terrain  = new TerrainAltitude("Terrain Altitude");
            location = new Location("Location");

            apo.IsVisible       = settings.showApoapsis;
            apo.AlwaysShow      = settings.showApoapsisAlways;
            peri.IsVisible      = settings.showPeriapsis;
            peri.AlwaysShow     = settings.showPeriapsisAlways;
            inc.IsVisible       = settings.showInclination;
            inc.AlwaysShow      = settings.showInclinationAlways;
            ecc.IsVisible       = settings.showEccentricity;
            ecc.AlwaysShow      = settings.showEccentricityAlways;
            period.IsVisible    = settings.showPeriod;
            period.AlwaysShow   = settings.showPeriodAlways;
            SMA.IsVisible       = settings.showSMA;
            SMA.AlwaysShow      = settings.showSMAAlways;
            LAN.IsVisible       = settings.showLAN;
            LAN.AlwaysShow      = settings.showLANAlways;
            AoPE.IsVisible      = settings.showAoPe;
            AoPE.AlwaysShow     = settings.showAoPeAlways;
            altitude.IsVisible  = settings.showOrbitAltitude;
            altitude.AlwaysShow = settings.showOrbitAltitudeAlways;
            radar.IsVisible     = settings.showRadar;
            radar.AlwaysShow    = settings.showRadarAlways;
            terrain.IsVisible   = settings.showTerrain;
            terrain.AlwaysShow  = settings.showTerrainAlways;
            location.IsVisible  = settings.showLocation;
            location.AlwaysShow = settings.showLocationAlways;

            modules.Add(AoPE);
            modules.Add(LAN);
            modules.Add(SMA);
            modules.Add(terrain);
            modules.Add(radar);
            modules.Add(altitude);
            modules.Add(location);
            modules.Add(period);
            modules.Add(ecc);
            modules.Add(inc);
            modules.Add(peri);
            modules.Add(apo);

            return(modules);
        }
Пример #4
0
        /// <summary>
        /// Converts an object into its XML representation.
        /// </summary>
        /// <param name="writer">The <see cref="T:System.Xml.XmlWriter"/> stream to which the object is serialized.</param>
        public void WriteXml(XmlWriter writer)
        {
            /*   The GML specification defines an ellipsoid as follows:
             *
             *   <gml:Ellipsoid gml:id="ogrcrs44">
             *     <gml:ellipsoidName>GRS 1980</gml:ellipsoidName>
             *     <gml:ellipsoidID>
             *       <gml:name gml:codeSpace="urn:ogc:def:ellipsoid:EPSG::">7019</gml:name>
             *     </gml:ellipsoidID>
             *     <gml:semiMajorAxis gml:uom="urn:ogc:def:uom:EPSG::9001">6378137</gml:semiMajorAxis>
             *     <gml:secondDefiningParameter>
             *       <gml:inverseFlattening gml:uom="urn:ogc:def:uom:EPSG::9201">298.257222101</gml:inverseFlattening>
             *     </gml:secondDefiningParameter>
             *   </gml:Ellipsoid>
             *
             */

            writer.WriteStartElement(Xml.GML_XML_PREFIX, "Ellipsoid", Xml.GML_XML_NAMESPACE);

            writer.WriteElementString(Xml.GML_XML_PREFIX, "ellipsoidName", Xml.GML_XML_NAMESPACE, _name);

            writer.WriteStartElement(Xml.GML_XML_PREFIX, "ellipsoidID", Xml.GML_XML_NAMESPACE);
            writer.WriteString(_epsgNumber.ToString());
            writer.WriteEndElement();

            writer.WriteStartElement(Xml.GML_XML_PREFIX, "semiMajorAxis", Xml.GML_XML_NAMESPACE);
            writer.WriteString(SemiMajorAxis.ToMeters().Value.ToString("G17"));
            writer.WriteEndElement();

            writer.WriteStartElement(Xml.GML_XML_PREFIX, "semiMinorAxis", Xml.GML_XML_NAMESPACE);
            writer.WriteString(SemiMinorAxis.ToMeters().Value.ToString("G17"));
            writer.WriteEndElement();

            writer.WriteStartElement(Xml.GML_XML_PREFIX, "secondDefiningParameter", Xml.GML_XML_NAMESPACE);
            writer.WriteElementString(Xml.GML_XML_PREFIX, "inverseFlattening", Xml.GML_XML_NAMESPACE, InverseFlattening.ToString("G17"));
            writer.WriteEndElement();

            writer.WriteEndElement();

            SanityCheck();
            Calculate();
        }
Пример #5
0
 /// <summary>
 /// 返回哈希代码。
 /// </summary>
 /// <returns></returns>
 public override int GetHashCode()
 {
     return(SemiMajorAxis.GetHashCode() * 13 + SemiMinorAxis.GetHashCode() * 5);
 }