Salome HOME
Multiple objects and tools for Boolean operations.
[modules/shaper.git] / src / FeaturesPlugin / FeaturesPlugin_Boolean.h
index 65ad15d2e99f2ba424a3ebb50e75681d613d8713..959d06061f89400fbbbdfcbd7b3b5ee15b9402d9 100644 (file)
@@ -12,6 +12,8 @@
 #include <GeomAPI_Shape.h>
 #include <GeomAlgoAPI_Boolean.h>
 
+class GeomAlgoAPI_MakeShapeList;
+
 /**\class FeaturesPlugin_Boolean
  * \ingroup Plugins
  * \brief Feature for applying of Boolean operations on Solids.
@@ -29,6 +31,12 @@ public:
     return MY_ID;
   }
   /// attribute name of referenced object
+  inline static const std::string& OBJECT_LIST_ID()
+  {
+    static const std::string MY_OBJECT_LIST_ID("main_objects");
+    return MY_OBJECT_LIST_ID;
+  }
+  /// attribute name of referenced object
   inline static const std::string& OBJECT_ID()
   {
     static const std::string MY_OBJECT_ID("main_object");
@@ -40,6 +48,12 @@ public:
     static const std::string MY_TOOL_ID("tool_object");
     return MY_TOOL_ID;
   }
+  /// attribute name of tool object
+  inline static const std::string& TOOL_LIST_ID()
+  {
+    static const std::string MY_TOOL_LIST_ID("tool_objects");
+    return MY_TOOL_LIST_ID;
+  }
   /// attribute name of operation type
   inline static const std::string& TYPE_ID()
   {
@@ -48,8 +62,8 @@ public:
   }
 
   enum {
-       BOOL_CUT,
-       BOOL_FUSE,
+    BOOL_CUT,
+    BOOL_FUSE,
     BOOL_COMMON
   };
 
@@ -71,13 +85,14 @@ public:
 
 private:
   std::shared_ptr<GeomAPI_Shape> getShape(const std::string& theAttrName);
-  
+
   /// Load Naming data structure of the feature to the document
-  void LoadNamingDS(GeomAlgoAPI_Boolean* theFeature, 
-                                       std::shared_ptr<ModelAPI_ResultBody> theResultBody,
-                       std::shared_ptr<GeomAPI_Shape> theObject,
-                       std::shared_ptr<GeomAPI_Shape> theTool,
-                                       int theType);
+  void LoadNamingDS(std::shared_ptr<GeomAlgoAPI_MakeShapeList> theMakeShapeList,
+                    std::shared_ptr<ModelAPI_ResultBody> theResultBody,
+                    std::shared_ptr<GeomAPI_Shape> theResult,
+                    std::shared_ptr<GeomAPI_DataMapOfShapeShape> theDataMapOfShapes,
+                    const ListOfShape& theObjects,
+                    const ListOfShape& theTools);
 };
 
 #endif