]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Fix for the issue #2501
authormpv <mpvvpm@mail.ru>
Thu, 28 Jun 2018 11:51:29 +0000 (14:51 +0300)
committermpv <mpvvpm@mail.ru>
Thu, 28 Jun 2018 11:51:43 +0000 (14:51 +0300)
src/Model/Model_ResultConstruction.cpp

index 25116990809bb0440cca76236c6da66721d37312..bdfc24994278258ab64428927ccd8e8fe18bf808 100644 (file)
@@ -111,6 +111,21 @@ int Model_ResultConstruction::facesNum()
       }
     }
     myFacesUpToDate = true;
+
+    // update all the faces and sub-elements in the naming structure
+    DocumentPtr anEmptyExt;
+    bool aNotExt = false;
+    TDF_Label aDataLab = startLabel(anEmptyExt, aNotExt);
+    TDF_ChildIterator aSubsIter(aDataLab, Standard_False);
+    for(; aSubsIter.More(); aSubsIter.Next()) {
+      const TDF_Label aLab = aSubsIter.Value();
+      if (aLab.Tag() == 1) // skip the root shape label
+        continue;
+      Handle(TNaming_NamedShape) aNS;
+      if (aLab.FindAttribute(TNaming_NamedShape::GetID(), aNS)) {
+        update(aLab.Tag() - 1, anEmptyExt, aNotExt);
+      }
+    }
   }
   return int(myFaces.size());
 }
@@ -132,7 +147,7 @@ void Model_ResultConstruction::setInfinite(const bool theInfinite)
 
 void Model_ResultConstruction::setIsConcealed(const bool theValue)
 {
-  // do nothing: the construction element is never consealed
+  // do nothing: the construction element is never concealed
 }
 
 static const int kSTART_VERTEX_DELTA = 1000000;
@@ -630,7 +645,7 @@ bool Model_ResultConstruction::update(const int theIndex,
     Handle(TDF_Reference) aRef;
     if (aLab.FindAttribute(TDF_Reference::GetID(), aRef)) {
       int aFaceIndex = aRef->Get().Tag();
-      // don't check selection ,since face may disappear, but the shape stays correct
+      // don't check selection since face may disappear, but the shape stays correct
       Model_ResultConstruction::update(aFaceIndex, theExtDoc, theModified);
     }
     // getting a type of selected shape