Salome HOME
0020976: EDF 1471 SMESH: New ergonomy to display quality controls
[modules/smesh.git] / idl / SMESH_Filter.idl
index 8cc7bc8645724e8201e5d8c7bb0997d99e57d7bb..4522b220532aee5b440ec7d677f1767cce99771b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2013  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
@@ -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,
@@ -75,8 +75,10 @@ module SMESH
     FT_LinearOrQuadratic,
     FT_GroupColor,
     FT_ElemGeomType,
+    FT_EntityType,
     FT_CoplanarFaces,
     FT_BallDiameter,
+    FT_ConnectedElements,
     FT_LessThan,
     FT_MoreThan,
     FT_EqualTo,
@@ -115,8 +117,9 @@ module SMESH
   {
     double GetValue( in long theElementId );
 
-    Histogram GetHistogram( in short nbIntervals );
-
+    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.
@@ -162,11 +165,12 @@ module SMESH
 
   /*!
   * 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 );
   };
 
   /*!
@@ -316,7 +320,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".
@@ -337,13 +341,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".
@@ -379,7 +383,7 @@ module SMESH
   /*!
   * Logical predicates are intended for compose predicates using boolean operations
   */
-  interface Logical: Predicate{};
+  interface Logical: Predicate {};
 
   interface LogicalNOT: Logical
   {
@@ -404,34 +408,59 @@ 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 "Coplanar faces"
+  * Predicate "Element entity type"
+  * Returns is element has indicated entity type
+  */
+  interface ElemEntityType : Predicate {
+    void            SetElementType ( in ElementType  theType );
+    void            SetEntityType( in EntityType theSetEntityType );
+  };
+
+  /*!
+  * 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
   */
@@ -446,14 +475,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
@@ -543,7 +574,6 @@ module SMESH
     MultiConnection   CreateMultiConnection();
     MultiConnection2D CreateMultiConnection2D();
     BallDiameter      CreateBallDiameter();
-
     /*!
     *  Create logical functors ( predicates )
     */
@@ -575,7 +605,9 @@ module SMESH
 
     GroupColor        CreateGroupColor();
     ElemGeomType      CreateElemGeomType();
+    ElemEntityType    CreateElemEntityType();
     CoplanarFaces     CreateCoplanarFaces();
+    ConnectedElements CreateConnectedElements();
 
     /*!
     *  Create comparators ( predicates )