Salome HOME
Remove some TODOs
[modules/shaper.git] / src / FeaturesAPI / FeaturesAPI_Boolean.cpp
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
2
3 // File:        FeaturesAPI_Boolean.cpp
4 // Created:     07 June 2016
5 // Author:      Dmitry Bobylev
6
7 #include "FeaturesAPI_Boolean.h"
8
9 #include <ModelHighAPI_Integer.h>
10 #include <ModelHighAPI_Selection.h>
11 #include <ModelHighAPI_Tools.h>
12
13 //==================================================================================================
14 FeaturesAPI_Boolean::FeaturesAPI_Boolean(const std::shared_ptr<ModelAPI_Feature>& theFeature)
15 : ModelHighAPI_Interface(theFeature)
16 {
17   initialize();
18 }
19
20 //==================================================================================================
21 FeaturesAPI_Boolean::FeaturesAPI_Boolean(const std::shared_ptr<ModelAPI_Feature>& theFeature,
22                                          const ModelHighAPI_Integer& theBoolType,
23                                          const std::list<ModelHighAPI_Selection>& theMainObjects,
24                                          const std::list<ModelHighAPI_Selection>& theToolObjects)
25 : ModelHighAPI_Interface(theFeature)
26 {
27   if(initialize()) {
28     fillAttribute(theBoolType, myboolType);
29     fillAttribute(theMainObjects, mymainObjects);
30     fillAttribute(theToolObjects, mytoolObjects);
31
32     execute();
33   }
34 }
35
36 //==================================================================================================
37 FeaturesAPI_Boolean::~FeaturesAPI_Boolean()
38 {
39
40 }
41
42 //==================================================================================================
43 void FeaturesAPI_Boolean::setBoolType(const ModelHighAPI_Integer& theBoolType)
44 {
45   fillAttribute(theBoolType, myboolType);
46
47   execute();
48 }
49
50 //==================================================================================================
51 void FeaturesAPI_Boolean::setMainObjects(const std::list<ModelHighAPI_Selection>& theMainObjects)
52 {
53   fillAttribute(theMainObjects, mymainObjects);
54
55   execute();
56 }
57
58 //==================================================================================================
59 void FeaturesAPI_Boolean::setToolObjects(const std::list<ModelHighAPI_Selection>& theToolObjects)
60 {
61   fillAttribute(theToolObjects, mytoolObjects);
62
63   execute();
64 }
65
66 //==================================================================================================
67 BooleanPtr addCut(const std::shared_ptr<ModelAPI_Document>& thePart,
68                   const std::list<ModelHighAPI_Selection>& theMainObjects,
69                   const std::list<ModelHighAPI_Selection>& theToolObjects)
70 {
71   std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesAPI_Boolean::ID());
72   return BooleanPtr(new FeaturesAPI_Boolean(aFeature,
73                                             FeaturesPlugin_Boolean::BOOL_CUT,
74                                             theMainObjects,
75                                             theToolObjects));
76 }
77
78 //==================================================================================================
79 BooleanPtr addFuse(const std::shared_ptr<ModelAPI_Document>& thePart,
80                    const std::list<ModelHighAPI_Selection>& theObjects)
81 {
82   std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesAPI_Boolean::ID());
83   std::list<ModelHighAPI_Selection> aToolObjects;
84   return BooleanPtr(new FeaturesAPI_Boolean(aFeature,
85                                             FeaturesPlugin_Boolean::BOOL_FUSE,
86                                             theObjects,
87                                             aToolObjects));
88 }
89
90 //==================================================================================================
91 BooleanPtr addFuse(const std::shared_ptr<ModelAPI_Document>& thePart,
92                    const std::list<ModelHighAPI_Selection>& theMainObjects,
93                    const std::list<ModelHighAPI_Selection>& theToolObjects)
94 {
95   std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesAPI_Boolean::ID());
96   return BooleanPtr(new FeaturesAPI_Boolean(aFeature,
97                                             FeaturesPlugin_Boolean::BOOL_FUSE,
98                                             theMainObjects,
99                                             theToolObjects));
100 }
101
102 //==================================================================================================
103 BooleanPtr addCommon(const std::shared_ptr<ModelAPI_Document>& thePart,
104                      const std::list<ModelHighAPI_Selection>& theMainObjects,
105                      const std::list<ModelHighAPI_Selection>& theToolObjects)
106 {
107   std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(FeaturesAPI_Boolean::ID());
108   return BooleanPtr(new FeaturesAPI_Boolean(aFeature,
109                                             FeaturesPlugin_Boolean::BOOL_COMMON,
110                                             theMainObjects,
111                                             theToolObjects));
112 }