void SketchSolver_ConstraintCollinear::notify(const FeaturePtr& theFeature,
PlaneGCSSolver_Update* theUpdater)
{
- if (theFeature == myBaseConstraint)
+ if (theFeature == myBaseConstraint && myInSolver)
return; // the constraint is already being updated
PlaneGCSSolver_UpdateCoincidence* anUpdater =
void SketchSolver_ConstraintMiddle::notify(const FeaturePtr& theFeature,
PlaneGCSSolver_Update* theUpdater)
{
- if (theFeature == myBaseConstraint)
+ if (theFeature == myBaseConstraint && myInSolver)
return; // the constraint is already being updated
PlaneGCSSolver_UpdateCoincidence* anUpdater =
}
} else {
if (myInSolver) {
- myInSolver = false;
myStorage->removeConstraint(myBaseConstraint);
+ myInSolver = false;
}
if (!myMiddle) {