1 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
\r
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
\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
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
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
18 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
\r
22 // File : SMESH_Filter.idl
\r
23 // Author : Alexey Petrov, OCC
\r
25 #ifndef _SMESH_FILTER_IDL_
\r
26 #define _SMESH_FILTER_IDL_
\r
28 #include "SALOME_Exception.idl"
\r
29 #include "SALOME_GenericObj.idl"
\r
30 #include "SMESH_Mesh.idl"
\r
34 interface Functor: SALOME::GenericObj{
\r
35 void SetMesh(in SMESH_Mesh theMesh);
\r
38 interface NumericalFunctor: Functor{
\r
39 double GetValue(in long theElementId);
\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
51 interface Predicate: Functor{
\r
52 boolean IsSatisfy(in long thEntityId);
\r
55 interface FreeBorders: Predicate{};
\r
57 interface Comparator: Predicate{
\r
58 void SetMargin(in double theValue);
\r
59 void SetNumFunctor(in NumericalFunctor theFunct);
\r
62 interface LessThan: Comparator{};
\r
63 interface MoreThan: Comparator{};
\r
64 interface EqualTo: Comparator{
\r
65 void SetTolerance(in double theTolerance );
\r
68 interface Logical: Predicate{};
\r
70 interface LogicalNOT: Logical{
\r
71 void SetPredicate(in Predicate thePredicate);
\r
74 interface LogicalBinary: Logical{
\r
75 void SetPredicate1(in Predicate thePredicate);
\r
76 void SetPredicate2(in Predicate thePredicate);
\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
86 interface FilterManager: SALOME::GenericObj{
\r
87 MinimumAngle CreateMinimumAngle();
\r
88 AspectRatio CreateAspectRatio();
\r
89 Warping CreateWarping();
\r
90 Taper CreateTaper();
\r
93 Length CreateLength();
\r
94 MultiConnection CreateMultiConnection();
\r
96 FreeBorders CreateFreeBorders();
\r
98 LessThan CreateLessThan();
\r
99 MoreThan CreateMoreThan();
\r
100 EqualTo CreateEqualTo();
\r
102 LogicalNOT CreateLogicalNOT();
\r
103 LogicalAND CreateLogicalAND();
\r
104 LogicalOR CreateLogicalOR();
\r
105 Filter CreateFilter();
\r