]> SALOME platform Git repositories - modules/shaper.git/blobdiff - src/SketchSolver/SketchSolver_Group.cpp
Salome HOME
Issue #2073: Fatal error when mirror
[modules/shaper.git] / src / SketchSolver / SketchSolver_Group.cpp
index fa98e284e79c2d4482bd83a15b4cf2e545e65647..4f40f1d9c6376e551c8e7af1b18fad4f9120c1e0 100644 (file)
@@ -274,7 +274,7 @@ void SketchSolver_Group::computeDoF()
 // ============================================================================
 void SketchSolver_Group::repairConsistency()
 {
-  if (!myStorage->isConsistent()) {
+  if (!areConstraintsValid() || !myStorage->areFeaturesValid()) {
     // remove invalid constraints
     std::set<ConstraintPtr> anInvalidConstraints;
     ConstraintConstraintMap::iterator aCIter = myConstraints.begin();
@@ -381,3 +381,13 @@ void SketchSolver_Group::updateMultiConstraints()
       anIt->second->update();
   }
 }
+
+bool SketchSolver_Group::areConstraintsValid() const
+{
+  // Check the constraints are valid
+  ConstraintConstraintMap::const_iterator aCIter = myConstraints.begin();
+  for (; aCIter != myConstraints.end(); ++aCIter)
+    if (!aCIter->first->data() || !aCIter->first->data()->isValid())
+      return false;
+  return true;
+}