Salome HOME
bos #23972 [CEA 19980] sphinxcontrib_napoleon is not needed with Sphinx >= 1.3
[modules/smesh.git] / idl / SMESH_Filter.idl
index 3355bbe48a215601dfdc0db1a6ff84e30e921dd8..1d3e0f18739148e68532c082cae2b25bd4b15460 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // 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.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -53,7 +53,7 @@ module SMESH
     FT_FreeEdges,
     FT_FreeNodes,
     FT_FreeFaces,
-    FT_EqualNodes,  // IMPORTANT: when a new item is added, please
+    FT_EqualNodes,  // IMPORTANT: when a new item is added, don't forget to
     FT_EqualEdges,  // 1) update getFunctNames() in SMESH_Filter_i.cxx: line 3910
     FT_EqualFaces,  // 2) update fixFunctorType() in SMESH_2smeshpy.cxx: line 234
     FT_EqualVolumes,
@@ -61,6 +61,10 @@ module SMESH
     FT_MultiConnection2D,
     FT_Length,
     FT_Length2D,
+    FT_Length3D,
+    FT_Deflection2D,
+    FT_NodeConnectivityNumber,
+    FT_BelongToMeshGroup,
     FT_BelongToGeom,
     FT_BelongToPlane,
     FT_BelongToCylinder,
@@ -78,6 +82,7 @@ module SMESH
     FT_EntityType,
     FT_CoplanarFaces,
     FT_BallDiameter,
+    FT_ConnectedElements,
     FT_LessThan,
     FT_MoreThan,
     FT_EqualTo,
