Salome HOME
Merge branch 'Dev_0.7.1' of newgeom:newgeom.git into Dev_0.7.1
[modules/shaper.git] / src / ModuleBase / ModuleBase_Filter.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:        ModuleBase_Filter.h
4 // Created:     10 Dec 2014
5 // Author:      Natalia ERMOLAEVA
6
7 #ifndef ModuleBase_Filter_H
8 #define ModuleBase_Filter_H
9
10 #include "ModuleBase.h"
11
12 #include <SelectMgr_Filter.hxx>
13
14 #include <list>
15
16 /**
17  * This object is assigned by the name
18  * in the XML file to the specific attribute or to the whole feature.
19  * If isOK method of the filter returns "false", it is signalized in user interface
20  * that the processed entity should not be selected.
21  * Filterss must be registered in the filters factory to be
22  * correctly identified by the XML string-ID.
23  */
24 class ModuleBase_Filter
25 {
26 public:
27   /// Constructor
28   MODULEBASE_EXPORT ModuleBase_Filter() {}
29
30   /**
31    * Returns an OCC selection filter. It can be appended into the context of a viewer
32    * It creates a filter if it has not be created yet.
33    * \return the selection filter
34    */
35   MODULEBASE_EXPORT Handle(SelectMgr_Filter) getFilter();
36
37   /**
38    * Sets the arguments to the filter.
39    * \param theArguments a list of arguments
40    */
41   MODULEBASE_EXPORT virtual void setArguments(const std::list<std::string>& theArguments) = 0;
42 protected:
43   /**
44    * It creates an internal instance of the OCC filter
45    */
46   virtual void createFilter() = 0;
47
48 protected:
49   /// current instance of the OCC selection filter
50   Handle(SelectMgr_Filter) myFilter; 
51 };
52
53 #endif //ModuleBase_Filter