private void ListBoxOnKeyDown(object sender, KeyEventArgs keyEventArgs)
        {
            if (((ListBox)sender).SelectedItems.Count > 0 && keyEventArgs.Key == Key.Delete)
            {
                var selectedItem = ((ListBox)sender).SelectedItems[0];
                var node         = ((ConstraintInfo)((ListBox)sender).SelectedItems[0]).ConstraintNode.Node;

                var document = NodeBuilderUtils.FindSketchNode(node).Root.Get <DocumentContextInterpreter>().Document;
                NodeBuilderUtils.DeleteConstraintNode(document, node);
                UpdateFieldValue();

                keyEventArgs.Handled = true;
            }
        }
        private void ConstraintApplied(object sender, RoutedEventArgs e)
        {
            var button     = (CheckBox)sender;
            var descriptor = (ConstraintDependencyDescription)button.DataContext;
            var isChecked  = button.IsChecked ?? false;

            _document.Transact();
            var functionName = descriptor.FunctionName;

            if (isChecked)
            {
                var firstPointIndex = NodeUtils.GetFirstPointIndex(_nodeList[0]);
                _constraintDocumentHelper.SetMousePosition(firstPointIndex);
                var res = _constraintDocumentHelper.ApplyConstraint(_nodeList, functionName);
                if (res.Node == null)
                {
                    _constraintDocumentHelper.Remove(_nodeList, functionName);
                    MessageBox.Show("Could not apply constraint!");
                }
                else
                {
                    foreach (var node in _nodeList)
                    {
                        NodeBuilderUtils.AdddHintsForNode(_document, node, res.Node);
                    }
                }
            }
            else
            {
                var appliedConstraints = _constraintDocumentHelper.CheckAppliedConstraints(_nodeList);
                foreach (var constraint in appliedConstraints)
                {
                    NodeBuilderUtils.DeleteConstraintNode(_document, constraint);
                }
            }
            _stepsToUndo++;
            _document.Commit("Applied/Removed constraint: " + descriptor.Descriptor);
            EnableUndo = true;
            SceneChanged();
        }
Example #3
0
        private void RemoveSelectedShapes(IEnumerable <Node> toDelete)
        {
            Document.Transact();

            foreach (var deletedItem in toDelete)
            {
                if (NodeUtils.NodeIsConstraint(deletedItem.Index, Document))
                {
                    NodeBuilderUtils.DeleteConstraintNode(Document, deletedItem);
                }
                else
                {
                    RemoveFromDocument(deletedItem);
                }
            }

            Document.OptimizeData();
            NodeUtils.RebuildAllSketchFaces(Document);
            Document.Commit("Delete object");
            Inputs[InputNames.SelectionContainerPipe].Send(NotificationNames.Cleanup);
            UpdateView();
            RebuildTreeView();
            BackToNeutralModifier();
        }