Version: 9.16.0
SMESH_Controls.hxx
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#ifndef _SMESH_CONTROLS_HXX_
24#define _SMESH_CONTROLS_HXX_
25
26// This file is named incosistently with others, i.e. not SMESHDS_Controls.hxx,
27// because it was moved from ../Controls/SMESH_Controls.hxx.
28// It was moved here for the sake of SMESHDS_GroupOnFilter
29
31
32#include <boost/shared_ptr.hpp>
33
34#ifdef WIN32
35 #if defined SMESHCONTROLS_EXPORTS || defined SMESHControls_EXPORTS
36 #define SMESHCONTROLS_EXPORT __declspec( dllexport )
37 #else
38 #define SMESHCONTROLS_EXPORT __declspec( dllimport )
39 #endif
40#else
41 #define SMESHCONTROLS_EXPORT
42#endif
43
44class SMDS_Mesh;
45
46namespace SMESH {
47 namespace Controls {
48
49 /*
50 Class : Functor
51 Description : Root of all Functors defined in ../Controls/SMESH_ControlsDef.hxx
52 */
54 {
55 public:
56 virtual ~Functor(){}
57 virtual void SetMesh( const SMDS_Mesh* theMesh ) = 0;
58 virtual SMDSAbs_ElementType GetType() const = 0;
59 };
60 typedef boost::shared_ptr<Functor> FunctorPtr;
61
62
63 class NumericalFunctor;
64 typedef boost::shared_ptr<NumericalFunctor> NumericalFunctorPtr;
65
66 /*
67 Class : Predicate
68 Description : Base class for all predicates
69 */
70 class SMESHCONTROLS_EXPORT Predicate: public virtual Functor {
71 public:
72 virtual bool IsSatisfy( long theElementId ) = 0;
73 virtual SMDSAbs_ElementType GetType() const = 0;
74 virtual Predicate* clone() const { return 0; } // return a thread-safe copy of this
75 };
76 typedef boost::shared_ptr<Predicate> PredicatePtr;
77
78 }
79}
80
82
83
84#endif
SMDSAbs_ElementType
Type (node, edge, face or volume) of elements.
Definition: SMDSAbs_ElementType.hxx:34
SMESH::Controls::PredicatePtr SMESH_PredicatePtr
Definition: SMESH_Controls.hxx:81
#define SMESHCONTROLS_EXPORT
Definition: SMESH_Controls.hxx:41
Definition: SMDS_Mesh.hxx:53
Definition: SMESH_Controls.hxx:54
virtual SMDSAbs_ElementType GetType() const =0
virtual ~Functor()
Definition: SMESH_Controls.hxx:56
virtual void SetMesh(const SMDS_Mesh *theMesh)=0
Definition: SMESH_ControlsDef.hxx:131
Definition: SMESH_Controls.hxx:70
virtual bool IsSatisfy(long theElementId)=0
virtual SMDSAbs_ElementType GetType() const =0
virtual Predicate * clone() const
Definition: SMESH_Controls.hxx:74
boost::shared_ptr< NumericalFunctor > NumericalFunctorPtr
Definition: SMESH_Controls.hxx:64
boost::shared_ptr< Functor > FunctorPtr
Definition: SMESH_Controls.hxx:60
boost::shared_ptr< Predicate > PredicatePtr
Definition: SMESH_Controls.hxx:76
Definition: SMESH_ControlsClassifier.cxx:39