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