// Copyright (C) 2003 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org // // // // File : SMESH_Filter.idl // Author : Alexey Petrov, OCC #ifndef _SMESH_FILTER_IDL_ #define _SMESH_FILTER_IDL_ #include "SALOME_Exception.idl" #include "SALOME_GenericObj.idl" #include "SMESH_Mesh.idl" module SMESH{ interface Functor: SALOME::GenericObj{ void SetMesh(in SMESH_Mesh theMesh); }; interface NumericalFunctor: Functor{ double GetValue(in long theElementId); }; interface MinimumAngle: NumericalFunctor{}; interface AspectRatio: NumericalFunctor{}; interface Warping: NumericalFunctor{}; interface Taper: NumericalFunctor{}; interface Skew: NumericalFunctor{}; interface Area: NumericalFunctor{}; interface Length: NumericalFunctor{}; interface MultiConnection: NumericalFunctor{}; interface Predicate: Functor{ boolean IsSatisfy(in long thEntityId); }; interface FreeBorders: Predicate{}; interface Comparator: Predicate{ void SetMargin(in double theValue); void SetNumFunctor(in NumericalFunctor theFunct); }; interface LessThan: Comparator{}; interface MoreThan: Comparator{}; interface EqualTo: Comparator{ void SetTolerance(in double theTolerance ); }; interface Logical: Predicate{}; interface LogicalNOT: Logical{ void SetPredicate(in Predicate thePredicate); }; interface LogicalBinary: Logical{ void SetPredicate1(in Predicate thePredicate); void SetPredicate2(in Predicate thePredicate); }; interface LogicalAND: LogicalBinary{}; interface LogicalOR: LogicalBinary{}; interface Filter: SALOME::GenericObj{ void SetPredicate( in Predicate thePredicate ); long_array GetElementsId( in SMESH_Mesh theMesh ); }; interface FilterManager: SALOME::GenericObj{ MinimumAngle CreateMinimumAngle(); AspectRatio CreateAspectRatio(); Warping CreateWarping(); Taper CreateTaper(); Skew CreateSkew(); Area CreateArea(); Length CreateLength(); MultiConnection CreateMultiConnection(); FreeBorders CreateFreeBorders(); LessThan CreateLessThan(); MoreThan CreateMoreThan(); EqualTo CreateEqualTo(); LogicalNOT CreateLogicalNOT(); LogicalAND CreateLogicalAND(); LogicalOR CreateLogicalOR(); Filter CreateFilter(); }; }; #endif