X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Filter.h;h=a7fc9e1b3dffa7cb3d6f27b82eae8e603d4484f3;hp=91f3bd700e8850435b1b4ee94072d9f4abe046eb;hb=1eea5485d119de1f044c0bb06c4bfd557a9572b1;hpb=c3bf92bd87b770fd81631a3853f7f5bb1ac6a4e8 diff --git a/src/SMESHGUI/SMESHGUI_Filter.h b/src/SMESHGUI/SMESHGUI_Filter.h index 91f3bd700..a7fc9e1b3 100755 --- a/src/SMESHGUI/SMESHGUI_Filter.h +++ b/src/SMESHGUI/SMESHGUI_Filter.h @@ -28,41 +28,164 @@ #ifndef SMESHGUI_Filter_HeaderFile #define SMESHGUI_Filter_HeaderFile -#include "VTKViewer_Filter.h" - +#include "VTKViewer_Filter.h" + #include #include CORBA_SERVER_HEADER(SMESH_Filter) class SALOME_Actor; - -DEFINE_STANDARD_HANDLE(SMESHGUI_Filter, VTKViewer_Filter) +enum SMESHGUI_FilterType +{ + SMESHGUI_UnknownFilter = -1, + SMESHGUI_NodeFilter = 0, + SMESHGUI_EdgeFilter = 1, + SMESHGUI_FaceFilter = 2, + SMESHGUI_VolumeFilter = 3, + SMESHGUI_AllElementsFilter = 4, + SMESHGUI_QuadFilter = 5, + SMESHGUI_TriaFilter = 6, + SMESHGUI_LastFilter +}; /* Class : SMESHGUI_Filter - Description : Selection filter for VTK viewer + Description : Base class for SMESH selection filters for VTK viewer. */ +DEFINE_STANDARD_HANDLE(SMESHGUI_Filter, VTKViewer_Filter) + class SMESHGUI_Filter : public VTKViewer_Filter { public: - SMESHGUI_Filter(); - virtual ~SMESHGUI_Filter(); - virtual bool IsValid( const int theCellId ) const; + virtual bool IsObjValid( const int theObjId ) const = 0; +public: + DEFINE_STANDARD_RTTI(SMESHGUI_Filter) +}; + +/* + Class : SMESHGUI_PredicateFilter + Description : Selection filter for VTK viewer. This class aggregate object + of SMESH_Predicate class and uses it for verification of criterion +*/ + +DEFINE_STANDARD_HANDLE(SMESHGUI_PredicateFilter, SMESHGUI_Filter) - virtual void SetActor( SALOME_Actor* ); - SALOME_Actor* GetActor() const; - +class SMESHGUI_PredicateFilter : public SMESHGUI_Filter +{ + +public: + SMESHGUI_PredicateFilter(); + virtual ~SMESHGUI_PredicateFilter(); + + virtual bool IsValid( const int theCellId ) const; + virtual bool IsObjValid( const int theObjId ) const; + virtual int GetId() const; + virtual bool IsNodeFilter() const; void SetPredicate( SMESH::Predicate_ptr ); - + + void SetActor( SALOME_Actor* ); + private: - + SMESH::Predicate_var myPred; -public: - DEFINE_STANDARD_RTTI(SMESHGUI_Filter) +public: + DEFINE_STANDARD_RTTI(SMESHGUI_PredicateFilter) +}; + +/* + Class : SMESHGUI_QuadrangleFilter + Description : Verify whether selected cell is quadranle +*/ + +DEFINE_STANDARD_HANDLE(SMESHGUI_QuadrangleFilter, SMESHGUI_Filter) + +class SMESHGUI_QuadrangleFilter : public SMESHGUI_Filter +{ + +public: + SMESHGUI_QuadrangleFilter(); + virtual ~SMESHGUI_QuadrangleFilter(); + + virtual bool IsValid( const int theCellId ) const; + virtual bool IsObjValid( const int theObjId ) const; + virtual int GetId() const; + virtual bool IsNodeFilter() const; + +public: + DEFINE_STANDARD_RTTI(SMESHGUI_QuadrangleFilter) +}; + +/* + Class : SMESHGUI_TriangleFilter + Description : Verify whether selected cell is triangle +*/ + +DEFINE_STANDARD_HANDLE(SMESHGUI_TriangleFilter, SMESHGUI_Filter) + +class SMESHGUI_TriangleFilter : public SMESHGUI_Filter +{ + +public: + SMESHGUI_TriangleFilter(); + virtual ~SMESHGUI_TriangleFilter(); + + virtual bool IsValid( const int theCellId ) const; + virtual bool IsObjValid( const int theObjId ) const; + virtual int GetId() const; + virtual bool IsNodeFilter() const; + +public: + DEFINE_STANDARD_RTTI(SMESHGUI_TriangleFilter) +}; + +/* + Class : SMESHGUI_FacesFilter + Description : Verify whether selected cell is any face +*/ + +DEFINE_STANDARD_HANDLE(SMESHGUI_FacesFilter, SMESHGUI_Filter) + +class SMESHGUI_FacesFilter : public SMESHGUI_Filter +{ + +public: + SMESHGUI_FacesFilter(); + virtual ~SMESHGUI_FacesFilter(); + + virtual bool IsValid( const int theCellId ) const; + virtual bool IsObjValid( const int theObjId ) const; + virtual int GetId() const; + virtual bool IsNodeFilter() const; + +public: + DEFINE_STANDARD_RTTI(SMESHGUI_FacesFilter) +}; + +/* + Class : SMESHGUI_VolumesFilter + Description : Verify whether selected cell is any volume +*/ + +DEFINE_STANDARD_HANDLE(SMESHGUI_VolumesFilter, SMESHGUI_Filter) + +class SMESHGUI_VolumesFilter : public SMESHGUI_Filter +{ + +public: + SMESHGUI_VolumesFilter(); + virtual ~SMESHGUI_VolumesFilter(); + + virtual bool IsValid( const int theCellId ) const; + virtual bool IsObjValid( const int theObjId ) const; + virtual int GetId() const; + virtual bool IsNodeFilter() const; + +public: + DEFINE_STANDARD_RTTI(SMESHGUI_VolumesFilter) }; #endif