示例#1
0
 public static QRectangle GetRectangleCenteredOn(QPoint Center, QSize Size)
 {
     return(new QRectangle(Center.X - Size.Width / 2, Center.Y - Size.Height / 2, Size.Width, Size.Height));
 }
示例#2
0
 public QRectangle(QPoint Location, QSize Size) : this(Location.X, Location.Y, Size.Width, Size.Height)
 {
 }
示例#3
0
 public QRectangle(float X, float Y, float Width, float Height) : this()
 {
     this.Location = new QPoint(X, Y);
     this.Size     = new QSize(Width, Height);
 }
示例#4
0
 public QRectangle GetRectangleDockedBottomRight(QSize Size, float Margin)
 {
     return(new QRectangle(this.Width - Size.Width - Margin, this.Height - Size.Height - Margin, Size.Width, Size.Height));
 }
示例#5
0
 public bool Equals(QSize S)
 {
     return(this == S);
 }
示例#6
0
        protected override void SetupLayout()
        {
            QSize size = new QSize(800, 474);

            rect = new QRectangle((renderer.ScreenSize.Width - size.Width) / 2, 20, size.Width, size.Height);

            renderList = new List <Tuple <string, QPoint, QPen, QFont> >();

            float margin         = 14;
            float lineSpace      = 20;
            float largeLineSpace = lineSpace + 10;
            float firstLine      = rect.Y + margin;

            QPoint pt = new QPoint(rect.X + margin, firstLine);

            firstLine += 36;

            addToHelpList("Key Commands  ([F1] Show / Hide This Help)", ref pt, 0, renderer.ExtraLargeFont, forePen);

            pt.Y = firstLine;

            addToHelpList("[1] Ecliptic View", ref pt, 0, renderer.LargeFont, forePen);
            addToHelpList("[2] Planet Surface View", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[3] Top Down View", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[4] Following View", ref pt, lineSpace, renderer.LargeFont, forePen);

            addToHelpList("[F2] Show / Hide Status Info", ref pt, largeLineSpace, renderer.LargeFont, forePen);
            addToHelpList("[F3] Search", ref pt, largeLineSpace, renderer.LargeFont, forePen);
            addToHelpList("[F4] Show / Hide Flight Instruments", ref pt, largeLineSpace, renderer.LargeFont, forePen);
            addToHelpList("[F5] Change Label View", ref pt, largeLineSpace, renderer.LargeFont, forePen);
            addToHelpList("[F6] Switch Solid/Vector Planets", ref pt, largeLineSpace, renderer.LargeFont, forePen);

            addToHelpList("[F7] Show Fewer Stars", ref pt, largeLineSpace, renderer.LargeFont, forePen);
            addToHelpList("[F8] Show More Stars", ref pt, lineSpace, renderer.LargeFont, forePen);

            addToHelpList("[F9] Show/Hide Constellations", ref pt, largeLineSpace, renderer.LargeFont, forePen);
            addToHelpList("[F10] Change Constellation Patterns", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[F11] Show/Hide Constellation Boundaries", ref pt, lineSpace, renderer.LargeFont, forePen);

            addToHelpList("[F12] Highlight Sunlit Surfaces", ref pt, largeLineSpace, renderer.LargeFont, forePen);

            addToHelpList("[Right Click] Mouse Look On / Off", ref pt, largeLineSpace, renderer.LargeFont, forePen);

            pt = new QPoint(rect.X + rect.Size.Width * 0.38, firstLine);

            addToHelpList("[Left] View Previous Object", ref pt, 0, renderer.LargeFont, forePen);
            addToHelpList("[Right] View Next Object", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[Up] Fly to Next Object", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[Down] Fly to Previous Object", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[<] View the Moon", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[>] Fly to Earth", ref pt, lineSpace, renderer.LargeFont, forePen);

            addToHelpList("[R] Swap Position and View", ref pt, largeLineSpace, renderer.LargeFont, forePen);

            addToHelpList("[\\] Adjust Date/Time", ref pt, largeLineSpace, renderer.LargeFont, forePen);
            addToHelpList("[=] Switch Local/UTC Time", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[P] Pause", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[T] Go to Today", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[Z] Slow Down", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[X] Speed Up", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[C] Reverse Time", ref pt, lineSpace, renderer.LargeFont, forePen);

            addToHelpList("[Page Up] Zoom In", ref pt, largeLineSpace, renderer.LargeFont, forePen);
            addToHelpList("[Page Down] Zoom Out", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[Home] Zoom In Full", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[End] Zoom Out Full", ref pt, lineSpace, renderer.LargeFont, forePen);

            pt = new QPoint(rect.X + rect.Size.Width * 0.67, firstLine);

            addToHelpList("[5] Show / Hide Ecliptic Grid", ref pt, 0, renderer.LargeFont, forePen);
            addToHelpList("[6] Show / Hide Equatorial Grid", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[7] Show / Hide Local Grid", ref pt, lineSpace, renderer.LargeFont, forePen);

            addToHelpList("[W] Pan Up", ref pt, largeLineSpace, renderer.LargeFont, forePen);
            addToHelpList("[S] Pan Down", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[A] Pan Left", ref pt, lineSpace, renderer.LargeFont, forePen);
            addToHelpList("[D] Pan Right", ref pt, lineSpace, renderer.LargeFont, forePen);

            addToHelpList("[Q] Tilt Left", ref pt, largeLineSpace, renderer.LargeFont, forePen);
            addToHelpList("[E] Tilt Right", ref pt, lineSpace, renderer.LargeFont, forePen);

            addToHelpList("[Space] Reset Panning", ref pt, largeLineSpace, renderer.LargeFont, forePen);
            addToHelpList("[Enter] Lock in on Target", ref pt, lineSpace, renderer.LargeFont, forePen);

            addToHelpList("[Backspace] Adjust Lat/Long", ref pt, largeLineSpace, renderer.LargeFont, forePen);

            addToHelpList("[~] Change Projection Mode", ref pt, largeLineSpace, renderer.LargeFont, forePen);

            addToHelpList("[Insert] Antialiased Graphics On / Off", ref pt, largeLineSpace, renderer.LargeFont, forePen);

            addToHelpList("[Tab] Full-Screen Mode On / Off", ref pt, largeLineSpace, renderer.LargeFont, forePen);

            addToHelpList("[Esc] Exit the simulator", ref pt, lineSpace + lineSpace, renderer.LargeItalicFont, forePen);
        }
示例#7
0
 public QRectangle GetRectangleCenteredOn(QSize Size)
 {
     return(new QRectangle((this.Width - Size.Width) / 2, (this.Height - Size.Height) / 2, Size.Width, Size.Height));
 }
示例#8
0
 public void FillRectangle(QPoint Location, QSize Size, QPen Pen)
 {
     DrawingTarget.FillRectangle(Pen, Location, Size);
 }
示例#9
0
 public void FillRectangle(QPoint Location, QSize Size, QPen FillPen, QPen BorderPen)
 {
     this.FillRectangle(Location, Size, FillPen);
     DrawingTarget.DrawRectangle(BorderPen, Location, Size);
 }
示例#10
0
        public Controller(ScreenSaverMode ScreenSaverMode, ShutdownRequestDelegate ShutdownCallback, int FrameRate, bool AllowLoadSnapshot)
        {
            this.shutdownCallback = ShutdownCallback;
            this.screenSaverMode  = ScreenSaverMode;
            this.projector        = new Projector(Properties.Settings.Default.ProjectionMode);

            this.renderer = new Renderer(screenSaverMode, projector);

            this.defaultPen = new QPen(Colors.GetColor("default_interface_color"));
            this.borderPen  = new QPen(Colors.GetColor("border"));

            this.constellationBoundaryPen = new QPen(Colors.GetColor("constellation_boundary"));

            this.eclipticCompassPen = new QPen(Colors.GetColor("ecliptic_compass"));
            this.eclipticGridPen    = new QPen(Colors.GetColor("ecliptic_grid"));

            this.equatorialCompassPen = new QPen(Colors.GetColor("equatorial_compass"));
            this.equatorialGridPen    = new QPen(Colors.GetColor("equatorial_grid"));

            this.localCompassPen = new QPen(Colors.GetColor("local_compass"));
            this.localGridPen    = new QPen(Colors.GetColor("local_grid"));

            this.instrumentLinePen    = new QPen(Colors.GetColor("instrument_line"));
            this.instrumentOutlinePen = new QPen(Colors.GetColor("instrument_outline"));
            this.instrumentDataPen    = new QPen(Colors.GetColor("instrument_data"));

            physics = new Physics(new IntegratorVelocityVerlet(true), AllowLoadSnapshot, physicsStartupDoneCallback);

            setupGrids();

            this.camera = new Camera(Properties.Settings.Default.ViewMode, CelestialBody.Earth, CelestialBody.Sun, Properties.Settings.Default.SurfaceLatitude, Properties.Settings.Default.SurfaceLongitude);

            setupInstrumentsAndWidgets(FrameRate);

            switch (ScreenSaverMode)
            {
            case SolarMax.ScreenSaverMode.Application:
                physics.SleepBetweenCycles = 0;
                break;

            case SolarMax.ScreenSaverMode.ScreenSaver:
                physics.SleepBetweenCycles = 10;
                break;

            case SolarMax.ScreenSaverMode.ScreenSaverPreview:
                physics.SleepBetweenCycles = 100;
                break;
            }

            physics.Go(System.Threading.ThreadPriority.AboveNormal);

            this.ShowData                    = Properties.Settings.Default.ShowData;
            this.ShowEquatorialGrid          = Properties.Settings.Default.ShowEquatorialGrid;
            this.ShowEclipticGrid            = Properties.Settings.Default.ShowEclipticGrid;
            this.showLocalGrid               = Properties.Settings.Default.ShowLocalGrid;
            this.InHelpMode                  = Properties.Settings.Default.ShowHelp;
            this.showInstruments             = Properties.Settings.Default.ShowInstruments;
            this.CaptionMode                 = screenSaverMode == SolarMax.ScreenSaverMode.ScreenSaverPreview ? CaptionMode.DynamicOnly : Properties.Settings.Default.CaptionMode;
            this.ConstellationMode           = Properties.Settings.Default.ConstellationMode;
            Constellation.UseAltShapes       = Properties.Settings.Default.UseAltConstellationShapes;
            this.ShowConstellationBoundaries = Properties.Settings.Default.ShowConstellationBoundaries;
            this.MinStarBrightness           = Properties.Settings.Default.MinStarBrightness;
            this.DisplayTimeUTC              = Properties.Settings.Default.DisplayTimeUTC;

            renderer.WireFrameBodyRender  = Properties.Settings.Default.WireFrameBodyRender;
            renderer.HighlightSunlitAreas = Properties.Settings.Default.HighlightSunlitAreas;

            this.HighQualityRender = Properties.Settings.Default.HighQualityRender;

            camera.SetTarget(getDefaultViewTarget());
            this.ShowCredits = true;
            creditsSize      = QSize.Empty;
        }
示例#11
0
 public void DrawEllipse(QPoint Center, QSize Size, QPen Pen)
 {
     DrawingTarget.DrawEllipse(Pen, Center, Size);
 }
示例#12
0
 public static void DrawEllipse(this Graphics G, QPen Pen, QPoint Center, QSize Size)
 {
     G.DrawEllipse(Pen.Pen, Center.X - Size.Width / 2, Center.Y - Size.Height / 2, Size.Width, Size.Height);
 }
示例#13
0
 public static void DrawRectangle(this Graphics G, QPen Pen, QPoint Location, QSize Size)
 {
     G.DrawRectangle(Pen.Pen, Location.X, Location.Y, Size.Width, Size.Height);
 }
示例#14
0
 public static void FillRectangle(this Graphics G, QPen Pen, QPoint Location, QSize Size)
 {
     G.FillRectangle(Pen.Brush, Location.X, Location.Y, Size.Width, Size.Height);
 }
示例#15
0
 public QRectangle GetRectangleCenteredOn(QSize Size)
 {
     return(new QRectangle(new QPoint(this.X + (this.Size.Width - Size.Width) / 2,
                                      this.Y + (this.Size.Height - Size.Height) / 2),
                           Size));
 }
示例#16
0
 static QSize()
 {
     Empty = new QSize(0, 0);
 }
示例#17
0
 public static void DrawRectangle(this WriteableBitmap bmp, QPen Pen, QPoint Point, QSize Size)
 {
     bmp.DrawRectangle(Pen, (int)Point.X, (int)Point.Y, (int)(Point.X + Size.Width), (int)(Point.Y + Size.Height));
 }
示例#18
0
 public DialogHelp(IRenderer Renderer, QSize ScreenSize, CloseCallback CloseCallback, QPen ForePen, QPen BorderPen, QPen BackPen) : base(Renderer, ScreenSize, CloseCallback, ForePen, BorderPen, BackPen)
 {
 }