Version: 9.12.0
SMESHGUI_Filter.h
Go to the documentation of this file.
1 // Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 
23 // SMESHGUI_Filter : Filters for VTK viewer
24 // File : SMESHGUI_Filter.h
25 // Author : Sergey LITONIN, Open CASCADE S.A.S.
26 //
27 #ifndef SMESHGUI_FILTER_H
28 #define SMESHGUI_FILTER_H
29 
30 // SMESH includes
31 #include "SMESH_SMESHGUI.hxx"
32 #include "SMDSAbs_ElementType.hxx"
33 
34 // SALOME GUI includes
35 #include <VTKViewer_Filter.h>
36 
37 // IDL includes
38 #include <SALOMEconfig.h>
39 #include CORBA_SERVER_HEADER(SMESH_Filter)
40 
41 class SALOME_Actor;
42 
43 namespace SMESH
44 {
57  };
58 }
59 
60 /*
61  Class : SMESHGUI_Filter
62  Description : Base class for SMESH selection filters for VTK viewer.
63 */
64 
65 DEFINE_STANDARD_HANDLE(SMESHGUI_Filter, VTKViewer_Filter)
66 
68 {
69 public:
70  Standard_EXPORT virtual bool IsObjValid( const int ) const = 0;
71 
72 public:
73  DEFINE_STANDARD_RTTIEXT(SMESHGUI_Filter,VTKViewer_Filter)
74 };
75 
76 /*
77  Class : SMESHGUI_PredicateFilter
78  Description : Selection filter for VTK viewer. This class aggregate object
79  of SMESH_Predicate class and uses it for verification of criterion
80 */
81 
82 DEFINE_STANDARD_HANDLE(SMESHGUI_PredicateFilter, SMESHGUI_Filter)
83 
85 {
86 public:
87  Standard_EXPORT SMESHGUI_PredicateFilter();
88  Standard_EXPORT virtual ~SMESHGUI_PredicateFilter();
89 
90  Standard_EXPORT virtual bool IsValid( const vtkIdType ) const;
91  Standard_EXPORT virtual bool IsObjValid( const int ) const;
92  Standard_EXPORT virtual int GetId() const;
93  Standard_EXPORT virtual bool IsNodeFilter() const;
94  Standard_EXPORT void SetPredicate( SMESH::Predicate_ptr );
95 
96  Standard_EXPORT void SetActor( SALOME_Actor* );
97 
98 private:
99  SMESH::Predicate_var myPred;
100 
101 public:
102  DEFINE_STANDARD_RTTIEXT(SMESHGUI_PredicateFilter,SMESHGUI_Filter)
103 };
104 
105 /*
106  Class : SMESHGUI_QuadrangleFilter
107  Description : Verify whether selected cell is quadrangle
108 */
109 
110 DEFINE_STANDARD_HANDLE(SMESHGUI_QuadrangleFilter, SMESHGUI_Filter)
111 
113 {
114 public:
115  Standard_EXPORT SMESHGUI_QuadrangleFilter();
116  Standard_EXPORT virtual ~SMESHGUI_QuadrangleFilter();
117 
118  Standard_EXPORT virtual bool IsValid( const vtkIdType ) const;
119  Standard_EXPORT virtual bool IsObjValid( const int ) const;
120  Standard_EXPORT virtual int GetId() const;
121  Standard_EXPORT virtual bool IsNodeFilter() const;
122 
123 public:
124  DEFINE_STANDARD_RTTIEXT(SMESHGUI_QuadrangleFilter,SMESHGUI_Filter)
125 };
126 
127 /*
128  Class : SMESHGUI_TriangleFilter
129  Description : Verify whether selected cell is triangle
130 */
131 
132 DEFINE_STANDARD_HANDLE(SMESHGUI_TriangleFilter, SMESHGUI_Filter)
133 
135 {
136 public:
137  Standard_EXPORT SMESHGUI_TriangleFilter();
138  Standard_EXPORT virtual ~SMESHGUI_TriangleFilter();
139 
140  Standard_EXPORT virtual bool IsValid( const vtkIdType ) const;
141  Standard_EXPORT virtual bool IsObjValid( const int ) const;
142  Standard_EXPORT virtual int GetId() const;
143  Standard_EXPORT virtual bool IsNodeFilter() const;
144 
145 public:
146  DEFINE_STANDARD_RTTIEXT(SMESHGUI_TriangleFilter,SMESHGUI_Filter)
147 };
148 
149 /*
150  Class : SMESHGUI_FacesFilter
151  Description : Verify whether selected cell is any face
152 */
153 
154 DEFINE_STANDARD_HANDLE(SMESHGUI_FacesFilter, SMESHGUI_Filter)
155 
157 {
158 public:
159  Standard_EXPORT SMESHGUI_FacesFilter();
160  Standard_EXPORT virtual ~SMESHGUI_FacesFilter();
161 
162  Standard_EXPORT virtual bool IsValid( const vtkIdType ) const;
163  Standard_EXPORT virtual bool IsObjValid( const int ) const;
164  Standard_EXPORT virtual int GetId() const;
165  Standard_EXPORT virtual bool IsNodeFilter() const;
166 
167 public:
168  DEFINE_STANDARD_RTTIEXT(SMESHGUI_FacesFilter,SMESHGUI_Filter)
169 };
170 
171 /*
172  Class : SMESHGUI_VolumesFilter
173  Description : Verify whether selected cell is any volume
174 */
175 
176 DEFINE_STANDARD_HANDLE(SMESHGUI_VolumesFilter, SMESHGUI_Filter)
177 
179 {
180 public:
181  Standard_EXPORT SMESHGUI_VolumesFilter();
182  Standard_EXPORT virtual ~SMESHGUI_VolumesFilter();
183 
184  Standard_EXPORT virtual bool IsValid( const vtkIdType ) const;
185  Standard_EXPORT virtual bool IsObjValid( const int ) const;
186  Standard_EXPORT virtual int GetId() const;
187  Standard_EXPORT virtual bool IsNodeFilter() const;
188 
189 public:
190  DEFINE_STANDARD_RTTIEXT(SMESHGUI_VolumesFilter,SMESHGUI_Filter)
191 };
192 
193 /*
194  Class : SMESHGUI_VolumeShapeFilter
195  Description : Verify whether selected cell is a volume of a certain shape
196 */
197 
198 DEFINE_STANDARD_HANDLE(SMESHGUI_VolumeShapeFilter, SMESHGUI_Filter)
199 
201 {
203 public:
204  Standard_EXPORT SMESHGUI_VolumeShapeFilter(const SMDSAbs_GeometryType shape);
205 
206  Standard_EXPORT virtual bool IsValid( const vtkIdType ) const;
207  Standard_EXPORT virtual bool IsObjValid( const int ) const;
208  Standard_EXPORT virtual int GetId() const;
209  Standard_EXPORT virtual bool IsNodeFilter() const;
210 
211  Standard_EXPORT static int GetId( SMDSAbs_GeometryType geom );
212 
213 public:
214  DEFINE_STANDARD_RTTIEXT(SMESHGUI_VolumeShapeFilter,SMESHGUI_Filter)
215 };
216 
217 #endif // SMESHGUI_FILTER_H
SMDSAbs_GeometryType
enumeration for element geometry type
Definition: SMDSAbs_ElementType.hxx:47
@ SMDSGeom_NONE
Definition: SMDSAbs_ElementType.hxx:66
@ SMDSEntity_Last
Definition: SMDSAbs_ElementType.hxx:106
Definition: SMESHGUI_Filter.h:157
Definition: SMESHGUI_Filter.h:68
virtual Standard_EXPORT bool IsObjValid(const int) const =0
Definition: SMESHGUI_Filter.h:85
SMESH::Predicate_var myPred
Definition: SMESHGUI_Filter.h:99
Definition: SMESHGUI_Filter.h:113
Definition: SMESHGUI_Filter.h:135
Definition: SMESHGUI_Filter.h:201
SMDSAbs_GeometryType myGeometryType
Definition: SMESHGUI_Filter.h:202
Definition: SMESHGUI_Filter.h:179
Definition: SMESH_ControlsDef.hxx:64
SMESHGUI_FilterType
Definition: SMESHGUI_Filter.h:45
@ UnknownFilter
Definition: SMESHGUI_Filter.h:46
@ VolumeFilter
Definition: SMESHGUI_Filter.h:50
@ FaceFilter
Definition: SMESHGUI_Filter.h:49
@ LastFilter
Definition: SMESHGUI_Filter.h:56
@ FirstGeometryTypeFilter
Definition: SMESHGUI_Filter.h:54
@ FirstEntityTypeFilter
Definition: SMESHGUI_Filter.h:55
@ EdgeFilter
Definition: SMESHGUI_Filter.h:48
@ QuadFilter
Definition: SMESHGUI_Filter.h:52
@ TriaFilter
Definition: SMESHGUI_Filter.h:53
@ NodeFilter
Definition: SMESHGUI_Filter.h:47
@ AllElementsFilter
Definition: SMESHGUI_Filter.h:51
bool IsValid(SALOME_Actor *theActor, int theCellId, SVTK_Selector *theSelector)
Definition: SMESHGUI_VTKUtils.cxx:1143