Example #1
0
        public void RemoveFigure(Figure figure)
        {
            if (figure == null)
            {
                return;
            }

            StartBulkEdit();

            Selection.All.Remove(figure);

            figure.Canvas = null;
            _figures.Remove(figure);
            SnapCluster.Remove(figure);

            EndBulkEdit();
        }
Example #2
0
        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));
        }
Example #3
0
        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();
        }