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); }
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); }
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); }
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); } }
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(); }
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(); } }