Salome HOME
SALOME PAL V1_4_1
[modules/smesh.git] / idl / SMESH_Filter.idl
diff --git a/idl/SMESH_Filter.idl b/idl/SMESH_Filter.idl
new file mode 100644 (file)
index 0000000..e0a5d77
--- /dev/null
@@ -0,0 +1,110 @@
+//  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