public override void Draw(CircuitEditor editor, Context cr) { if (Selecting) { var size = editor.FromGridDistToWorld(SelectionSize); Console.WriteLine($"Pos: {editor.FromGridToWorld(SelectionStart)}, Size: {size}"); cr.Rectangle(editor.FromGridToWorld(SelectionStart), size.X, size.Y); cr.SetSourceRGBA(0.1, 0.1, 0.3, 0.3); cr.Fill(); } if (SelectedWires.Count > 0) { foreach (var wire in SelectedWires) { var size = new Vector2d(10, 10); var pos = editor.FromGridToWorld(wire.Pos) - (size / 2); cr.Rectangle(pos, size.X, size.Y); var endpos = editor.FromGridToWorld(wire.EndPos) - (size / 2); cr.Rectangle(endpos, size.X, size.Y); } cr.SetSourceRGB(1, 1, 1); cr.FillPreserve(); cr.SetSourceRGB(0.1, 0.1, 0.1); cr.Stroke(); } }
public override void Draw(CircuitEditor editor, Context cr) { if (Selecting) { var size = editor.FromGridDistToWorld(SelectionSize); Console.WriteLine($"Pos: {editor.FromGridToWorld(SelectionStart)}, Size: {size}"); cr.Rectangle(editor.FromGridToWorld(SelectionStart), size.X, size.Y); cr.SetSourceRGBA(0.1, 0.1, 0.3, 0.3); cr.Fill(); } }
public override void Draw(CircuitEditor editor, Context cr) { if (Selecting) { var size = editor.FromGridDistToWorld(SelectionSize); cr.Rectangle(editor.FromGridToWorld(SelectionStart), size.X, size.Y); cr.SetSourceRGBA(0.1, 0.1, 0.3, 0.3); cr.Fill(); } if (SelectedWires.Count > 0) { foreach (var wire in SelectedWires) { var size = new Vector2d(10, 10); var pos = editor.FromGridToWorld(wire.Pos) - (size / 2); cr.Rectangle(pos, size.X, size.Y); var endpos = editor.FromGridToWorld(wire.EndPos) - (size / 2); cr.Rectangle(endpos, size.X, size.Y); } cr.SetSourceRGB(1, 1, 1); cr.FillPreserve(); cr.SetSourceRGB(0.1, 0.1, 0.1); cr.Stroke(); } if (SelectedGates.Count > 0) { foreach (var instance in SelectedGates) { Rect r = editor.Scene.Gates.GetBounds(instance); r = r.Rotate(instance.Position * CircuitEditor.DotSpacing, instance.Orientation); var size = new Vector2d(10, 10); var hSize = size / 2; cr.Rectangle(r.TopLeft - hSize, size.X, size.Y); cr.Rectangle(r.TopRight - hSize, size.X, size.Y); cr.Rectangle(r.BottomLeft - hSize, size.X, size.Y); cr.Rectangle(r.BottomRight - hSize, size.X, size.Y); } cr.SetSourceRGB(1, 1, 1); cr.FillPreserve(); cr.SetSourceRGB(0.1, 0.1, 0.1); cr.Stroke(); } }