Esempio n. 1
0
        internal static void DrawEWSDispenserStatus(
            Graphics gfx, RectangleF goNogoRect, StringFormat miscTextStringFormat, Color warnColor, Color okColor, RectangleF rdyRectangle, RectangleF pflRectangle, Color scopeGreenColor, Font font,
            InstrumentState instrumentState)
        {
            if (instrumentState.EWSGo)
            {
                var legendColor = scopeGreenColor;
                using (var legendBrush = new SolidBrush(legendColor)) { StringRenderer.DrawString(gfx, "GO", font, legendBrush, goNogoRect, miscTextStringFormat); }
            }
            else if (instrumentState.EWSNoGo)
            {
                var legendColor = warnColor;
                using (var legendBrush = new SolidBrush(legendColor)) { StringRenderer.DrawString(gfx, "NOGO", font, legendBrush, goNogoRect, miscTextStringFormat); }
            }
            else if (instrumentState.EWSDispenseReady)
            {
                var legendColor = scopeGreenColor;
                using (var legendBrush = new SolidBrush(legendColor)) { StringRenderer.DrawString(gfx, "DISP", font, legendBrush, goNogoRect, miscTextStringFormat); }
            }

            if (instrumentState.EWSDispenseReady)
            {
                var legendColor = okColor;
                using (var legendBrush = new SolidBrush(legendColor)) { StringRenderer.DrawString(gfx, "RDY", font, legendBrush, rdyRectangle, miscTextStringFormat); }
            }

            if (instrumentState.EWSDegraded) //draw PFL legend
            {
                var legendColor = warnColor;
                using (var legendBrush = new SolidBrush(legendColor)) { StringRenderer.DrawString(gfx, "PFL", font, legendBrush, pflRectangle, miscTextStringFormat); }
            }
        }
        internal static void DrawRWRTestPage2(Graphics gfx, Font font)
        {
            var pageLegendStringFormat = new StringFormat()
            {
                Alignment     = StringAlignment.Center,
                LineAlignment = StringAlignment.Near,
                Trimming      = StringTrimming.None,
                FormatFlags   = StringFormatFlags.NoWrap
            };
            var RwrLegendRectangle = new Rectangle(86, 80, 30, 30);

            StringRenderer.DrawString(gfx, "F16C", font, Brushes.Lime, RwrLegendRectangle, pageLegendStringFormat);
            var Rwr1LegendRectangle = new Rectangle(105, 100, 30, 30);

            StringRenderer.DrawString(gfx, "1*OFP  0020", font, Brushes.Lime, Rwr1LegendRectangle, pageLegendStringFormat);
            var Rwr2LegendRectangle = new Rectangle(105, 120, 30, 30);

            StringRenderer.DrawString(gfx, "2*WO   0040", font, Brushes.Lime, Rwr2LegendRectangle, pageLegendStringFormat);
            var Rwr3LegendRectangle = new Rectangle(119, 140, 30, 30);

            StringRenderer.DrawString(gfx, "PA   0050", font, Brushes.Lime, Rwr3LegendRectangle, pageLegendStringFormat);
            var Rwr4LegendRectangle = new Rectangle(119, 160, 30, 30);

            StringRenderer.DrawString(gfx, "US   0060", font, Brushes.Lime, Rwr4LegendRectangle, pageLegendStringFormat);
        }
Esempio n. 3
0
        internal static void DrawChaffCount(
            Color severeColor, Color warnColor, Color okColor, Graphics gfx, RectangleF chaffCountRectangle, StringFormat chaffFlareCountStringFormat, InstrumentState instrumentState, Font font)
        {
            //draw chaff count
            Color chaffCountColor;

            if (instrumentState.ChaffCount == 0)
            {
                chaffCountColor = severeColor;
            }
            else if (instrumentState.ChaffLow)
            {
                chaffCountColor = warnColor;
            }
            else
            {
                chaffCountColor = okColor;
            }
            using (var chaffCountBrush = new SolidBrush(chaffCountColor))
            {
                StringRenderer.DrawString(gfx, "CHAF", font, chaffCountBrush, chaffCountRectangle, chaffFlareCountStringFormat);
                chaffCountRectangle.Offset(0, 12);
                StringRenderer.DrawString(gfx, $"{instrumentState.ChaffCount:00}", font, chaffCountBrush, chaffCountRectangle, chaffFlareCountStringFormat);
            }
        }
