Salome HOME
Join modifications from BR_Dev_For_4_0 tag V4_1_1.
[modules/smesh.git] / idl / SMESH_Filter.idl
index c66a90ea05998d56f916ad456db1be5be90f8cca..fcb5a993682e38c48b15730bc2712e031273f84c 100644 (file)
@@ -15,7 +15,7 @@
 //  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 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 
 #include "SALOME_Exception.idl"
 #include "SALOME_GenericObj.idl"
+#include "GEOM_Gen.idl"
 #include "SMESH_Mesh.idl"
 
-
-module GEOM
-{
-  interface GEOM_Object;
-};
-
-
 module SMESH
 {
 
@@ -51,6 +45,7 @@ module SMESH
     FT_Taper,       
     FT_Skew,         
     FT_Area,          
+    FT_Volume3D,          
     FT_FreeBorders,
     FT_FreeEdges,
     FT_MultiConnection,
@@ -60,8 +55,10 @@ module SMESH
     FT_BelongToGeom,
     FT_BelongToPlane,
     FT_BelongToCylinder,
+    FT_BelongToGenSurface,
     FT_LyingOnGeom,
     FT_RangeOfIds,
+    FT_BadOrientedVolume,
     FT_LessThan,
     FT_MoreThan,
     FT_EqualTo,
@@ -104,6 +101,7 @@ module SMESH
   interface Taper           : NumericalFunctor{};
   interface Skew            : NumericalFunctor{};
   interface Area            : NumericalFunctor{};
+  interface Volume3D        : NumericalFunctor{};
   interface Length          : NumericalFunctor{};
   interface Length2D        : NumericalFunctor
   {
@@ -137,6 +135,13 @@ module SMESH
     boolean IsSatisfy( in long thEntityId );
   };
 
+  /*!
+  * Logical functor (predicate) "Bad Oriented Volume".
+  * Verify whether a mesh volume is incorrectly oriented from
+  * the point of view of MED convention
+  */
+  interface BadOrientedVolume: Predicate {};
+
   /*!
   * Logical functor (predicate) "Belong To Geometry".
   * Verify whether mesh element or node belong to pointed Geom Object
@@ -147,25 +152,35 @@ module SMESH
     void SetElementType( in ElementType theType );
 
     void   SetShapeName( in string theName );
-    string GetShapeName();    
+    void   SetShape( in string theID, in string theName );
+    string GetShapeName();
+    string GetShapeID();
   };
 
   /*!
   * Logical functor (predicate) "Belong To Surface".
-  * Base interface for "belong to plane" and "belong to cylinder interfaces"
+  * Base interface for "belong to plane" and "belong to cylinder"
+  * and "Belong To Generic Surface" interfaces
   */
   interface BelongToSurface: Predicate
   {
-    void   SetTolerance( in double theToler );
-    double GetTolerance();
-    void   SetShapeName( in string theName, in ElementType theType );
-    string GetShapeName();
+    void    SetTolerance( in double theToler );
+    double  GetTolerance();
+    void    SetShapeName( in string theName, in ElementType theType );
+    void    SetShape( in string theID, in string theName, in ElementType theType );
+    string  GetShapeName();
+    string  GetShapeID();
+    /*!
+    * Limit surface extent to bounding box of boundaries (edges)
+    * in surface parametric space. Boundaries are ignored by default
+    */
+    void    SetUseBoundaries( in boolean theUseBndRestrictions );
+    boolean GetUseBoundaries();
   };
 
-
   /*!
   * Logical functor (predicate) "Belong To Plane".
-  * Verify whether mesh element lie in pointed Geom planar object
+  * Verify whether mesh element lie on pointed Geom planar object
   */
   interface BelongToPlane: BelongToSurface
   {
@@ -173,14 +188,23 @@ module SMESH
   };
 
   /*!
-  * Logical functor (predicate) "Belong To Culinder".
-  * Verify whether mesh element lie in pointed Geom cylindrical object
+  * Logical functor (predicate) "Belong To Cylinder".
+  * Verify whether mesh element lie on pointed Geom cylindrical object
   */
   interface BelongToCylinder: BelongToSurface
   {
     void   SetCylinder( in GEOM::GEOM_Object theGeom, in ElementType theType );
   };
 
+  /*!
+  * Logical functor (predicate) "Belong To Generic Surface".
+  * Verify whether mesh element lie in pointed Geom cylindrical object
+  */
+  interface BelongToGenSurface: BelongToSurface
+  {
+    void   SetSurface( in GEOM::GEOM_Object theGeom, in ElementType theType );
+  };
+
   /*!
   * Logical functor (predicate) "Lying On Geometry".
   * Verify whether mesh element or node lying or partially lying on the pointed Geom Object
@@ -191,7 +215,9 @@ module SMESH
     void SetElementType( in ElementType theType );
 
     void   SetShapeName( in string theName );
+    void   SetShape( in string theID, in string theName );
     string GetShapeName();    
+    string GetShapeID(); 
   };
  
   /*!
@@ -270,7 +296,7 @@ module SMESH
   /*!
   *  Filter
   */
-  interface Filter: SALOME::GenericObj
+  interface Filter: SALOME::GenericObj, SMESH_IDSource
   {
     /*!
     * Structure containing information about one criterion
@@ -283,6 +309,8 @@ module SMESH
     *   ThresholdStr  - Threshold value defined as string. Used for:
     *                   1. Diaposon of identifiers. Example: "1,2,3,5-10,12,27-29"
     *                   2. BelongToGeom predicate for storing name of shape
+    *   ThresholdID   - One more threshold value defined as string. Used for:
+    *                   1. BelongToGeom predicate for storing id of shape
     *   Tolerance     - Tolerance is used for comparators (EqualTo comparision) and for
     *                   "Belong to plane" and "Belong to cylinder" predicates
     *   TypeOfElement - type of element SMESH::NODE, SMESH::FACE (used by BelongToGeom predicate only)
@@ -294,6 +322,7 @@ module SMESH
       long        Compare;
       double      Threshold;
       string      ThresholdStr;
+      string      ThresholdID;
       long        UnaryOp;
       long        BinaryOp;
       double      Tolerance;
@@ -304,6 +333,8 @@ module SMESH
     typedef sequence<Criterion> Criteria;
 
     void          SetPredicate( in Predicate thePredicate );
+    void          SetMesh( in SMESH_Mesh theMesh );
+
     long_array    GetElementsId( in SMESH_Mesh theMesh );
     ElementType   GetElementType();
     Predicate     GetPredicate();
@@ -364,6 +395,7 @@ module SMESH
     Taper             CreateTaper();
     Skew              CreateSkew();
     Area              CreateArea();
+    Volume3D          CreateVolume3D();
     Length            CreateLength();
     Length2D          CreateLength2D();
     MultiConnection   CreateMultiConnection();
@@ -375,6 +407,7 @@ module SMESH
     BelongToGeom      CreateBelongToGeom();
     BelongToPlane     CreateBelongToPlane();
     BelongToCylinder  CreateBelongToCylinder();
+    BelongToGenSurface CreateBelongToGenSurface();
 
     LyingOnGeom       CreateLyingOnGeom();
 
@@ -383,6 +416,8 @@ module SMESH
 
     RangeOfIds        CreateRangeOfIds();
 
+    BadOrientedVolume CreateBadOrientedVolume();
+
     /*!
     *  Create comparators ( predicates )
     */