Salome HOME
Fixed naming for primitives
[modules/shaper.git] / src / Model / Model_BodyBuilder.h
index 60e345fee0ea18984bd7c398e9a1bc9636218449..78aac03490d176709bc78b2f3ab1fc2cca75e6de 100755 (executable)
@@ -110,18 +110,15 @@ public:
 
   /// Loads shapes of the first level (to be used during shape import)
   MODEL_EXPORT virtual void loadFirstLevel(GeomShapePtr theShape,
-                                           const std::string& theName,
-                                           int& theTag);
+                                           const std::string& theName) override;
 
   /// Loads disconnected edges
   MODEL_EXPORT virtual void loadDisconnectedEdges(GeomShapePtr theShape,
-                                                  const std::string& theName,
-                                                  int& theTag);
+                                                  const std::string& theName) override;
 
   /// Loads disconnected vetexes
   MODEL_EXPORT virtual void loadDisconnectedVertexes(GeomShapePtr theShape,
-                                                     const std::string& theName,
-                                                     int& theTag);
+                                                     const std::string& theName) override;
 
   /// Removes the stored builders
   MODEL_EXPORT virtual ~Model_BodyBuilder();
@@ -143,17 +140,20 @@ protected:
 private:
   /// Loads shapes of the next level (to be used during shape import)
   void loadNextLevels(GeomShapePtr theShape,
-                      const std::string& theName, int&  theTag);
+                      const std::string& theName);
 
   /// builds name for the shape kept at the specified tag
   void buildName(const int theTag, const std::string& theName);
 
 private:
-  int myPrimitiveTag;
-  int myDividedIndex;
-  int myVIndex;
-  int myEIndex;
-  int myFIndex;
+  struct IndexTags {
+    int index;
+    std::vector<int> tags;
+  };
+
+private:
+  int myFreePrimitiveTag;
+  std::map<std::string, IndexTags> myPrimitivesNamesIndexMap;
 
 private:
   friend class Model_ResultBody;