Salome HOME
DCQ:prepare 2.0.0
[modules/smesh.git] / idl / SMESH_Filter.idl
1 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,\r
2 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS \r
3 // \r
4 //  This library is free software; you can redistribute it and/or \r
5 //  modify it under the terms of the GNU Lesser General Public \r
6 //  License as published by the Free Software Foundation; either \r
7 //  version 2.1 of the License. \r
8 // \r
9 //  This library is distributed in the hope that it will be useful, \r
10 //  but WITHOUT ANY WARRANTY; without even the implied warranty of \r
11 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU \r
12 //  Lesser General Public License for more details. \r
13 // \r
14 //  You should have received a copy of the GNU Lesser General Public \r
15 //  License along with this library; if not, write to the Free Software \r
16 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA \r
17 // \r
18 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org \r
19 //\r
20 //\r
21 //\r
22 //  File   : SMESH_Filter.idl\r
23 //  Author : Alexey Petrov, OCC\r
24 \r
25 #ifndef _SMESH_FILTER_IDL_\r
26 #define _SMESH_FILTER_IDL_\r
27 \r
28 #include "SALOME_Exception.idl"\r
29 #include "SALOME_GenericObj.idl"\r
30 #include "SMESH_Mesh.idl"\r
31 \r
32 module SMESH{\r
33 \r
34   interface Functor: SALOME::GenericObj{\r
35     void SetMesh(in SMESH_Mesh theMesh);\r
36   };\r
37 \r
38   interface NumericalFunctor: Functor{\r
39     double GetValue(in long theElementId);\r
40   };\r
41 \r
42   interface MinimumAngle: NumericalFunctor{};\r
43   interface AspectRatio: NumericalFunctor{};\r
44   interface Warping: NumericalFunctor{};\r
45   interface Taper: NumericalFunctor{};\r
46   interface Skew: NumericalFunctor{};\r
47   interface Area: NumericalFunctor{};\r
48   interface Length: NumericalFunctor{};\r
49   interface MultiConnection: NumericalFunctor{};\r
50 \r
51   interface Predicate: Functor{\r
52     boolean IsSatisfy(in long thEntityId);\r
53   };\r
54 \r
55   interface FreeBorders: Predicate{};\r
56 \r
57   interface Comparator: Predicate{\r
58     void SetMargin(in double theValue);\r
59     void SetNumFunctor(in NumericalFunctor theFunct);\r
60   };\r
61 \r
62   interface LessThan: Comparator{};\r
63   interface MoreThan: Comparator{};\r
64   interface EqualTo: Comparator{\r
65     void SetTolerance(in double theTolerance );\r
66   };\r
67 \r
68   interface Logical: Predicate{};\r
69 \r
70   interface LogicalNOT: Logical{\r
71     void SetPredicate(in Predicate thePredicate);\r
72   };\r
73 \r
74   interface LogicalBinary: Logical{\r
75     void SetPredicate1(in Predicate thePredicate);\r
76     void SetPredicate2(in Predicate thePredicate);\r
77   };\r
78   \r
79   interface LogicalAND: LogicalBinary{};\r
80   interface LogicalOR: LogicalBinary{};\r
81   interface Filter: SALOME::GenericObj{\r
82     void SetPredicate( in Predicate thePredicate );\r
83     long_array GetElementsId( in SMESH_Mesh theMesh );\r
84   };\r
85 \r
86   interface FilterManager: SALOME::GenericObj{\r
87     MinimumAngle CreateMinimumAngle();\r
88     AspectRatio CreateAspectRatio();\r
89     Warping CreateWarping();\r
90     Taper CreateTaper();\r
91     Skew CreateSkew();\r
92     Area CreateArea();\r
93     Length CreateLength();\r
94     MultiConnection CreateMultiConnection();\r
95 \r
96     FreeBorders CreateFreeBorders();\r
97 \r
98     LessThan CreateLessThan();\r
99     MoreThan CreateMoreThan();\r
100     EqualTo CreateEqualTo();\r
101     \r
102     LogicalNOT CreateLogicalNOT();\r
103     LogicalAND CreateLogicalAND();\r
104     LogicalOR CreateLogicalOR();\r
105     Filter CreateFilter();\r
106   };\r
107   \r
108 };\r
109 \r
110 #endif\r