--- /dev/null
+// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,\r
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS \r
+// \r
+// This library is free software; you can redistribute it and/or \r
+// modify it under the terms of the GNU Lesser General Public \r
+// License as published by the Free Software Foundation; either \r
+// version 2.1 of the License. \r
+// \r
+// This library is distributed in the hope that it will be useful, \r
+// but WITHOUT ANY WARRANTY; without even the implied warranty of \r
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU \r
+// Lesser General Public License for more details. \r
+// \r
+// You should have received a copy of the GNU Lesser General Public \r
+// License along with this library; if not, write to the Free Software \r
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \r
+// \r
+// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org \r
+//\r
+//\r
+//\r
+// File : SMESH_Filter.idl\r
+// Author : Alexey Petrov, OCC\r
+\r
+#ifndef _SMESH_FILTER_IDL_\r
+#define _SMESH_FILTER_IDL_\r
+\r
+#include "SALOME_Exception.idl"\r
+#include "SALOME_GenericObj.idl"\r
+#include "SMESH_Mesh.idl"\r
+\r
+module SMESH{\r
+\r
+ interface Functor: SALOME::GenericObj{\r
+ void SetMesh(in SMESH_Mesh theMesh);\r
+ };\r
+\r
+ interface NumericalFunctor: Functor{\r
+ double GetValue(in long theElementId);\r
+ };\r
+\r
+ interface MinimumAngle: NumericalFunctor{};\r
+ interface AspectRatio: NumericalFunctor{};\r
+ interface Warping: NumericalFunctor{};\r
+ interface Taper: NumericalFunctor{};\r
+ interface Skew: NumericalFunctor{};\r
+ interface Area: NumericalFunctor{};\r
+ interface Length: NumericalFunctor{};\r
+ interface MultiConnection: NumericalFunctor{};\r
+\r
+ interface Predicate: Functor{\r
+ boolean IsSatisfy(in long thEntityId);\r
+ };\r
+\r
+ interface FreeBorders: Predicate{};\r
+\r
+ interface Comparator: Predicate{\r
+ void SetMargin(in double theValue);\r
+ void SetNumFunctor(in NumericalFunctor theFunct);\r
+ };\r
+\r
+ interface LessThan: Comparator{};\r
+ interface MoreThan: Comparator{};\r
+ interface EqualTo: Comparator{\r
+ void SetTolerance(in double theTolerance );\r
+ };\r
+\r
+ interface Logical: Predicate{};\r
+\r
+ interface LogicalNOT: Logical{\r
+ void SetPredicate(in Predicate thePredicate);\r
+ };\r
+\r
+ interface LogicalBinary: Logical{\r
+ void SetPredicate1(in Predicate thePredicate);\r
+ void SetPredicate2(in Predicate thePredicate);\r
+ };\r
+ \r
+ interface LogicalAND: LogicalBinary{};\r
+ interface LogicalOR: LogicalBinary{};\r
+ interface Filter: SALOME::GenericObj{\r
+ void SetPredicate( in Predicate thePredicate );\r
+ long_array GetElementsId( in SMESH_Mesh theMesh );\r
+ };\r
+\r
+ interface FilterManager: SALOME::GenericObj{\r
+ MinimumAngle CreateMinimumAngle();\r
+ AspectRatio CreateAspectRatio();\r
+ Warping CreateWarping();\r
+ Taper CreateTaper();\r
+ Skew CreateSkew();\r
+ Area CreateArea();\r
+ Length CreateLength();\r
+ MultiConnection CreateMultiConnection();\r
+\r
+ FreeBorders CreateFreeBorders();\r
+\r
+ LessThan CreateLessThan();\r
+ MoreThan CreateMoreThan();\r
+ EqualTo CreateEqualTo();\r
+ \r
+ LogicalNOT CreateLogicalNOT();\r
+ LogicalAND CreateLogicalAND();\r
+ LogicalOR CreateLogicalOR();\r
+ Filter CreateFilter();\r
+ };\r
+ \r
+};\r
+\r
+#endif\r