Ejemplo n.º 1
0
        public NodeBuilder ApplyConstraint(List <Node> nodes, string constraintFunction)
        {
            var descriptor = ConstraintMapper.GetConstraintDescription(constraintFunction);

            if (descriptor.DependencyList.Count != nodes.Count)
            {
                return(new NodeBuilder(null));
            }
            var result = new NodeBuilder(Document, constraintFunction);

            GetSoftConstraints(nodes);
            for (var index = 0; index < nodes.Count; index++)
            {
                result[index].Reference = nodes[index];
            }
            result.ExecuteFunction();
            result.Node.Set <TreeViewVisibilityInterpreter>();
            var sourceNode = nodes[0];
            var error      = ImpactAndSolve(sourceNode);

            return(error != 0 ? new NodeBuilder(null) : result);
        }
Ejemplo n.º 2
0
        public List <string> GetPossibleConstraints(IEnumerable <Node> selection)
        {
            var usedFunctions = GetUsedFunctions(selection);

            return(ConstraintMapper.AccessibleConstraints(usedFunctions));
        }