Salome HOME
Additional fix for the #2659 optimization
[modules/shaper.git] / src / Model / Model_BodyBuilder.h
index 41d6414dcc30fa95f6aabd85aa53310d9ac955b9..d34fb0b173bac339d4a8b6e77ea3789334ff8a3d 100755 (executable)
@@ -14,7 +14,8 @@
 // License along with this library; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
+// See http://www.salome-platform.org/ or
+// email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
 //
 
 #ifndef Model_BodyBuilder_H_
@@ -35,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,
@@ -91,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,
@@ -152,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;
 };