//-------------------------------------------------------------------------------------------------- #endregion #region Constraint Creation public bool CanCreateConstraint <T>() where T : SketchConstraint { // Don't allow constraint creation if any constraint is selected if (SelectedConstraints != null && SelectedConstraints.Any()) { return(false); } return(SketchConstraintCreator.CanCreate <T>(Sketch, SelectedPoints, SelectedSegmentIndices)); }
//-------------------------------------------------------------------------------------------------- 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); }