Version: 9.16.0
SMESHGUI_Filter.h
Go to the documentation of this file.
1// Copyright (C) 2007-2026 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"
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
41class SALOME_Actor;
42
43namespace SMESH
44{
57 };
58}
59
60/*
61 Class : SMESHGUI_Filter
62 Description : Base class for SMESH selection filters for VTK viewer.
63*/
64
65DEFINE_STANDARD_HANDLE(SMESHGUI_Filter, VTKViewer_Filter)
66
68{
69public:
70 Standard_EXPORT virtual bool IsObjValid( const int ) const = 0;
71
72public:
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
82DEFINE_STANDARD_HANDLE(SMESHGUI_PredicateFilter, SMESHGUI_Filter)
83
85{
86public:
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
98private:
99 SMESH::Predicate_var myPred;
100
101public:
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
110DEFINE_STANDARD_HANDLE(SMESHGUI_QuadrangleFilter, SMESHGUI_Filter)
111
113{
114public:
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
123public:
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
132DEFINE_STANDARD_HANDLE(SMESHGUI_TriangleFilter, SMESHGUI_Filter)
133
135{
136public:
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
145public:
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
154DEFINE_STANDARD_HANDLE(SMESHGUI_FacesFilter, SMESHGUI_Filter)
155
157{
158public:
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
167public:
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
176DEFINE_STANDARD_HANDLE(SMESHGUI_VolumesFilter, SMESHGUI_Filter)
177
179{
180public:
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
189public:
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
198DEFINE_STANDARD_HANDLE(SMESHGUI_VolumeShapeFilter, SMESHGUI_Filter)
199
201{
203public:
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
213public:
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_ControlsClassifier.cxx:39
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