Esempio n. 4
0
        internal static void DrawEWSModeStandby(Graphics gfx, RectangleF ewmsModeRectangle, StringFormat miscTextStringFormat, Color warnColor, Font font)
        {
            var legendColor = warnColor;

            using (var legendBrush = new SolidBrush(legendColor))
            {
                StringRenderer.DrawString(gfx, "SBY", font, legendBrush, ewmsModeRectangle, miscTextStringFormat);
            }
        }
Esempio n. 5
0
 internal static void DrawHOFFLegend(Graphics gfx, Rectangle leftLegend2Rectangle, StringFormat verticalOsbLegendLHSFormat, InstrumentState instrumentState, Font font, Brush brush)
 {
     if (instrumentState.RWRPowerOn && instrumentState.Handoff) //draw highlighted HOFF legend
     {
         gfx.FillRectangle(brush, leftLegend2Rectangle);
         StringRenderer.DrawString(gfx, "HOFF", font, Brushes.Black, leftLegend2Rectangle, verticalOsbLegendLHSFormat);
     }
     else //draw non-highlighted HOFF legend
     {
         StringRenderer.DrawString(gfx, "HOFF", font, brush, leftLegend2Rectangle, verticalOsbLegendLHSFormat);
     }
 }
 internal static void DrawALTLegend(Graphics gfx, Rectangle rightLegend3Rectangle, StringFormat verticalOsbLegendRHSFormat, InstrumentState instrumentState, Brush brush, Font font)
 {
     if (instrumentState.RWRPowerOn && instrumentState.LowAltitudeMode) //draw highlighted ALT legend
     {
         gfx.FillRectangle(brush, rightLegend3Rectangle);
         StringRenderer.DrawString(gfx, "ALT", font, Brushes.Black, rightLegend3Rectangle, verticalOsbLegendRHSFormat);
     }
     else //draw non-highlighted ALT legend
     {
         StringRenderer.DrawString(gfx, "ALT", font, brush, rightLegend3Rectangle, verticalOsbLegendRHSFormat);
     }
 }
Esempio n. 7
0
 internal static void DrawSRCHLegend(Graphics gfx, Rectangle rightLegend2Rectangle, StringFormat verticalOsbLegendRHSFormat, InstrumentState instrumentState, Font font, Brush brush)
 {
     if (instrumentState.RWRPowerOn &&
         (instrumentState.SearchMode || NonVisibleSearchThreatsDetector.AreNonVisibleSearchThreatsDetected(instrumentState) && DateTime.UtcNow.Millisecond % 500 < 250))
     //draw highlighted SRCH legend
     {
         gfx.FillRectangle(brush, rightLegend2Rectangle);
         StringRenderer.DrawString(gfx, "SRCH", font, Brushes.Black, rightLegend2Rectangle, verticalOsbLegendRHSFormat);
     }
     else //draw non-highlighted SRCH legend
     {
         StringRenderer.DrawString(gfx, "SRCH", font, brush, rightLegend2Rectangle, verticalOsbLegendRHSFormat);
     }
 }
Esempio n. 8
0
        internal static void DrawCenterRWRSearchModeIndication(Graphics gfx, Font font)
        {
            var pageLegendStringFormat = new StringFormat
            {
                Alignment     = StringAlignment.Center,
                LineAlignment = StringAlignment.Near,
                Trimming      = StringTrimming.None,
                FormatFlags   = StringFormatFlags.NoWrap
            };

            var RwrLegendRectangle = new Rectangle(113, 119, 30, 30);

            StringRenderer.DrawString(gfx, "S", font, Brushes.Lime, RwrLegendRectangle, pageLegendStringFormat);
        }
 internal static void DrawPRILegend(Graphics gfx, Rectangle leftLegend4Rectangle, StringFormat verticalOsbLegendLHSFormat, InstrumentState instrumentState, Brush brush, Font font)
 {
     if (instrumentState.RWRPowerOn &&
         (instrumentState.PriorityMode && !NonVisiblePriorityThreatsDetector.AreNonVisiblePriorityThreatsDetected(instrumentState) ||
          instrumentState.PriorityMode && NonVisiblePriorityThreatsDetector.AreNonVisiblePriorityThreatsDetected(instrumentState) && DateTime.UtcNow.Millisecond % 500 < 250))
     {
         gfx.FillRectangle(brush, leftLegend4Rectangle);
         StringRenderer.DrawString(gfx, "PRI", font, Brushes.Black, leftLegend4Rectangle, verticalOsbLegendLHSFormat);
     }
     else //draw non-highlighted PRI legend
     {
         StringRenderer.DrawString(gfx, "PRI", font, brush, leftLegend4Rectangle, verticalOsbLegendLHSFormat);
     }
 }