@@ -114,10 +119,12 @@ module SMESH
   */
   interface NumericalFunctor: Functor
   {
-    double GetValue( in long theElementId );
-
-    Histogram GetHistogram( in short nbIntervals, in boolean isLogarithmic );
+    double  GetValue    ( in long theElementId );
+    boolean IsApplicable( in long theElementId );
 
+    Histogram GetHistogram     ( in short nbIntervals, in boolean isLogarithmic );
+    Histogram GetLocalHistogram( in short nbIntervals, in boolean isLogarithmic,
+                                 in SMESH::SMESH_IDSource obj );
     /*!
     * Set precision for calculation. It is a position after point which is
     * used to functor value after calculation.
@@ -146,6 +153,8 @@ module SMESH
     typedef sequence<Value> Values;
     Values GetValues();
   };
+  interface Length3D          : NumericalFunctor{};
+  interface Deflection2D      : NumericalFunctor{};
   interface MultiConnection   : NumericalFunctor{};
   interface MultiConnection2D : NumericalFunctor
   {
@@ -159,15 +168,17 @@ module SMESH
     Values GetValues();
   };
   interface BallDiameter    : NumericalFunctor{};
+  interface NodeConnectivityNumber : NumericalFunctor{};
   
 
   /*!
   * Predicates are intended for verification of criteria,
-  *            must return bool value by mesh id
+  *            they return bool value by mesh id
   */
   interface Predicate: Functor
   {
     boolean IsSatisfy( in long thEntityId );
+    long    NbSatisfying( in SMESH::SMESH_IDSource obj );
   };
 
   /*!
@@ -225,6 +236,17 @@ module SMESH
    */
   interface EqualVolumes: Predicate {};
 
+  /*!
+  * Logical functor (predicate) "Belong To Mesh Group".
+  * Verify whether a mesh element is included into a mesh group
+  */
+  interface BelongToMeshGroup: Predicate
+  {
+    void SetGroup( in SMESH::SMESH_GroupBase theGroup );
+    void SetGroupID( in string theID ); // IOR or StoreName
+    SMESH::SMESH_GroupBase GetGroup();
+  };
+
   /*!
    * Logical functor (predicate) "Belong To Geometry".
    * Verify whether mesh element or node belong to pointed Geom Object
@@ -317,7 +339,7 @@ module SMESH
   * Logical functor (predicate) "Free borders".
   * Verify whether 1D mesh element is free ( i.e. connected to one face only )
   */
-  interface FreeBorders: Predicate{};
+  interface FreeBorders: Predicate {};
 
   /*!
   * Logical functor (predicate) "Free edges".
@@ -338,13 +360,13 @@ module SMESH
   * Logical functor (predicate) "Free nodes".
   * Verify whether mesh has free nodes( i.e. nodes are not connected to any element )
   */
-  interface FreeNodes: Predicate{};
+  interface FreeNodes: Predicate {};
  
   /*!
   * Logical functor (predicate) "Free faces".
   * Verify whether 2D mesh element is free ( i.e. connected to one volume only )
   */
-  interface FreeFaces: Predicate{};
+  interface FreeFaces: Predicate {};
 
   /*!
   * Abstract logical functor (predicate) "RangeOfIds".
@@ -380,7 +402,7 @@ module SMESH
   /*!
   * Logical predicates are intended for compose predicates using boolean operations
   */
-  interface Logical: Predicate{};
+  interface Logical: Predicate {};
 
   interface LogicalNOT: Logical
   {
@@ -405,47 +427,63 @@ module SMESH
   };
 
   /*!
-  * Functor "Group Color"
+  * Predicate "Group Color"
   * Returns color of group to which mesh element belongs to
   */
-  interface GroupColor : Predicate{
+  interface GroupColor : Predicate {
     void            SetElementType( in ElementType theType );
     void            SetColorStr( in string theColor );
     string          GetColorStr();
   };
 
   /*!
-  * Functor "Element geometry type"
+  * Predicate "Element geometry type"
   * Returns is element has indicated geometry type
   */
-  interface ElemGeomType : Predicate{
+  interface ElemGeomType : Predicate {
     void            SetElementType ( in ElementType  theType );
     void            SetGeometryType( in GeometryType theType );
   };
 
   /*!
-  * Functor "Element entity type"
+  * Predicate "Element entity type"
   * Returns is element has indicated entity type
   */
-  interface ElemEntityType : Predicate{
+  interface ElemEntityType : Predicate {
     void            SetElementType ( in ElementType  theType );
     void            SetEntityType( in EntityType theSetEntityType );
   };
 
   /*!
-  * Functor "Coplanar faces"
+  * Predicate "Coplanar faces"
   * Returns true if a mesh face is a coplanar neighbour to a given one. It checks
   * if normal of a face has angle with the threshold face less than a tolerance.
   */
-  interface CoplanarFaces : Predicate{
+  interface CoplanarFaces : Predicate {
     void            SetFace ( in long theFaceID );
     void            SetTolerance( in double theToler );
   };
 
+  /*!
+  * Predicate "Connected Elements"
+  * Returns true if an element is connected via other elements to the element 
+  * located at a given point.
+  */
+  interface ConnectedElements : Predicate {
+    enum ThresholdType { POINT, VERTEX, NODE, NONE };
+    void            SetElementType( in ElementType type );
+    void            SetPoint      ( in double x, in double y, in double z );
+    void            SetVertex     ( in GEOM::GEOM_Object vertex );
+    void            SetNode       ( in long nodeID );
+    string          GetThreshold  ( out ThresholdType type );
+    void            SetThreshold  ( in string threshold, in ThresholdType type ) 
+      raises (SALOME::SALOME_Exception);
+  };
+
   /*!
   *  Filter
   */
-  interface Filter: SALOME::GenericObj, SMESH_IDSource
+  interface Filter: SMESH_IDSource
   {
     /*!
     * Structure containing information about one criterion
@@ -456,14 +494,16 @@ module SMESH
     *   BinaryOp      - binary logical operation FT_LogicalAND, FT_LogicalOR or
     *                   (FT_Undefined must be for the last criterion)
     *   ThresholdStr  - Threshold value defined as string. Used for:
-    *                   1. Diapason of identifiers. Example: "1,2,3,5-10,12,27-29"
-    *                   2. BelongToGeom predicate for storing name of shape
-    *                   3. GroupColor predicate for storing group color "0.2;0;0.5"
+    *                   1. Diapason of identifiers. Example: "1,2,3,5-10,12,27-29".
+    *                   2. Storing name of shape.
+    *                   3. Storing group color "0.2;0;0.5".
+    *                   4. Storing point coordinates.
     *   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", "Belong to cylinder" etc predicates
-    *   TypeOfElement - type of element SMESH::NODE, SMESH::FACE (used by BelongToGeom predicate only)
+    *                   1. Storing id of shape
+    *   Tolerance     - Tolerance is used for 
+    *                   1. Comparison of real values.
+    *                   2. Detection of geometrical coincidence.
+    *   TypeOfElement - type of element SMESH::NODE, SMESH::FACE etc.
     *   Precision     - Precision of numerical functors
     */
     struct Criterion
@@ -486,6 +526,7 @@ module SMESH
     void          SetMesh( in SMESH_Mesh theMesh );
 
     long_array    GetElementsId( in SMESH_Mesh theMesh );
+    long_array    GetElementsIdFromParts( in ListOfIDSources theParts );
     ElementType   GetElementType();
     Predicate     GetPredicate();
 
@@ -538,58 +579,63 @@ module SMESH
     /*!
     *  Create numerical functors
     */
-    MinimumAngle      CreateMinimumAngle();
-    AspectRatio       CreateAspectRatio();
-    AspectRatio3D     CreateAspectRatio3D();
-    Warping           CreateWarping();
-    Taper             CreateTaper();
-    Skew              CreateSkew();
-    Area              CreateArea();
-    Volume3D          CreateVolume3D();
+    MinimumAngle       CreateMinimumAngle();
+    AspectRatio        CreateAspectRatio();
+    AspectRatio3D      CreateAspectRatio3D();
+    Warping            CreateWarping();
+    Taper              CreateTaper();
+    Skew               CreateSkew();
+    Area               CreateArea();
+    Volume3D           CreateVolume3D();
     MaxElementLength2D CreateMaxElementLength2D();
     MaxElementLength3D CreateMaxElementLength3D();
-    Length            CreateLength();
-    Length2D          CreateLength2D();
-    MultiConnection   CreateMultiConnection();
-    MultiConnection2D CreateMultiConnection2D();
-    BallDiameter      CreateBallDiameter();
+    Length             CreateLength();
+    Length2D           CreateLength2D();
+    Length3D           CreateLength3D();
+    Deflection2D       CreateDeflection2D();
+    MultiConnection    CreateMultiConnection();
+    MultiConnection2D  CreateMultiConnection2D();
+    BallDiameter       CreateBallDiameter();
+    NodeConnectivityNumber CreateNodeConnectivityNumber();
     /*!
-    *  Create logical functors ( predicates )
-    */
-    BelongToGeom      CreateBelongToGeom();
-    BelongToPlane     CreateBelongToPlane();
-    BelongToCylinder  CreateBelongToCylinder();
+     *  Create logical functors ( predicates )
+     */
+    BelongToMeshGroup  CreateBelongToMeshGroup();
+    BelongToGeom       CreateBelongToGeom();
+    BelongToPlane      CreateBelongToPlane();
+    BelongToCylinder   CreateBelongToCylinder();
     BelongToGenSurface CreateBelongToGenSurface();
 
-    LyingOnGeom       CreateLyingOnGeom();
+    LyingOnGeom        CreateLyingOnGeom();
 
-    FreeBorders       CreateFreeBorders();
-    FreeEdges         CreateFreeEdges();
-    FreeNodes         CreateFreeNodes();
-    FreeFaces         CreateFreeFaces();
+    FreeBorders        CreateFreeBorders();
+    FreeEdges          CreateFreeEdges();
+    FreeNodes          CreateFreeNodes();
+    FreeFaces          CreateFreeFaces();
 
-    EqualNodes        CreateEqualNodes();
-    EqualEdges        CreateEqualEdges();
-    EqualFaces        CreateEqualFaces();
-    EqualVolumes      CreateEqualVolumes();
+    EqualNodes         CreateEqualNodes();
+    EqualEdges         CreateEqualEdges();
+    EqualFaces         CreateEqualFaces();
+    EqualVolumes       CreateEqualVolumes();
 
-    RangeOfIds        CreateRangeOfIds();
+    RangeOfIds         CreateRangeOfIds();
 
-    BadOrientedVolume CreateBadOrientedVolume();
-    BareBorderVolume  CreateBareBorderVolume();
-    BareBorderFace    CreateBareBorderFace();
+    BadOrientedVolume  CreateBadOrientedVolume();
+    BareBorderVolume   CreateBareBorderVolume();
+    BareBorderFace     CreateBareBorderFace();
     OverConstrainedVolume CreateOverConstrainedVolume();
     OverConstrainedFace   CreateOverConstrainedFace();
-    LinearOrQuadratic CreateLinearOrQuadratic();
+    LinearOrQuadratic  CreateLinearOrQuadratic();
 
-    GroupColor        CreateGroupColor();
-    ElemGeomType      CreateElemGeomType();
-    ElemEntityType    CreateElemEntityType();
-    CoplanarFaces     CreateCoplanarFaces();
+    GroupColor         CreateGroupColor();
+    ElemGeomType       CreateElemGeomType();
+    ElemEntityType     CreateElemEntityType();
+    CoplanarFaces      CreateCoplanarFaces();
+    ConnectedElements  CreateConnectedElements();
 
     /*!
-    *  Create comparators ( predicates )
-    */
+     *  Create comparators ( predicates )
+     */
     LessThan          CreateLessThan();
     MoreThan          CreateMoreThan();
     EqualTo           CreateEqualTo();
@@ -607,7 +653,7 @@ module SMESH
     Filter            CreateFilter();
 
     /*!
-    *  Load filter library. If libary does not exist it is created
+    *  Load filter library. If library does not exist it is created
     */
     FilterLibrary     LoadLibrary( in string aFileName );