Beispiel #1
0
        public override void Execute(SharedObjects shared)
        {
            CelestialBody body;
            var           bodyArg = PopValueAssert(shared);

            if (bodyArg is BodyTarget bodyTarget)
            {
                body = bodyTarget.Body;
            }
            else
            {
                var bodyName = bodyArg.ToString();
                body = VesselUtils.GetBodyByName(bodyName);
                if (body == null)
                {
                    throw new KOSInvalidArgumentException("CREATEORBIT() constructor", bodyName, "Body not found in this solar system");
                }
            }
            double t     = GetDouble(PopValueAssert(shared));
            double mEp   = GetDouble(PopValueAssert(shared));
            double argPe = GetDouble(PopValueAssert(shared));
            double lan   = GetDouble(PopValueAssert(shared));
            double sma   = GetDouble(PopValueAssert(shared));
            double e     = GetDouble(PopValueAssert(shared));
            double inc   = GetDouble(PopValueAssert(shared));

            AssertArgBottomAndConsume(shared);

            ReturnValue = new OrbitInfo(new Orbit(inc, e, sma, lan, argPe, mEp, t, body), shared);
        }
Beispiel #2
0
        public override void Execute(SharedObjects shared)
        {
            var when = GetTimeSpan(PopValueAssert(shared));
            var what = GetOrbitable(PopValueAssert(shared));

            AssertArgBottomAndConsume(shared);

            ReturnValue = new OrbitInfo(what.GetOrbitAtUT(when.ToUnixStyleTime()), shared);
        }
Beispiel #3
0
        public override void Execute(SharedObjects shared)
        {
            var when = GetTimeSpan(shared.Cpu.PopValue());
            var what = GetOrbitable(shared.Cpu.PopValue());

            var orb = new OrbitInfo(what.GetOrbitAtUT(when.ToUnixStyleTime()), shared);

            shared.Cpu.PushStack(orb);
        }
Beispiel #4
0
        public override void Execute(SharedObjects shared)
        {
            bool cartesian = CountRemainingArgs(shared) == 4;

            double ut = cartesian ? GetDouble(PopValueAssert(shared)) : double.NaN;

            CelestialBody body;
            var           bodyArg = PopValueAssert(shared);

            if (bodyArg is BodyTarget bodyTarget)
            {
                body = bodyTarget.Body;
            }
            else
            {
                var bodyName = bodyArg.ToString();
                body = VesselUtils.GetBodyByName(bodyName);
                if (body == null)
                {
                    throw new KOSInvalidArgumentException("CREATEORBIT() constructor", bodyName, "Body not found in this solar system");
                }
            }

            if (cartesian)
            {
                var velocity = GetVector(PopValueAssert(shared));
                var position = GetVector(PopValueAssert(shared));
                AssertArgBottomAndConsume(shared);
                var ret = new Orbit();
                ret.UpdateFromStateVectors(position, velocity, body, ut);
                ReturnValue = new OrbitInfo(ret, shared);
            }
            else
            {
                double t     = GetDouble(PopValueAssert(shared));
                double mEp   = DegreesToRadians(GetDouble(PopValueAssert(shared)));
                double argPe = GetDouble(PopValueAssert(shared));
                double lan   = GetDouble(PopValueAssert(shared));
                double sma   = GetDouble(PopValueAssert(shared));
                double e     = GetDouble(PopValueAssert(shared));
                double inc   = GetDouble(PopValueAssert(shared));
                AssertArgBottomAndConsume(shared);
                ReturnValue = new OrbitInfo(new Orbit(inc, e, sma, lan, argPe, mEp, t, body), shared);
            }
        }
