1 // Created on: 1996-01-29 2 // Created by: Robert COUBLANC 3 // Copyright (c) 1996-1999 Matra Datavision 4 // Copyright (c) 1999-2014 OPEN CASCADE SAS 5 // 6 // This file is part of Open CASCADE Technology software library. 7 // 8 // This library is free software; you can redistribute it and/or modify it under 9 // the terms of the GNU Lesser General Public License version 2.1 as published 10 // by the Free Software Foundation, with special exception defined in the file 11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 12 // distribution for complete text of the license and disclaimer of any warranty. 13 // 14 // Alternatively, this file may be used under the terms of Open CASCADE 15 // commercial license or contractual agreement. 16 17 #ifndef _SelectMgr_CompositionFilter_HeaderFile 18 #define _SelectMgr_CompositionFilter_HeaderFile 19 20 #include <Standard.hxx> 21 #include <Standard_Type.hxx> 22 23 #include <SelectMgr_ListOfFilter.hxx> 24 #include <SelectMgr_Filter.hxx> 25 #include <Standard_Boolean.hxx> 26 #include <TopAbs_ShapeEnum.hxx> 27 class SelectMgr_Filter; 28 29 30 class SelectMgr_CompositionFilter; 31 DEFINE_STANDARD_HANDLE(SelectMgr_CompositionFilter, SelectMgr_Filter) 32 33 //! A framework to define a compound filter composed of 34 //! two or more simple filters. 35 class SelectMgr_CompositionFilter : public SelectMgr_Filter 36 { 37 38 public: 39 40 41 //! Adds the filter afilter to a filter object created by a 42 //! filter class inheriting this framework. 43 Standard_EXPORT void Add (const Handle(SelectMgr_Filter)& afilter); 44 45 //! Removes the filter aFilter from this framework. 46 Standard_EXPORT void Remove (const Handle(SelectMgr_Filter)& aFilter); 47 48 //! Returns true if this framework is empty. 49 Standard_EXPORT Standard_Boolean IsEmpty() const; 50 51 //! Returns true if the filter aFilter is in this framework. 52 Standard_EXPORT Standard_Boolean IsIn (const Handle(SelectMgr_Filter)& aFilter) const; 53 54 //! Returns the list of stored filters from this framework. 55 const SelectMgr_ListOfFilter& StoredFilters() const; 56 57 //! Clears the filters used in this framework. 58 Standard_EXPORT void Clear(); 59 60 Standard_EXPORT virtual Standard_Boolean ActsOn (const TopAbs_ShapeEnum aStandardMode) const Standard_OVERRIDE; 61 62 63 64 65 DEFINE_STANDARD_RTTIEXT(SelectMgr_CompositionFilter,SelectMgr_Filter) 66 67 protected: 68 69 70 SelectMgr_ListOfFilter myFilters; 71 72 73 private: 74 75 76 77 78 }; 79 80 81 #include <SelectMgr_CompositionFilter.lxx> 82 83 84 85 86 87 #endif // _SelectMgr_CompositionFilter_HeaderFile 88