Salome HOME
Corrections to handle adapation to shape
[modules/smesh.git] / idl / SMESH_Gen.idl
index 1efbfc2e459cf429ad3da3ec39123f71adf8dcba..a5b48aaa6bf75f81c3e09fd8a28488e0f9a5b8ae 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2019  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022  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
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 
 #include "SMESH_Mesh.idl"
 #include "SMESH_Hypothesis.idl"
 
 #include "SMESH_Mesh.idl"
 #include "SMESH_Hypothesis.idl"
+#include "SMESH_smIdType.idl"
+
+module SMESHHOMARD
+{
+  interface HOMARD_Gen;
+};
 
 module SMESH
 {
 
 module SMESH
 {
@@ -43,6 +49,8 @@ module SMESH
   interface FilterManager;
   interface SMESH_Pattern;
   interface Measurements;
   interface FilterManager;
   interface SMESH_Pattern;
   interface Measurements;
+  interface MG_ADAPT;
+  interface MG_ADAPT_OBJECT;
 
   /*!
    * Tags definition
 
   /*!
    * Tags definition
@@ -111,11 +119,20 @@ module SMESH
     short   code;       // ComputeErrorName or, if negative, algo specific code
     string  comment;    // textual problem description
     string  algoName;
     short   code;       // ComputeErrorName or, if negative, algo specific code
     string  comment;    // textual problem description
     string  algoName;
-    short   subShapeID; // id of sub-shape of a shape to mesh
+    long    subShapeID; // id of sub-shape of a shape to mesh
     boolean hasBadMesh; // there are elements preventing computation available for visualization
   };
   typedef sequence<ComputeError> compute_error_array;
 
     boolean hasBadMesh; // there are elements preventing computation available for visualization
   };
   typedef sequence<ComputeError> compute_error_array;
 
+  /*!
+   * Way to initialize hypothesis
+   */
+  struct HypInitParams
+  {
+    short   way; // 0 - by mesh, 1 - by geometry size + preferred parameters, 2 - by averageLength
+    double  averageLength;
+    boolean quadDominated;
+  };
 
   interface SMESH_Gen : Engines::EngineComponent, SALOMEDS::Driver
   {
 
   interface SMESH_Gen : Engines::EngineComponent, SALOMEDS::Driver
   {
@@ -142,12 +159,12 @@ module SMESH
       Update the study
      */
     void UpdateStudy();
       Update the study
      */
     void UpdateStudy();
-    
+
     /*!
       Set enable publishing in the study
      */
     void SetEnablePublish( in boolean theIsEnablePublish );
     /*!
       Set enable publishing in the study
      */
     void SetEnablePublish( in boolean theIsEnablePublish );
-    
+
     /*!
       Get enable publishing in the study
      */
     /*!
       Get enable publishing in the study
      */
@@ -164,6 +181,15 @@ module SMESH
                                        in string theLibName )
       raises ( SALOME::SALOME_Exception );
 
                                        in string theLibName )
       raises ( SALOME::SALOME_Exception );
 
+    /*!
+     * Create a hypothesis and initialize it by average length
+     */
+    SMESH_Hypothesis CreateHypothesisByAverageLength( in string  theHypName,
+                                                      in string  theLibName,
+                                                      in double  theAverageLength,
+                                                      in boolean theQuadDominated)
+      raises ( SALOME::SALOME_Exception );
+
     /*!
      * Return a hypothesis holding parameter values corresponding either to the mesh
      * existing on the given geometry or to size of the geometry.
     /*!
      * Return a hypothesis holding parameter values corresponding either to the mesh
      * existing on the given geometry or to size of the geometry.
@@ -175,7 +201,7 @@ module SMESH
                                                    in string            theLibName,
                                                    in SMESH_Mesh        theMesh,
                                                    in GEOM::GEOM_Object theGeom,
                                                    in string            theLibName,
                                                    in SMESH_Mesh        theMesh,
                                                    in GEOM::GEOM_Object theGeom,
-                                                   in boolean           byMesh)
+                                                   in HypInitParams     theWay)
       raises ( SALOME::SALOME_Exception );
 
     /*!
       raises ( SALOME::SALOME_Exception );
 
     /*!
@@ -232,16 +258,9 @@ module SMESH
     /*!
      * Create Mesh object(s) importing data from given MED file
      */
     /*!
      * Create Mesh object(s) importing data from given MED file
      */
-     mesh_array CreateMeshesFromMED( in string theFileName,
-                                     out SMESH::DriverMED_ReadStatus theStatus )
-       raises ( SALOME::SALOME_Exception );
-
-    /*!
-     * Create Mesh object(s) importing data from given MED file
-     */
-     mesh_array CreateMeshesFromSAUV( in string theFileName,
-                                     out SMESH::DriverMED_ReadStatus theStatus )
-       raises ( SALOME::SALOME_Exception );
+    mesh_array CreateMeshesFromMED( in string theFileName,
+                                    out SMESH::DriverMED_ReadStatus theStatus )
+      raises ( SALOME::SALOME_Exception );
 
     /*!
      * Create Mesh object importing data from given STL file
 
     /*!
      * Create Mesh object importing data from given STL file
@@ -265,6 +284,16 @@ module SMESH
                                     in boolean              theMakeRequiredGroups,
                                     out SMESH::ComputeError theError)
       raises ( SALOME::SALOME_Exception );
                                     in boolean              theMakeRequiredGroups,
                                     out SMESH::ComputeError theError)
       raises ( SALOME::SALOME_Exception );
+    /*!
+     * Create a dual mesh of a Tetrahedron mesh
+     *  \param mesh - TetraHedron mesh to create dual from
+     *  \param meshName - a name of the new mesh
+     *  \param adaptToShape - if True project boundary point on shape
+     */
+    SMESH_Mesh CreateDualMesh(in SMESH_IDSource mesh,
+                              in string         meshName,
+                              in boolean        adaptToShape)
+      raises ( SALOME::SALOME_Exception );
 
     /*!
      * Create a mesh by copying a part of another mesh
 
     /*!
      * Create a mesh by copying a part of another mesh
@@ -286,7 +315,7 @@ module SMESH
      *  \param newGeometry - a new geometry
      *  \param meshName - a name of the new mesh
      *  \param toCopyGroups - to create groups in the new mesh
      *  \param newGeometry - a new geometry
      *  \param meshName - a name of the new mesh
      *  \param toCopyGroups - to create groups in the new mesh
-     *  \param toReuseHypotheses - if True, existing hypothesis will be used by the new mesh, 
+     *  \param toReuseHypotheses - if True, existing hypothesis will be used by the new mesh,
      *         otherwise new hypotheses with the same parameters will be created for the new mesh.
      *  \param toCopyElements - to copy mesh elements of same sub-shapes of the two geometries
      *  \param newMesh - return a new mesh
      *         otherwise new hypotheses with the same parameters will be created for the new mesh.
      *  \param toCopyElements - to copy mesh elements of same sub-shapes of the two geometries
      *  \param newMesh - return a new mesh
@@ -296,7 +325,7 @@ module SMESH
      *  \param invalidEntries - return study entries of objects whose
      *         counterparts are not found in the newGeometry, followed by entries
      *         of mesh sub-objects that are invalid because they depend on a not found
      *  \param invalidEntries - return study entries of objects whose
      *         counterparts are not found in the newGeometry, followed by entries
      *         of mesh sub-objects that are invalid because they depend on a not found
-     *         preceeding sub-shape
+     *         preceding sub-shape
      */
     boolean CopyMeshWithGeom( in SMESH_Mesh        sourceMesh,
                               in GEOM::GEOM_Object newGeometry,
      */
     boolean CopyMeshWithGeom( in SMESH_Mesh        sourceMesh,
                               in GEOM::GEOM_Object newGeometry,
@@ -367,8 +396,8 @@ module SMESH
     /*!
      * Evaluates size of prospective mesh on a shape
      */
     /*!
      * Evaluates size of prospective mesh on a shape
      */
-    long_array  Evaluate(in SMESH_Mesh        theMesh,
-                         in GEOM::GEOM_Object theSubObject)
+    smIdType_array  Evaluate(in SMESH_Mesh        theMesh,
+                             in GEOM::GEOM_Object theSubObject)
       raises ( SALOME::SALOME_Exception );
 
     /*!
       raises ( SALOME::SALOME_Exception );
 
     /*!
@@ -426,17 +455,17 @@ module SMESH
      * The returned geometrical object, if not nil, is either found in the
      * study or is published by this method with the given name
      */
      * The returned geometrical object, if not nil, is either found in the
      * study or is published by this method with the given name
      */
-    GEOM::GEOM_Object GetGeometryByMeshElement( in SMESH_Mesh  theMesh,
-                                                in long        theElementID,
-                                                in string      theGeomName)
+    GEOM::GEOM_Object GetGeometryByMeshElement( in SMESH_Mesh theMesh,
+                                                in smIdType   theElementID,
+                                                in string     theGeomName)
       raises ( SALOME::SALOME_Exception );
 
     /*!
      * Return geometrical object the given element is built on.
      * The returned geometrical object not published in study by this method.
      */
       raises ( SALOME::SALOME_Exception );
 
     /*!
      * Return geometrical object the given element is built on.
      * The returned geometrical object not published in study by this method.
      */
-    GEOM::GEOM_Object FindGeometryByMeshElement( in SMESH_Mesh  theMesh,
-                                                 in long        theElementID)
+    GEOM::GEOM_Object FindGeometryByMeshElement( in SMESH_Mesh theMesh,
+                                                 in smIdType   theElementID)
       raises ( SALOME::SALOME_Exception );
 
     /*!
       raises ( SALOME::SALOME_Exception );
 
     /*!
@@ -500,60 +529,60 @@ module SMESH
      * Return indices of elements, which are located inside the sphere
      *  \param theSource - mesh, sub-mesh or group
      *  \param theElemType - mesh element type
      * Return indices of elements, which are located inside the sphere
      *  \param theSource - mesh, sub-mesh or group
      *  \param theElemType - mesh element type
-     *  \param theX - x cooridate of the center of the sphere
-     *  \param theY - y cooridate of the center of the sphere
-     *  \param theZ - y cooridate of the center of the sphere
+     *  \param theX - x coordinate of the center of the sphere
+     *  \param theY - y coordinate of the center of the sphere
+     *  \param theZ - y coordinate of the center of the sphere
      *  \param theR - radius of the sphere
      */
     long_array GetInsideSphere( in SMESH_IDSource theSource,
                                in ElementType    theElemType,
      *  \param theR - radius of the sphere
      */
     long_array GetInsideSphere( in SMESH_IDSource theSource,
                                in ElementType    theElemType,
-                               in double theX, 
-                               in double theY, 
+                               in double theX,
+                               in double theY,
                                in double theZ,
                                in double theZ,
-                               in double theR );    
+                               in double theR );
 
     /*!
      * Return indices of elements, which are located inside the box
      *  \param theSource - mesh, sub-mesh or group
      *  \param theElemType - mesh element type
 
     /*!
      * Return indices of elements, which are located inside the box
      *  \param theSource - mesh, sub-mesh or group
      *  \param theElemType - mesh element type
-     *  \param theX1 - x cooridate of the first opposite point
-     *  \param theY1 - y cooridate of the first opposite point
-     *  \param theZ1 - y cooridate of the first opposite point
-     *  \param theX2 - x cooridate of the second opposite point
-     *  \param theY2 - y cooridate of the second opposite point
-     *  \param theZ2 - y cooridate of the second opposite point
+     *  \param theX1 - x coordinate of the first opposite point
+     *  \param theY1 - y coordinate of the first opposite point
+     *  \param theZ1 - y coordinate of the first opposite point
+     *  \param theX2 - x coordinate of the second opposite point
+     *  \param theY2 - y coordinate of the second opposite point
+     *  \param theZ2 - y coordinate of the second opposite point
      */
     long_array GetInsideBox( in SMESH_IDSource theSource,
                             in ElementType    theElemType,
      */
     long_array GetInsideBox( in SMESH_IDSource theSource,
                             in ElementType    theElemType,
-                            in double theX1, 
-                            in double theY1, 
+                            in double theX1,
+                            in double theY1,
                             in double theZ1,
                             in double theX2,
                             in double theY2,
                             in double theZ1,
                             in double theX2,
                             in double theY2,
-                            in double theZ2);    
+                            in double theZ2);
     /*!
      * Return indices of elements, which are located inside the box
      *  \param theSource - mesh, sub-mesh or group
      *  \param theElemType - mesh element type
     /*!
      * Return indices of elements, which are located inside the box
      *  \param theSource - mesh, sub-mesh or group
      *  \param theElemType - mesh element type
-     *  \param theX - x cooridate of the cented of the bottom face
-     *  \param theY - y cooridate of the cented of the bottom face
-     *  \param theZ - y cooridate of the cented of the bottom face
-     *  \param theDX - x cooridate of the cented of the base vector
-     *  \param theDY - y cooridate of the cented of the base vector
-     *  \param theDZ - z cooridate of the cented of the base vector
+     *  \param theX - x coordinate of the cented of the bottom face
+     *  \param theY - y coordinate of the cented of the bottom face
+     *  \param theZ - y coordinate of the cented of the bottom face
+     *  \param theDX - x coordinate of the cented of the base vector
+     *  \param theDY - y coordinate of the cented of the base vector
+     *  \param theDZ - z coordinate of the cented of the base vector
      *  \param theH - height of the cylinder
      *  \param theR - radius of the cylinder
      */
     long_array GetInsideCylinder( in SMESH_IDSource theSource,
                                  in ElementType    theElemType,
      *  \param theH - height of the cylinder
      *  \param theR - radius of the cylinder
      */
     long_array GetInsideCylinder( in SMESH_IDSource theSource,
                                  in ElementType    theElemType,
-                                 in double theX, 
-                                 in double theY, 
+                                 in double theX,
+                                 in double theY,
                                  in double theZ,
                                  in double theDX,
                                  in double theDY,
                                  in double theDZ,
                                  in double theH,
                                  in double theZ,
                                  in double theDX,
                                  in double theDY,
                                  in double theDZ,
                                  in double theH,
-                                 in double theR );    
+                                 in double theR );
     /*!
      * Return indices of elements, which are located inside the geometry
      *  \param theSource - mesh, sub-mesh or group
     /*!
      * Return indices of elements, which are located inside the geometry
      *  \param theSource - mesh, sub-mesh or group
@@ -564,9 +593,13 @@ module SMESH
     long_array GetInside( in SMESH_IDSource theSource,
                          in ElementType    theElemType,
                          in GEOM::GEOM_Object theGeom,
     long_array GetInside( in SMESH_IDSource theSource,
                          in ElementType    theElemType,
                          in GEOM::GEOM_Object theGeom,
-                         in double theTolerance );    
-
+                         in double theTolerance );
 
 
+    MG_ADAPT CreateMG_ADAPT();
+    SMESHHOMARD::HOMARD_Gen CreateHOMARD_ADAPT() raises ( SALOME::SALOME_Exception );
+    //MG_ADAPT_OBJECT Adaptation(in string adaptType);
+    SALOME::GenericObj Adaptation(in string adaptType) raises ( SALOME::SALOME_Exception );
+    MG_ADAPT CreateAdaptationHypothesis();
   };
 
 };
   };
 
 };