-// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#define _SMESH_CONTROLS_HXX_
// This file is named incosistently with others, i.e. not SMESHDS_Controls.hxx,
-// because it was moved from ../Controls/SMESH_Controls.hxx
+// because it was moved from ../Controls/SMESH_Controls.hxx.
+// It was moved here for the sake of SMESHDS_GroupOnFilter
#include "SMDSAbs_ElementType.hxx"
class SMDS_Mesh;
-namespace SMESH{
- namespace Controls{
+namespace SMESH {
+ namespace Controls {
/*
Class : Functor
- Description : Root of all Functors
+ Description : Root of all Functors defined in ../Controls/SMESH_ControlsDef.hxx
*/
class SMESHCONTROLS_EXPORT Functor
{
public:
- ~Functor(){}
+ virtual ~Functor(){}
virtual void SetMesh( const SMDS_Mesh* theMesh ) = 0;
virtual SMDSAbs_ElementType GetType() const = 0;
};
Class : Predicate
Description : Base class for all predicates
*/
- class SMESHCONTROLS_EXPORT Predicate: public virtual Functor{
+ class SMESHCONTROLS_EXPORT Predicate: public virtual Functor {
public:
virtual bool IsSatisfy( long theElementId ) = 0;
virtual SMDSAbs_ElementType GetType() const = 0;
+ virtual Predicate* clone() const { return 0; } // return a thread-safe copy of this
};
typedef boost::shared_ptr<Predicate> PredicatePtr;