Beispiel #5
0
        private void ShowProjectionsInfo(ProjectionInfo[] pjs)
        {
            lv.Items.Clear();
            lv.Columns.Clear();
            ListViewDetailColumn col1 = new ListViewDetailColumn("文件名");

            col1.Width = 320;
            lv.Columns.Add(col1);
            lv.Columns.Add("创建时间");
            lv.Columns.Add("大小(MB)");
            lv.Columns.Add("快视图");
            lv.Columns.Add("轨道时间");
            lv.Columns.Add("白天/晚上");
            lv.Columns.Add("卫星");
            lv.Columns.Add("传感器");
            if (pjs == null || pjs.Length == 0)
            {
                SendMessage("查询到满足条件的结果共0条。");
                return;
            }
            else
            {
                SendMessage("查询到满足条件的结果共" + pjs.Length + "条。");
            }
            lv.BeginInit();
            for (int i = 0; i < pjs.Length; i++)
            {
                ProjectionInfo pg = pjs[i];
                OrbitInfo      o  = pg.orbitInfo;
                lv.Items.Add(
                    Path.GetFileName(pg.datapath),
                    pg.createTime,
                    (pg.fileSize / 1024.0 / 1024).ToString("f2"),
                    pg.thumbnail,
                    o == null ? "" : o.observationdate + o.observationtime,
                    o == null ? "" : o.dayOrNight,
                    o == null ? "" : o.satellite,
                    o == null ? "" : o.sensor);
                lv.Items[i].Tag = pg.datapath;
            }
            lv.EndInit();
        }
Beispiel #6
0
Datei: GHud.cs Projekt: BGog/GHud
        public void Awake()
        {
            if (GHudmain != null) return;
            GHudmain = this;
            UnityEngine.Object.DontDestroyOnLoad(GHudmain);

            if (!lcd_initialized)
            {
                DMcLgLCD.LcdInit();
                lcd_initialized = true;
            }

            Device bw_dev = new DeviceBW();
            Device color_dev = new DeviceQVGA();

            if (bw_dev != null && bw_dev.isValid())
            {
                devices.Add(bw_dev);
                OrbitInfo initialbw = new OrbitInfo(bw_dev, "✈", System.Drawing.Color.Black, System.Drawing.Color.Black);
                initialbw.Activate();
                bw_dev.modules.Add(initialbw);

                OrbitInfo targetinfo = new OrbitInfo(bw_dev, "+", System.Drawing.Color.Black, System.Drawing.Color.Black);
                targetinfo.is_target_type_module = true;
                bw_dev.modules.Add(targetinfo);

                bw_dev.modules.Add(new OrbitGraph(bw_dev, System.Drawing.Color.Yellow, "✈"));
                OrbitGraph tgt_orbitgraph = new OrbitGraph(bw_dev, System.Drawing.Color.Yellow, "+");
                tgt_orbitgraph.is_target_type_module = true;
                bw_dev.modules.Add(tgt_orbitgraph);
            }

            if (color_dev != null && color_dev.isValid())
            {
                devices.Add(color_dev);
                VesselInfo initialcolor = new VesselInfo(color_dev);
                initialcolor.Activate();
                color_dev.modules.Add(initialcolor);
                //color_dev.modules.Add(new OrbitInfo(color_dev, "✈", System.Drawing.Color.FromArgb(0xee, 0xee, 0x00), System.Drawing.Color.FromArgb(0xaa, 0xaa, 0x44)));
                /*
                OrbitInfo col_targetinfo = new OrbitInfo(color_dev, "⊹", System.Drawing.Color.LightBlue, System.Drawing.Color.MediumPurple);
                col_targetinfo.is_target_type_module = true;
                color_dev.modules.Add(col_targetinfo);
                 */
                color_dev.modules.Add(new OrbitGraph(color_dev, System.Drawing.Color.Yellow, "✈"));
                OrbitGraph tgt_orbitgraph = new OrbitGraph(color_dev, System.Drawing.Color.LightBlue, "+");
                tgt_orbitgraph.is_target_type_module = true;
                color_dev.modules.Add(tgt_orbitgraph);
            }

            foreach (Device dev in devices)
            {
                dev.ButtonUP += new Device.ButtonHandler(ButtonUp);
                dev.ButtonDOWN += new Device.ButtonHandler(ButtonDown);
                dev.ButtonLEFT += new Device.ButtonHandler(ButtonLeft);
                dev.ButtonRIGHT += new Device.ButtonHandler(ButtonRight);
                dev.ButtonOK += new Device.ButtonHandler(ButtonOk);
                dev.ButtonCANCEL += new Device.ButtonHandler(ButtonCancel);
                dev.ButtonMENU += new Device.ButtonHandler(ButtonMenu);

                dev.DisplayFrame();
            }
        }