Salome HOME
fix bug 12361. In SetName(): there may be no study
[modules/smesh.git] / idl / SMESH_BasicHypothesis.idl
index c0251517f7fb654b15792ea1bf740e060da313d9..7880020e72ee0ac27001647277fefdce42df8c2b 100644 (file)
 //
 //  File   : SMESH_BasicHypothesis.idl
 //  Author : Paul RASCLE, EDF
-//  $Header$
 
 #ifndef _SMESH_BASICHYPOTHESIS_IDL_
 #define _SMESH_BASICHYPOTHESIS_IDL_
 
 #include "SALOME_Exception.idl"
 #include "SMESH_Hypothesis.idl"
+#include "SMESH_Mesh.idl"
 
 
-module SMESH
+/*!
+ * StdMeshers: interfaces to standard hypotheses and algorithms
+ */
+module StdMeshers
 {
-  interface SMESH_LocalLength : SMESH_Hypothesis
+  /*!
+   * StdMeshers_LocalLength: interface of "Average length" hypothesis
+   */
+  interface StdMeshers_LocalLength : SMESH::SMESH_Hypothesis
   {
+    /*!
+     * Sets <length> parameter value
+     */
     void SetLength(in double length) 
       raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Returns <length> parameter value
+     */
     double GetLength();
   };
 
-  interface SMESH_NumberOfSegments : SMESH_Hypothesis
+  /*!
+   * StdMeshers_AutomaticLength: interface of "Automatic length" hypothesis
+   */
+  interface StdMeshers_AutomaticLength : SMESH::SMESH_Hypothesis
+  {
+    /*!
+     * Sets Fineness parameter value
+     */
+    void SetFineness(in double theFineness)
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Returns <Fineness> parameter value
+     */
+    double GetFineness();
+  };
+
+  /*!
+   * StdMeshers_NumberOfSegments: interface of "Nb. Segments" hypothesis
+   */
+  interface StdMeshers_NumberOfSegments : SMESH::SMESH_Hypothesis
   {
+    /*!
+     * Builds and returns point distribution according to passed density function
+     */
+    SMESH::double_array BuildDistributionExpr( in string func, in long nbSeg, in long conv )
+      raises (SALOME::SALOME_Exception);
+    SMESH::double_array BuildDistributionTab( in SMESH::double_array func, in long nbSeg, in long conv )
+      raises (SALOME::SALOME_Exception);
+  
+    /*!
+     * Sets <number of segments> parameter value
+     */
     void SetNumberOfSegments(in long segmentsNumber) 
       raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Returns <number of segments> parameter value
+     */
     long GetNumberOfSegments();
+
+    /*!
+     * Sets <distribution type> parameter value
+     */
+    void SetDistrType(in long typ)
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Returns <distribution type> parameter value
+     */
+    long GetDistrType();
+
+    /*!
+     * Sets <scale factor> parameter value
+     */
     void SetScaleFactor(in double scaleFactor)
       raises (SALOME::SALOME_Exception);
-    double GetScaleFactor();
+
+    /*!
+     * Returns <scale factor> parameter value
+     */
+    double GetScaleFactor()
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Sets <table function> parameter value for distribution DT_TabFunc
+     */
+    void SetTableFunction(in SMESH::double_array table)
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Returns <table function> parameter value for distribution DT_TabFunc
+     */
+    SMESH::double_array GetTableFunction()
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Sets <expression function> parameter value for distribution DT_ExprFunc
+     */
+    void SetExpressionFunction(in string expr)
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Returns <expression function> parameter value for distribution DT_ExprFunc
+     */
+    string GetExpressionFunction()
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Sets <conversion mode> parameter value for functional distributions
+     */
+    void SetConversionMode(in long conv )
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Returns <conversion mode> parameter value for functional distributions
+     */
+    long ConversionMode()
+      raises (SALOME::SALOME_Exception);
+  };
+
+  /*!
+   * StdMeshers_Arithmetic1D: interface of "Arithmetic 1D" hypothesis
+   */
+  interface StdMeshers_Arithmetic1D : SMESH::SMESH_Hypothesis
+  {
+    /*!
+     * Sets <start segment length> or <end segment length> parameter value
+     */
+    void SetLength(in double length, in boolean isStartLength) 
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Returns <start segment length> or <end segment length> parameter value
+     */
+    double GetLength(in boolean isStartLength);
   };
 
-  interface SMESH_MaxElementArea : SMESH_Hypothesis
+  /*!
+   * StdMeshers_MaxElementArea: interface of "Max. Triangle Area" hypothesis
+   */
+  interface StdMeshers_MaxElementArea : SMESH::SMESH_Hypothesis
   {
+    /*!
+     * Sets <maximum element area> parameter value
+     */
     void SetMaxElementArea(in double area) 
       raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Returns <maximum element area> parameter value
+     */
     double GetMaxElementArea();
   };
 
-  interface SMESH_LengthFromEdges : SMESH_Hypothesis
+  /*!
+   * StdMeshers_LengthFromEdges: interface of "Length From Edges (2D Hyp. for Triangulator)" hypothesis
+   */
+  interface StdMeshers_LengthFromEdges : SMESH::SMESH_Hypothesis
   {
+    /*!
+     * Sets <mode> parameter value
+     */
     void SetMode(in long mode) 
       raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Returns <mode> parameter value
+     */
     long GetMode();
   };
 
-  interface SMESH_MaxElementVolume : SMESH_Hypothesis
+  /*!
+   * StdMeshers_StartEndLength: interface of "Start and End Length" hypothesis
+   */
+  interface StdMeshers_StartEndLength : SMESH::SMESH_Hypothesis
   {
+    /*!
+     * Sets <start segment length> or <end segment length> parameter value
+     */
+    void SetLength(in double length, in boolean isStartLength) 
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Returns <start segment length> or <end segment length> parameter value
+     */
+    double GetLength(in boolean isStartLength);
+  };
+
+
+  /*!
+   * StdMeshers_Deflection1D: interface of "Deflection 1D" hypothesis
+   */
+  interface StdMeshers_Deflection1D : SMESH::SMESH_Hypothesis
+  {
+    /*!
+     * Sets <deflection> parameter value
+     */
+    void SetDeflection(in double deflection)
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Returns <deflection> parameter value
+     */
+    double GetDeflection();
+  };
+
+
+  /*!
+   * StdMeshers_MaxElementVolume: interface of "Max. Hexahedron or Tetrahedron Volume" hypothesis
+   */
+  interface StdMeshers_MaxElementVolume : SMESH::SMESH_Hypothesis
+  {
+    /*!
+     * Sets <maximum element volume> parameter value
+     */
     void SetMaxElementVolume(in double volume) 
       raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Returns <maximum element volume> parameter value
+     */
     double GetMaxElementVolume();
   };
 
-  interface SMESH_Regular_1D : SMESH_1D_Algo
+  /*!
+   * StdMeshers_NotConformAllowed: interface of "Not Conform Mesh Allowed" hypothesis.
+   * Presence of this hypothesis permits to algorithm generation of not conform mesh.
+   */
+  interface StdMeshers_NotConformAllowed : SMESH::SMESH_Hypothesis
+  {
+  };
+
+  /*!
+   * StdMeshers_Propagation: interface of "Propagation" hypothesis.
+   * Presence of this hypothesis on any edge propagates any other 1D
+   * hypothesis from this edge on all edges, opposite to it.
+   * It concerns only edges of quadrangle faces.
+   */
+  interface StdMeshers_Propagation : SMESH::SMESH_Hypothesis
+  {
+  };
+
+  /*!
+   * StdMeshers_QuadranglePreference: interface of "QuadranglePreference" hypothesis.
+   * This hypothesis is used by StdMeshers_Quadrangle_2D algorithm.
+   * Presence of this hypothesis forces construction of quadrangles if the number
+   * of nodes on opposite edges is not the same in the case where the global number
+   * of nodes on edges is even
+   */
+  interface StdMeshers_QuadranglePreference : SMESH::SMESH_Hypothesis
   {
   };
 
-  interface SMESH_MEFISTO_2D : SMESH_2D_Algo
+  /*!
+   * StdMeshers_QuadraticMesh: interface of "QuadraticMesh" hypothesis.
+   * This is an auxiliary 1D hypothesis whose presence forces construction 
+   * of quadratic edges.
+   * If the 2D mesher sees that all boundary edges are quadratic ones,
+   * it generates quadratic faces, else it generates linear faces using
+   * medium nodes as if they were vertex ones.
+   * The 3D mesher generates quadratic volumes only if all boundary faces
+   * are quadratic ones, else it fails.
+   */
+  interface StdMeshers_QuadraticMesh : SMESH::SMESH_Hypothesis
   {
   };
 
-  interface SMESH_Quadrangle_2D : SMESH_2D_Algo
+
+  /*!
+   * StdMeshers_Regular_1D: interface of "Wire discretisation" algorithm
+   */
+  interface StdMeshers_Regular_1D : SMESH::SMESH_1D_Algo
   {
   };
 
-  interface SMESH_Hexa_3D : SMESH_3D_Algo
+  /*!
+   * StdMeshers_MEFISTO_2D: interface of "Triangle (Mefisto)" algorithm
+   */
+  interface StdMeshers_MEFISTO_2D : SMESH::SMESH_2D_Algo
   {
   };
 
-  interface SMESH_NETGEN_3D : SMESH_3D_Algo
+  /*!
+   * StdMeshers_Quadrangle_2D: interface of "Quadrangle (Mapping)" algorithm
+   */
+  interface StdMeshers_Quadrangle_2D : SMESH::SMESH_2D_Algo
   {
   };
+
+  /*!
+   * StdMeshers_Hexa_3D: interface of "Hexahedron (i,j,k)" algorithm
+   */
+  interface StdMeshers_Hexa_3D : SMESH::SMESH_3D_Algo
+  {
+  };
+
 };
 
 #endif