protected override void OnMouseDown(object sender, MouseButtonEventArgs e) { if (!Enabled || Time <= 0.05f) { return; } System.Numerics.Vector2 pos = MainWindow.ScreenToCoord(e.X, e.Y, Window.Width, Window.Height) / Scale; if (e.Button == MouseButton.Left) { bool s = false; if (_pObjs.Count > 0) { var list = (from obj in _pObjs where (obj.PObject.Position - pos).LengthSquared() < SelectRadius * SelectRadius orderby(obj.PObject.Position - pos).LengthSquared() select obj).ToArray(); if (list.Length > 0) { s = true; _selected = list[0]; } } if (!s) { MovableObject obj = new MovableObject(pos); var rpo = new RPhysicalObject(obj, Window.ColoredProgram); _pObjs.Add(rpo); _selected = rpo; Console.WriteLine($"Added object at {pos}"); } _selectMarker.Position = new Vector3(_selected.PObject.Position.X, _selected.PObject.Position.Y, 0f) * Scale; } }
public override void Initialize() { Time = 0f; foreach (RPhysicalObject obj in _pObjs) { obj.Dispose(); } _selected = null; _pObjs.Clear(); _lines.Clear(); }