本文整理汇总了C#中Constraint.markUnsatisfied方法的典型用法代码示例。如果您正苦于以下问题:C# Constraint.markUnsatisfied方法的具体用法?C# Constraint.markUnsatisfied怎么用?C# Constraint.markUnsatisfied使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Constraint
的用法示例。
在下文中一共展示了Constraint.markUnsatisfied方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: incrementalRemove
// Entry point for retracting a constraint. Remove the given
// constraint and incrementally update the dataflow graph.
// Details: Retracting the given constraint may allow some currently
// unsatisfiable downstream constraint to be satisfied. We therefore collect
// a list of unsatisfied downstream constraints and attempt to
// satisfy each one in turn. This list is traversed by constraint
// strength, strongest first, as a heuristic for avoiding
// unnecessarily adding and then overriding weak constraints.
// Assume: c is satisfied.
//
public void incrementalRemove(Constraint c)
{
Variable outvar = c.output();
c.markUnsatisfied();
c.removeFromGraph();
ArrayList unsatisfied = removePropagateFrom(outvar);
Strength strength = Strength.required;
do
{
for (int i = 0; i < unsatisfied.Count; ++i)
{
Constraint u = (Constraint)unsatisfied[i];
if (u.strength == strength)
incrementalAdd(u);
}
strength = strength.nextWeaker();
} while (strength != Strength.weakest);
}