Salome HOME
Fix for issue #1162
authorazv <azv@opencascade.com>
Wed, 23 Dec 2015 12:51:07 +0000 (15:51 +0300)
committerazv <azv@opencascade.com>
Wed, 23 Dec 2015 12:51:07 +0000 (15:51 +0300)
src/SketchSolver/SketchSolver_ConstraintMultiRotation.cpp
src/SketchSolver/SolveSpaceSolver/SolveSpaceSolver_Storage.cpp

index 5fc487e120e199815f7fae6f6b9486fbbaa03603..a322e66bec8ae501723350d442a40a1de66e88c0 100644 (file)
@@ -25,7 +25,7 @@ void SketchSolver_ConstraintMultiRotation::getAttributes(
 
   myType = CONSTRAINT_MULTI_ROTATION;
 
-  myStorage->update(aCenterAttr, GID_OUTOFGROUP);
+  myStorage->update(aCenterAttr);
   theCenter = myStorage->entity(aCenterAttr);
 
   AttributeStringPtr aMethodTypeAttr = aData->string(SketchPlugin_MultiRotation::ANGLE_TYPE());
index b28e1b63da859e5d9bdb4ff8a1d96a42547eed54..23c4995e6f94a9ab4c3b0b604d4c2c0fab203889 100644 (file)
@@ -367,9 +367,11 @@ void SolveSpaceSolver_Storage::replaceInConstraints(
   std::list<ConstraintWrapperPtr>::const_iterator aCIt;
   for (; anIt != myConstraintMap.end(); ++anIt)
     for (aCIt = anIt->second.begin(); aCIt != anIt->second.end(); ++aCIt) {
-      // Do not process coincidence between points
+      // Do not process coincidence between points and "multi" constraints
       // (these constraints are stored to keep the structure of constraints).
-      if ((*aCIt)->type() == CONSTRAINT_PT_PT_COINCIDENT)
+      if ((*aCIt)->type() == CONSTRAINT_PT_PT_COINCIDENT ||
+          (*aCIt)->type() == CONSTRAINT_MULTI_ROTATION ||
+          (*aCIt)->type() == CONSTRAINT_MULTI_TRANSLATION)
         continue;
 
       bool isUpdated = false;