Exemple #1
0
        //--------------------------------------------------------------------------------------------------

        #endregion

        #region Selection

        void _OnSelectionChanged(ToolAction toolAction)
        {
            if (CurrentTool != null)
            {
                return;
            }

            if (_MoveAction != null)
            {
                _MoveAction.Stop();
                _MoveAction = null;
            }

            _UpdateSelections();

            if (SelectedSegments.Any() || SelectedPoints.Any())
            {
                _MoveAction = new MoveSketchPointAction(this);
                if (!WorkspaceController.StartToolAction(_MoveAction, false))
                {
                    return;
                }
                _MoveAction.Previewed += _OnMoveActionPreview;
                _MoveAction.Finished  += _OnMoveActionFinished;

                var segPoints = SelectedSegments.SelectMany(seg => seg.Points);
                _MoveAction.SetSketchElements(Sketch, SelectedPoints.Union(segPoints).ToList());
            }

            WorkspaceController.Invalidate();
        }
Exemple #2
0
        //--------------------------------------------------------------------------------------------------

        public List <SketchConstraint> CreateConstraint <T>() where T : SketchConstraint
        {
            if (!CanCreateConstraint <T>())
            {
                return(null);
            }

            var constraints = SketchConstraintCreator.Create <T>(Sketch, SelectedPoints, SelectedSegmentIndices);

            if (constraints != null)
            {
                Sketch.AddElements(null, null, null, constraints);
                Sketch.SolveConstraints(false);
                Sketch.SolveConstraints(true);
                InteractiveContext.Current.UndoHandler.Commit();

                _MoveAction?.Stop();
                Elements.DeselectAll();
                Elements.Select(constraints);
                _UpdateSelections();
            }

            return(constraints);
        }