private void DrawSymbol(DrawingContext drawingContext, RWRSymbol symbol, double x, double y, bool big)
        {
            double scale = big ? 1.5 : 1;

            switch (symbol)
            {
            case RWRSymbol.Diamond:
                double MARK_SIZE = 0.15 * scale;
                SetDisplayOrigin(x, y);
                DrawLine(drawingContext, 0.0, MARK_SIZE, MARK_SIZE, 0.0);
                DrawLine(drawingContext, 0.0, MARK_SIZE, -MARK_SIZE, 0.0);
                DrawLine(drawingContext, 0.0, -MARK_SIZE, MARK_SIZE, 0.0);
                DrawLine(drawingContext, 0.0, -MARK_SIZE, -MARK_SIZE, 0.0);
                ZeroDisplayOrigin();
                break;

            case RWRSymbol.Hat:
                double[,] lines =
                {
                    { -0.050F, 0.032F },
                    {  0.000F, 0.082F },
                    {  0.000F, 0.082F },
                    {  0.050F, 0.032F }
                };
                SetDisplayOrigin(x, y);
                for (int i = 1; i < lines.Length / 2;)
                {
                    DrawLine(drawingContext, lines[i, 0] * scale, lines[i, 1] * scale, lines[i - 1, 0] * scale, lines[i - 1, 1] * scale);
                    i++;
                    i++;
                }
                ZeroDisplayOrigin();
                break;

            case RWRSymbol.MissileActivity:
                if (flashFaster)
                {
                    SetDisplayOrigin(x, y);
                    DrawCircle(drawingContext, 0, 0, 0.10);
                    ZeroDisplayOrigin();
                }
                break;

            case RWRSymbol.MissileLaunch:
                SetDisplayOrigin(x, y);
                DrawCircle(drawingContext, 0, 0, 0.10);
                ZeroDisplayOrigin();
                break;

            default:
                break;
            }
        }
        private void DrawSymbol(DrawingContext drawingContext, RWRSymbol symbol, double x, double y, bool big)
        {
            double scale = big ? 1.5 : 1;

            switch (symbol)
            {
            case RWRSymbol.Hat:
            {
                double[,] lines =
                {
                    {  0.000F, 0.086F },
                    { -0.066F, 0.054F },
                    {  0.000F, 0.086F },
                    {  0.066F, 0.054F },
                    { -0.066F, 0.054F },
                    {  0.066F, 0.054F }
                };
                SetDisplayOrigin(x, y);
                for (int i = 1; i < lines.Length / 2;)
                {
                    DrawLine(drawingContext, lines[i, 0] * scale, lines[i, 1] * scale, lines[i - 1, 0] * scale, lines[i - 1, 1] * scale);
                    i++;
                    i++;
                }
                ZeroDisplayOrigin();
            }
            break;

            case RWRSymbol.Lethal:
            {
                double size = 0.15;
                SetDisplayOrigin(x, y);
                DrawLine(drawingContext, size, size, -size, size);
                DrawLine(drawingContext, size, -size, -size, -size);
                DrawLine(drawingContext, size, size, size, -size);
                DrawLine(drawingContext, -size, size, -size, -size);
                ZeroDisplayOrigin();
            }
            break;

            case RWRSymbol.NewDetection:
            {
                double MARK_SIZE = 0.15 * scale;
                double spotSize  = MARK_SIZE * 0.166;
                double position  = MARK_SIZE - (spotSize / 2);
                SetDisplayOrigin(x, y);
                DrawSolidCircle(drawingContext, position, position, spotSize);
                DrawSolidCircle(drawingContext, -position, position, spotSize);
                DrawSolidCircle(drawingContext, position, -position, spotSize);
                DrawSolidCircle(drawingContext, -position, -position, spotSize);
                ZeroDisplayOrigin();
            }
            break;

            case RWRSymbol.Diamond:
            {
                double MARK_SIZE = 0.15 * scale;
                SetDisplayOrigin(x, y);
                DrawLine(drawingContext, 0.0, MARK_SIZE, MARK_SIZE, 0.0);
                DrawLine(drawingContext, 0.0, MARK_SIZE, -MARK_SIZE, 0.0);
                DrawLine(drawingContext, 0.0, -MARK_SIZE, MARK_SIZE, 0.0);
                DrawLine(drawingContext, 0.0, -MARK_SIZE, -MARK_SIZE, 0.0);
                ZeroDisplayOrigin();
            }
            break;

            case RWRSymbol.MissileActivity:
                if (flashFaster)
                {
                    scale = 1.5f;
                    SetDisplayOrigin(x, y);
                    double[,] lines =
                    {
                        { -0.100F, -0.050F },
                        { -0.100F,  0.050F },
                        { -0.050F,  0.100F },
                        {  0.050F,  0.100F },
                        {  0.050F, -0.100F },
                        { -0.050F, -0.100F },
                        {  0.100F,  0.050F },
                        {  0.100F, -0.050F },
                        { -0.100F,  0.050F },
                        { -0.050F,  0.100F },
                        {  0.050F,  0.100F },
                        {  0.100F,  0.050F },
                        { -0.100F, -0.050F },
                        { -0.050F, -0.100F },
                        {  0.100F, -0.050F },
                        {  0.050F, -0.100F }
                    };
                    SetDisplayOrigin(x, y);
                    for (int i = 1; i < lines.Length / 2;)
                    {
                        DrawLine(drawingContext, lines[i, 0] * scale, lines[i, 1] * scale, lines[i - 1, 0] * scale, lines[i - 1, 1] * scale);
                        i++;
                        i++;
                    }
                    ZeroDisplayOrigin();
                }
                break;

            case RWRSymbol.MissileLaunch:
            {
                scale = 1.5f;
                SetDisplayOrigin(x, y);
                double[,] lines =
                {
                    { -0.100F, -0.050F },
                    { -0.100F,  0.050F },
                    { -0.050F,  0.100F },
                    {  0.050F,  0.100F },
                    {  0.050F, -0.100F },
                    { -0.050F, -0.100F },
                    {  0.100F,  0.050F },
                    {  0.100F, -0.050F },
                    { -0.100F,  0.050F },
                    { -0.050F,  0.100F },
                    {  0.050F,  0.100F },
                    {  0.100F,  0.050F },
                    { -0.100F, -0.050F },
                    { -0.050F, -0.100F },
                    {  0.100F, -0.050F },
                    {  0.050F, -0.100F }
                };
                SetDisplayOrigin(x, y);
                for (int i = 1; i < lines.Length / 2;)
                {
                    DrawLine(drawingContext, lines[i, 0] * scale, lines[i, 1] * scale, lines[i - 1, 0] * scale, lines[i - 1, 1] * scale);
                    i++;
                    i++;
                }
                ZeroDisplayOrigin();
            }
            break;

            default:
                break;
            }
        }