Esempio n. 10
0
 internal static void DrawUNKLegend(Graphics gfx, Rectangle leftLegend1Rectangle, StringFormat verticalOsbLegendLHSFormat, InstrumentState instrumentState, Font font, Brush brush)
 {
     if (instrumentState.RWRPowerOn &&
         (instrumentState.UnknownThreatScanMode ||
          NonVisibleUnknownThreatsDetector.AreNonVisibleUnknownThreatsDetected(instrumentState) && DateTime.UtcNow.Millisecond % 500 < 250))       //draw highlighted UNK legend
     {
         gfx.FillRectangle(brush, leftLegend1Rectangle);
         StringRenderer.DrawString(gfx, "UNK", font, Brushes.Black, leftLegend1Rectangle, verticalOsbLegendLHSFormat);
     }
     else //draw non-highlighted UNK legend
     {
         StringRenderer.DrawString(gfx, "UNK", font, brush, leftLegend1Rectangle, verticalOsbLegendLHSFormat);
     }
 }
        internal static void DrawRWRTestPage1(Graphics gfx, Font font)
        {
            var pageLegendStringFormat = new StringFormat()
            {
                Alignment     = StringAlignment.Center,
                LineAlignment = StringAlignment.Near,
                Trimming      = StringTrimming.None,
                FormatFlags   = StringFormatFlags.NoWrap
            };
            var RwrLegendRectangle = new Rectangle(114, 98, 30, 30);

            StringRenderer.DrawString(gfx, "RWR", font, Brushes.Lime, RwrLegendRectangle, pageLegendStringFormat);
            var Rwr2LegendRectangle = new Rectangle(114, 118, 30, 30);

            StringRenderer.DrawString(gfx, "SYSTEM GO", font, Brushes.Lime, Rwr2LegendRectangle, pageLegendStringFormat);
        }
        internal static void DrawPageLegends(int backgroundHeight, Graphics gfx, InstrumentState instrumentState, Font font)
        {
            //Draw the page legends
            var pageLegendStringFormat = new StringFormat
            {
                Alignment     = StringAlignment.Center,
                LineAlignment = StringAlignment.Near,
                Trimming      = StringTrimming.None,
                FormatFlags   = StringFormatFlags.NoWrap
            };

            const int pageLegendHeight     = 15;
            const int pageLegendWidth      = 35;
            const int pageLegendSeparation = 15;
            var       tacLegendRectangle   = new Rectangle(57, backgroundHeight - pageLegendHeight - 5, pageLegendWidth, pageLegendHeight);
            var       sysLegendRectangle   = new Rectangle(tacLegendRectangle.Right + pageLegendSeparation, tacLegendRectangle.Y, pageLegendWidth, pageLegendHeight);
            var       tstLegendRectangle   = new Rectangle(sysLegendRectangle.Right + pageLegendSeparation, tacLegendRectangle.Y, pageLegendWidth, pageLegendHeight);

            //draw highlighted TAC legend
            gfx.FillRectangle(Brushes.White, tacLegendRectangle);
            StringRenderer.DrawString(gfx, "TAC", font, Brushes.Black, tacLegendRectangle, pageLegendStringFormat);

            //draw non-highlighted SYS legend
            StringRenderer.DrawString(gfx, "SYS", font, Brushes.White, sysLegendRectangle, pageLegendStringFormat);

            if (instrumentState.RWRTest1 || instrumentState.RWRTest2) //Added Falcas 10-11-2012
            {
                //draw highlighted TST legend
                gfx.FillRectangle(Brushes.White, tstLegendRectangle);
                StringRenderer.DrawString(gfx, "TST", font, Brushes.Black, tstLegendRectangle, pageLegendStringFormat);
            }
            else
            {
                //draw non-highlighted TST legend
                StringRenderer.DrawString(gfx, "TST", font, Brushes.White, tstLegendRectangle, pageLegendStringFormat);
            }
        }
        internal static void DrawFlareCount(
            Color severeColor, Color warnColor, Color okColor, Graphics gfx, RectangleF flareCountRectangle, StringFormat chaffFlareCountStringFormat, InstrumentState instrumentState, Font font)
        {
            Color flareCountColor;

            if (instrumentState.FlareCount == 0)
            {
                flareCountColor = severeColor;
            }
            else if (instrumentState.FlareLow)
            {
                flareCountColor = warnColor;
            }
            else
            {
                flareCountColor = okColor;
            }
            using (var flareCountBrush = new SolidBrush(flareCountColor))
            {
                StringRenderer.DrawString(gfx, "FLAR", font, flareCountBrush, flareCountRectangle, chaffFlareCountStringFormat);
                flareCountRectangle.Offset(0, 12);
                StringRenderer.DrawString(gfx, $"{instrumentState.FlareCount:00}", font, flareCountBrush, flareCountRectangle, chaffFlareCountStringFormat);
            }
        }
