Salome HOME
2d5b7edaad3e9c31b5f4257a68ac50963e3d8715
[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 * An implementation of filter which support using of several filters according to OR statement
18 */
19 class ModuleBase_FilterMulti: public ModuleBase_Filter
20 {
21   /**
22    * Creates a new filter according to the given type
23    * It is only for internal use.
24    * This class creates the sub-filters now. It is possible to use the filter factory for this.
25    * \param theType a type of the created filter
26    */
27   ModuleBase_Filter* findFilter(const std::string& theType);
28   
29 public:
30   MODULEBASE_EXPORT ModuleBase_FilterMulti(): 
31       ModuleBase_Filter() {}
32
33   /**
34    * Sets the arguments to the filter.
35    * \param theArguments a list of arguments
36    */
37   MODULEBASE_EXPORT virtual void setArguments(const std::list<std::string>& theArguments);
38
39 protected:
40   /**
41    * It creates an OCC face filter
42    */
43   virtual void createFilter();
44
45 protected:
46   std::list<std::string> myArguments; /// the filter arguments
47 };
48
49 #endif //ModuleBase_FilterMulti