Salome HOME
Issue #412: Crash on delete sketch line with constraints
[modules/shaper.git] / src / ModuleBase / ModuleBase_FilterMulti.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:        ModuleBase_FilterMulti.h
4 // Created:     12 Jan 2015
5 // Author:      Natalia ERMOLAEVA
6
7 #ifndef ModuleBase_FilterMulti_H
8 #define ModuleBase_FilterMulti_H
9
10 #include "ModuleBase.h"
11
12 #include "ModuleBase_Filter.h"
13
14 #include <StdSelect_TypeOfFace.hxx>
15
16 /**
17 * \ingroup GUI
18 * An implementation of filter which support using of several filters according to OR statement
19 */
20 class ModuleBase_FilterMulti: public ModuleBase_Filter
21 {
22   /**
23    * Creates a new filter according to the given type
24    * It is only for internal use.
25    * This class creates the sub-filters now. It is possible to use the filter factory for this.
26    * \param theType a type of the created filter
27    */
28   ModuleBase_Filter* findFilter(const std::string& theType);
29   
30 public:
31   MODULEBASE_EXPORT ModuleBase_FilterMulti(): 
32       ModuleBase_Filter() {}
33
34   /**
35    * Sets the arguments to the filter.
36    * \param theArguments a list of arguments
37    */
38   MODULEBASE_EXPORT virtual void setArguments(const std::list<std::string>& theArguments);
39
40 protected:
41   /**
42    * It creates an OCC face filter
43    */
44   virtual void createFilter();
45
46 protected:
47   /// the filter arguments
48   std::list<std::string> myArguments; 
49 };
50
51 #endif //ModuleBase_FilterMulti