Salome HOME
Implementation of the issue #1307. Also make connected parameters from different...
[modules/shaper.git] / src / GeomAlgoAPI / GeomAlgoAPI_Boolean.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:        GeomAlgoAPI_Boolean.h
4 // Created:     02 Sept 2014
5 // Author:      Vitaly Smetannikov
6
7 #ifndef GeomAlgoAPI_Boolean_H_
8 #define GeomAlgoAPI_Boolean_H_
9
10 #include <GeomAlgoAPI.h>
11 #include <GeomAlgoAPI_MakeShape.h>
12
13 #include <GeomAPI_Shape.h>
14
15 /// \class GeomAlgoAPI_Boolean
16 /// \ingroup DataAlgo
17 /// \brief Allows to perform of boolean operations
18 class GeomAlgoAPI_Boolean : public GeomAlgoAPI_MakeShape
19 {
20 public:
21   /// Type of booelan operation
22   enum OperationType{
23     BOOL_CUT,   ///< Cut objects
24     BOOL_FUSE,  ///< Fuse objects
25     BOOL_COMMON ///< Take common part of objects
26   };
27
28  public:
29
30   /// Constructor.
31   GEOMALGOAPI_EXPORT GeomAlgoAPI_Boolean(const ListOfShape& theObjects,
32                                          const ListOfShape& theTools,
33                                          const OperationType theOperationType);
34
35 private:
36   /// Builds resulting shape.
37   void build(const ListOfShape& theObjects,
38              const ListOfShape& theTools,
39              const OperationType theOperationType);
40 };
41
42 #endif