Esempio n. 14
0
        internal static void DrawEmitterSymbol(int symbolId, Graphics g, RectangleF bounds, bool largeSize, bool primarySymbol, Color color, Font largeFont, Font smallFont, int width)
        {
            var originalTransform = g.Transform;
            var symbolFont        = largeSize ? largeFont : smallFont;

            var x = bounds.X;
            var y = bounds.Y;

            var basicInterceptorPoints     = GetBasicInterceptorPoints(bounds, x, y);
            var advancedInterceptorPoints  = GetAdvancedInterceptorPoints(bounds, x, y);
            var airborneThreatSymbolPoints = GetAirborneThreatSymbolPoints(bounds, x, y);
            var shipSymbolPoints           = GetShipSymbolPoints(bounds, width, x, y);

            bounds.Offset(0, 2);
            var sf = new StringFormat(StringFormatFlags.NoWrap)
            {
                Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center
            };
            const int lineSpacing = 4;

            using (Brush brush = new SolidBrush(color))
                using (var pen = new Pen(color))
                {
                    switch (symbolId)
                    {
                    case 0: break;

                    case 1:
                        StringRenderer.DrawString(g, "U", symbolFont, brush, bounds, sf);
                        break;

                    case 2:
                        g.DrawPolygon(pen, advancedInterceptorPoints);
                        break;

                    case 3:
                        g.DrawPolygon(pen, basicInterceptorPoints);
                        break;

                    case 4:
                        StringRenderer.DrawString(g, "M", symbolFont, brush, bounds, sf);
                        break;

                    case 5:
                        StringRenderer.DrawString(g, "H", symbolFont, brush, bounds, sf);
                        break;

                    case 6:
                        StringRenderer.DrawString(g, "P", symbolFont, brush, bounds, sf);
                        break;

                    case 7:
                        StringRenderer.DrawString(g, "2", symbolFont, brush, bounds, sf);
                        break;

                    case 8:
                        StringRenderer.DrawString(g, "3", symbolFont, brush, bounds, sf);
                        break;

                    case 9:
                        StringRenderer.DrawString(g, "4", symbolFont, brush, bounds, sf);
                        break;

                    case 10:
                        StringRenderer.DrawString(g, "5", symbolFont, brush, bounds, sf);
                        break;

                    case 11:
                        StringRenderer.DrawString(g, "6", symbolFont, brush, bounds, sf);
                        break;

                    case 12:
                        StringRenderer.DrawString(g, "8", symbolFont, brush, bounds, sf);
                        break;

                    case 13:
                        StringRenderer.DrawString(g, "9", symbolFont, brush, bounds, sf);
                        break;

                    case 14:
                        StringRenderer.DrawString(g, "10", symbolFont, brush, bounds, sf);
                        break;

                    case 15:
                        StringRenderer.DrawString(g, "13", symbolFont, brush, bounds, sf);
                        break;

                    case 16:
                        StringRenderer.DrawString(g, primarySymbol ? "A" : "S", symbolFont, brush, bounds, sf);
                        break;

                    case 17:
                        StringRenderer.DrawString(g, "S", symbolFont, brush, bounds, sf);
                        break;

                    case 18:
                        g.DrawPolygon(pen, shipSymbolPoints);
                        break;

                    case 19:
                        StringRenderer.DrawString(g, "C", symbolFont, brush, bounds, sf);
                        break;

                    case 20:
                        StringRenderer.DrawString(g, primarySymbol ? "15" : "M", symbolFont, brush, bounds, sf);
                        break;

                    case 21:
                        StringRenderer.DrawString(g, "N", symbolFont, brush, bounds, sf);
                        break;

                    case 22:
                        StringRenderer.DrawString(g, "A", symbolFont, brush, bounds, sf);
                        bounds.Offset(0, lineSpacing);
                        StringRenderer.DrawString(g, ".", symbolFont, brush, bounds, sf);
                        break;

                    case 23:
                        StringRenderer.DrawString(g, "A", symbolFont, brush, bounds, sf);
                        bounds.Offset(0, lineSpacing);
                        StringRenderer.DrawString(g, "..", symbolFont, brush, bounds, sf);
                        break;

                    case 24:
                        StringRenderer.DrawString(g, "A", symbolFont, brush, bounds, sf);
                        bounds.Offset(0, lineSpacing);
                        StringRenderer.DrawString(g, "...", symbolFont, brush, bounds, sf);
                        break;

                    case 25:
                        StringRenderer.DrawString(g, "P", symbolFont, brush, bounds, sf);
                        bounds.Offset(0, lineSpacing);
                        StringRenderer.DrawString(g, ".", symbolFont, brush, bounds, sf);
                        break;

                    case 26:
                        StringRenderer.DrawString(g, "P|", symbolFont, brush, bounds, sf);
                        break;

                    case 27:
                        StringRenderer.DrawString(g, "U", symbolFont, brush, bounds, sf);
                        bounds.Offset(0, lineSpacing);
                        StringRenderer.DrawString(g, ".", symbolFont, brush, bounds, sf);
                        break;

                    case 28:
                        StringRenderer.DrawString(g, "U", symbolFont, brush, bounds, sf);
                        bounds.Offset(0, lineSpacing);
                        StringRenderer.DrawString(g, "..", symbolFont, brush, bounds, sf);
                        break;

                    case 29:
                        StringRenderer.DrawString(g, "U", symbolFont, brush, bounds, sf);
                        bounds.Offset(0, lineSpacing);
                        StringRenderer.DrawString(g, "...", symbolFont, brush, bounds, sf);
                        break;

                    case 30:
                        StringRenderer.DrawString(g, "C", symbolFont, brush, bounds, sf);
                        break;

                    case 31:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "1", symbolFont, brush, bounds, sf);
                        break;

                    case 32:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "4", symbolFont, brush, bounds, sf);
                        break;

                    case 33:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "5", symbolFont, brush, bounds, sf);
                        break;

                    case 34:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "6", symbolFont, brush, bounds, sf);
                        break;

                    case 35:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "14", symbolFont, brush, bounds, sf);
                        break;

                    case 36:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "15", symbolFont, brush, bounds, sf);
                        break;

                    case 37:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "16", symbolFont, brush, bounds, sf);
                        break;

                    case 38:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "18", symbolFont, brush, bounds, sf);
                        break;

                    case 39:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "19", symbolFont, brush, bounds, sf);
                        break;

                    case 40:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "20", symbolFont, brush, bounds, sf);
                        break;

                    case 41:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "21", symbolFont, brush, bounds, sf);
                        break;

                    case 42:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "22", symbolFont, brush, bounds, sf);
                        break;

                    case 43:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "23", symbolFont, brush, bounds, sf);
                        break;

                    case 44:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "25", symbolFont, brush, bounds, sf);
                        break;

                    case 45:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "27", symbolFont, brush, bounds, sf);
                        break;

                    case 46:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "29", symbolFont, brush, bounds, sf);
                        break;

                    case 47:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "30", symbolFont, brush, bounds, sf);
                        break;

                    case 48:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "31", symbolFont, brush, bounds, sf);
                        break;

                    case 49:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "P", symbolFont, brush, bounds, sf);
                        break;

                    case 50:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "PD", symbolFont, brush, bounds, sf);
                        break;

                    case 51:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "A", symbolFont, brush, bounds, sf);
                        break;

                    case 52:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "B", symbolFont, brush, bounds, sf);
                        break;

                    case 53:
                        g.DrawLines(pen, airborneThreatSymbolPoints);
                        StringRenderer.DrawString(g, "S", symbolFont, brush, bounds, sf);
                        break;

                    case 54:
                        StringRenderer.DrawString(g, " A|", symbolFont, brush, bounds, sf);
                        break;

                    case 55:
                        StringRenderer.DrawString(g, "|A|", symbolFont, brush, bounds, sf);
                        break;

                    case 56:
                        StringRenderer.DrawString(g, "|||", symbolFont, brush, bounds, sf);
                        StringRenderer.DrawString(g, "A", symbolFont, brush, bounds, sf);
                        break;

                    case 57:
                        StringRenderer.DrawString(g, primarySymbol ? "F" : "S", symbolFont, brush, bounds, sf);
                        break;

                    case 58:
                        StringRenderer.DrawString(g, primarySymbol ? "F" : "A", symbolFont, brush, bounds, sf);
                        break;

                    case 59:
                        StringRenderer.DrawString(g, primarySymbol ? "F" : "M", symbolFont, brush, bounds, sf);
                        break;

                    case 60:
                        StringRenderer.DrawString(g, primarySymbol ? "F" : "U", symbolFont, brush, bounds, sf);
                        break;

                    case 61:
                        if (primarySymbol)
                        {
                            StringRenderer.DrawString(g, "F", symbolFont, brush, bounds, sf);
                        }
                        else
                        {
                            g.DrawPolygon(pen, basicInterceptorPoints);
                        }
                        break;

                    case 62:
                        if (primarySymbol)
                        {
                            StringRenderer.DrawString(g, "S", symbolFont, brush, bounds, sf);
                        }
                        else
                        {
                            g.DrawPolygon(pen, basicInterceptorPoints);
                        }
                        break;

                    case 63:
                        if (primarySymbol)
                        {
                            StringRenderer.DrawString(g, "A", symbolFont, brush, bounds, sf);
                        }
                        else
                        {
                            g.DrawPolygon(pen, basicInterceptorPoints);
                        }
                        break;

                    case 64:
                        if (primarySymbol)
                        {
                            StringRenderer.DrawString(g, "M", symbolFont, brush, bounds, sf);
                        }
                        else
                        {
                            g.DrawPolygon(pen, basicInterceptorPoints);
                        }
                        break;

                    default:
                        if (symbolId >= 100)
                        {
                            var symbolString = (symbolId - 100).ToString();
                            StringRenderer.DrawString(g, symbolString, symbolFont, brush, bounds, sf);
                        }
                        else if (symbolId >= 65)
                        {
                            var symbolString = Encoding.ASCII.GetString(new[] { (byte)symbolId });
                            StringRenderer.DrawString(g, symbolString, symbolFont, brush, bounds, sf);
                        }
                        else if (symbolId < 0)
                        {
                            StringRenderer.DrawString(g, "U", symbolFont, brush, bounds, sf);
                        }
                        break;
                    }
                }

            g.Transform = originalTransform;
        }
        internal static void DrawEWSModeOff(Color severeColor, Graphics gfx, RectangleF ewmsModeRectangle, StringFormat miscTextStringFormat, Font font)
        {
            var legendColor = severeColor;

            using (var legendBrush = new SolidBrush(legendColor)) { StringRenderer.DrawString(gfx, "OFF", font, legendBrush, ewmsModeRectangle, miscTextStringFormat); }
        }