From 4f20185178f11fe2ad06a88c0a21d999154c4536 Mon Sep 17 00:00:00 2001 From: eap Date: Wed, 10 Aug 2011 09:58:51 +0000 Subject: [PATCH] 0020511: EDF 1101 SMESH : Add CGNS to Mesh Format Supported Move SMESH_Controls.hxx from src/Controls to avoid mutual dependency between SMESHDS and Controls --- src/SMESHDS/Makefile.am | 6 +-- src/SMESHDS/SMESH_Controls.hxx | 79 ++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 src/SMESHDS/SMESH_Controls.hxx diff --git a/src/SMESHDS/Makefile.am b/src/SMESHDS/Makefile.am index 7230986a6..93108a1b0 100644 --- a/src/SMESHDS/Makefile.am +++ b/src/SMESHDS/Makefile.am @@ -39,7 +39,8 @@ salomeinclude_HEADERS = \ SMESHDS_GroupOnGeom.hxx \ SMESHDS_GroupOnFilter.hxx \ SMESH_SMESHDS.hxx \ - SMESHDS_DataMapOfShape.hxx + SMESHDS_DataMapOfShape.hxx \ + SMESH_Controls.hxx # Libraries targets lib_LTLIBRARIES = libSMESHDS.la @@ -62,8 +63,7 @@ libSMESHDS_la_CPPFLAGS = \ $(CAS_CPPFLAGS) \ $(VTK_INCLUDES) \ $(BOOST_CPPFLAGS) \ - -I$(srcdir)/../SMDS \ - -I$(srcdir)/../Controls + -I$(srcdir)/../SMDS libSMESHDS_la_LDFLAGS = \ ../SMDS/libSMDS.la \ diff --git a/src/SMESHDS/SMESH_Controls.hxx b/src/SMESHDS/SMESH_Controls.hxx new file mode 100644 index 000000000..785b91420 --- /dev/null +++ b/src/SMESHDS/SMESH_Controls.hxx @@ -0,0 +1,79 @@ +// Copyright (C) 2007-2011 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 +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#ifndef _SMESH_CONTROLS_HXX_ +#define _SMESH_CONTROLS_HXX_ + +#include "SMDSAbs_ElementType.hxx" + +#include + +#ifdef WNT + #if defined SMESHCONTROLS_EXPORTS || defined SMESHControls_EXPORTS + #define SMESHCONTROLS_EXPORT __declspec( dllexport ) + #else + #define SMESHCONTROLS_EXPORT __declspec( dllimport ) + #endif +#else + #define SMESHCONTROLS_EXPORT +#endif + +class SMDS_Mesh; + +namespace SMESH{ + namespace Controls{ + + /* + Class : Functor + Description : Root of all Functors + */ + class SMESHCONTROLS_EXPORT Functor + { + public: + ~Functor(){} + virtual void SetMesh( const SMDS_Mesh* theMesh ) = 0; + virtual SMDSAbs_ElementType GetType() const = 0; + }; + typedef boost::shared_ptr FunctorPtr; + + + class NumericalFunctor; + typedef boost::shared_ptr NumericalFunctorPtr; + + /* + Class : Predicate + Description : Base class for all predicates + */ + class SMESHCONTROLS_EXPORT Predicate: public virtual Functor{ + public: + virtual bool IsSatisfy( long theElementId ) = 0; + virtual SMDSAbs_ElementType GetType() const = 0; + }; + typedef boost::shared_ptr PredicatePtr; + + } +} + +typedef SMESH::Controls::PredicatePtr SMESH_PredicatePtr; + + +#endif -- 2.39.2