Salome HOME
Unpressing the button of the current action must behave like a validation if the...
[modules/shaper.git] / src / PartSet / PartSet_Filters.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:        PartSet_Filters.h
4 // Created:     08 Nov 2014
5 // Author:      Vitaly SMETANNIKOV
6
7 #ifndef PartSet_Filters_H
8 #define PartSet_Filters_H
9
10 #include <ModuleBase_ViewerFilters.h>
11
12
13 /**
14 * \class PartSet_GlobalFilter
15 * \ingroup Modules
16 * A class which filters groups object in addition to documents (see issue #310)
17 */
18 DEFINE_STANDARD_HANDLE(PartSet_GlobalFilter, ModuleBase_ShapeDocumentFilter);
19 class PartSet_GlobalFilter: public ModuleBase_ShapeDocumentFilter
20 {
21 public:
22   /// Constructor
23   /// \param theWorkshop a pointer to workshop
24   PartSet_GlobalFilter(ModuleBase_IWorkshop* theWorkshop)
25     : ModuleBase_ShapeDocumentFilter(theWorkshop) {}
26
27   /// Returns True if selected presentation can be selected
28   /// \param theOwner an owner of the persentation
29   Standard_EXPORT virtual Standard_Boolean IsOk(const Handle(SelectMgr_EntityOwner)& theOwner) const;
30
31   DEFINE_STANDARD_RTTI(PartSet_GlobalFilter)
32 };
33
34
35 /// \class PartSet_CirclePointFilter
36 /// \ingroup GUI
37 /// \brief A filter which provide filtering of selection in 3d viewer.
38 /// Installing of this filter disables selection of point on circle in sketch
39 DEFINE_STANDARD_HANDLE(PartSet_CirclePointFilter, SelectMgr_Filter);
40 class PartSet_CirclePointFilter: public SelectMgr_Filter
41 {
42 public:
43
44   /// Constructor
45   /// \param theWorkshop instance of workshop interface
46   Standard_EXPORT PartSet_CirclePointFilter(ModuleBase_IWorkshop* theWorkshop):
47     SelectMgr_Filter(),
48     myWorkshop(theWorkshop) {};
49
50   /// Returns True if the given owner is acceptable for selection
51   /// \param theOwner the selected owner
52   Standard_EXPORT virtual Standard_Boolean IsOk(const Handle(SelectMgr_EntityOwner)& theOwner) const;
53
54   DEFINE_STANDARD_RTTI(PartSet_CirclePointFilter)
55
56 private:
57
58   /// Reference to workshop
59   ModuleBase_IWorkshop* myWorkshop;
60 };
61
62 #endif