public void RemoveFigure(Figure figure) { if (figure == null) { return; } StartBulkEdit(); Selection.All.Remove(figure); figure.Canvas = null; _figures.Remove(figure); SnapCluster.Remove(figure); EndBulkEdit(); }
public Canvas(int zOrder) { CoordinateSystem = new CartesianCoordinateSystem(0, 0); Selection = new Selection(this); ZOrder = zOrder; HandleFactory = new HandleFactory(); //InstallEditPolicy(new BoundingBoxSelectionPolicy()); //InstallEditPolicy(new SnapGridPolicy()); //InstallEditPolicy(new ConnectionModeKeyboardPolicy()); SnapCluster = new SnapCluster <Figure>(10, 10); QuadTree = new QuadTree <Figure>(new Geo.Rectangle(0, 0, Width, Height)); }
public void AddFigure(Figure figure) { if (figure.Canvas == this) { return; } StartBulkEdit(); figure.Canvas = this; if (figure.CanBeSnapTarget) { SnapCluster.Add(figure.GetSnapPoints(), figure); } QuadTree.Insert(figure); _figures.Add(figure); EndBulkEdit(); }