Salome HOME
Additional fix for the #2659 optimization
[modules/shaper.git] / src / Model / Model_BodyBuilder.h
index f295e0864b469ade49d94a93fbe306f439486177..d34fb0b173bac339d4a8b6e77ea3789334ff8a3d 100755 (executable)
@@ -36,9 +36,9 @@ class TNaming_Builder;
  */
 class Model_BodyBuilder : public ModelAPI_BodyBuilder
 {
-  /// builders that tores the naming history: one per label to allow store several shapes to one
+  /// builders that store the naming history: one per label to allow store several shapes to one
   /// label; index in vector corresponds to the label tag
-  std::vector<TNaming_Builder*> myBuilders;
+  std::map<int, TNaming_Builder*> myBuilders;
 public:
   /// Stores the shape (called by the execution method).
   MODEL_EXPORT virtual void store(const std::shared_ptr<GeomAPI_Shape>& theShape,
@@ -92,7 +92,8 @@ public:
   MODEL_EXPORT virtual void loadDeletedShapes (GeomAlgoAPI_MakeShape* theMS,
                                                std::shared_ptr<GeomAPI_Shape>  theShapeIn,
                                                const int  theKindOfShape,
-                                               const int  theTag);
+                                               const int  theTag,
+                                               const GeomShapePtr theShapes = GeomShapePtr());
   /// load and orient modified shapes
   MODEL_EXPORT virtual void loadAndOrientModifiedShapes (
                                                   GeomAlgoAPI_MakeShape* theMS,
@@ -153,6 +154,13 @@ private:
   /// builds name for the shape kept at the specified tag
   void buildName(const int theTag, const std::string& theName);
 
+private:
+  int myDividedIndex;
+  int myVIndex;
+  int myEIndex;
+  int myFIndex;
+
+private:
   friend class Model_ResultBody;
   friend class Model_ResultCompSolid;
 };