Salome HOME
Updated copyright comment
[plugins/blsurfplugin.git] / idl / BLSURFPlugin_Algorithm.idl
index 671fd60ffd2e7b6178641046211cc8341289fbb9..5b889d7f1ef29c0226c7bdaed566925862595fd4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2024  CEA, EDF
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 #ifndef _SMESH_BLSURFALGORITHM_IDL_
 #define _SMESH_BLSURFALGORITHM_IDL_
 
-#include "SMESH_Hypothesis.idl"
 #include "GEOM_Gen.idl"
 #include "SALOME_Exception.idl"
+#include "SMESH_Hypothesis.idl"
+#include "SMESH_Mesh.idl"
 
 /*!
  * BLSURFPlugin: interfaces to BLSURF related hypotheses and algorithms
@@ -37,6 +38,14 @@ module BLSURFPlugin
 {
   typedef sequence<string> string_array;
 
+  // Enforced 1D Mesh
+  struct MG_EnforcedMesh1D
+  {
+    SMESH::SMESH_IDSource mesh;      // mesh, group or sub-mesh
+    string                groupName; // optional name of a group to add mesh edges to
+  };
+  typedef sequence< MG_EnforcedMesh1D > EnforcedMeshesList;
+
   // Enforced vertex name
   typedef string TEnfName;
   // Entry
@@ -44,12 +53,12 @@ module BLSURFPlugin
   typedef sequence<TEntry> TEntryList;
   // Group name
   typedef string TEnfGroupName;
-  
+
   // Coordinates of enforced vertex
   typedef sequence<double,3> TEnfVertexCoords;
   // List of coords
   typedef sequence<TEnfVertexCoords> TEnfVertexCoordsList;
-  
+
   // Enforced vertex
   struct TEnfVertex {
     TEnfName name;
@@ -121,8 +130,11 @@ module BLSURFPlugin
   typedef sequence<TPreCadPeriodicity> TPeriodicityList;
 
   // Hyper-patches
-  typedef sequence<long> THyperPatch;
-  typedef sequence<THyperPatch> THyperPatchList;
+  typedef sequence< long               > THyperPatch;
+  typedef sequence< THyperPatch        > THyperPatchList;
+  typedef sequence< string             > THyperPatchEntries;
+  typedef sequence< THyperPatchEntries > THyperPatchEntriesList;
+  typedef sequence< GEOM::ListOfGO     > THyperPatchShapesList;
   
   /*!
    * BLSURFPlugin_BLSURF: interface of BLSURF algorithm
@@ -138,7 +150,13 @@ module BLSURFPlugin
   {
 
     /*!
-     * Sets a way to define size of mesh elements to generate
+     * Get version of MeshGems suite.
+     * The version is a string in form <major>.<minor>-<patch>. Example: "2.9-6".
+     */
+    string GetMeshGemsVersion();
+
+    /*!
+     *Set a way to define size of mesh elements to generate
      * 0 - size is defined automatically
      * 1 - size is set by SetPhySize() method
      * 2 - size is set by SetPhySize() method. A sizemap is defined.
@@ -147,7 +165,7 @@ module BLSURFPlugin
     long GetPhysicalMesh();
 
     /*!
-     * Sets a way to define maximum angular deflection of mesh from CAD model
+     *Set a way to define maximum angular deflection of mesh from CAD model
      * 0 - deflection is defined automatically
      * 1 - deflection is set by SetAngleMesh() method
      * 2 - deflection is set by SetAngleMesh() method. A sizemap is defined (TODO).
@@ -156,7 +174,7 @@ module BLSURFPlugin
     long GetGeometricMesh();
 
     /*!
-     * Sets size of mesh elements to generate
+     *Set size of mesh elements to generate
      */
     void SetPhySize(in double size);
     void SetPhySizeRel(in double size);
@@ -164,7 +182,7 @@ module BLSURFPlugin
     boolean IsPhySizeRel();
 
     /*!
-     * Sets lower boundary of mesh element size
+     *Set lower boundary of mesh element size
      */
     void SetMinSize(in double theMinSize);
     void SetMinSizeRel(in double theMinSize);
@@ -172,7 +190,7 @@ module BLSURFPlugin
     boolean IsMinSizeRel();
 
     /*!
-     * Sets upper boundary of mesh element size
+     *Set upper boundary of mesh element size
      */
     void SetMaxSize(in double theMaxSize);
     void SetMaxSizeRel(in double theMaxSize);
@@ -180,7 +198,7 @@ module BLSURFPlugin
     boolean IsMaxSizeRel();
 
     /*!
-     * Sets maximal allowed ratio between the lengths of two adjacent edges
+     *Set maximal allowed ratio between the lengths of two adjacent edges
      */
     void SetUseGradation(in boolean toUse);
     boolean GetUseGradation();
@@ -188,7 +206,7 @@ module BLSURFPlugin
     double GetGradation();
 
     /*!
-     * Sets maximal allowed ratio between the lengths of two adjacent edges in 3D mesh
+     *Set maximal allowed ratio between the lengths of two adjacent edges in 3D mesh
      */
     void SetUseVolumeGradation(in boolean toUse);
     boolean GetUseVolumeGradation();
@@ -196,19 +214,20 @@ module BLSURFPlugin
     double GetVolumeGradation();
 
     /*!
-     * Sets to create quadrilateral elements or not
+     *Set to create quadrilateral elements or not
      */
     void SetQuadAllowed(in boolean allowed);
-    boolean GetQuadAllowed();
+    void SetElementType(in long elementType);
+    long GetElementType();
 
     /*!
-     * Sets angular deflection (in degrees) of a mesh face and edge from CAD surface
+     *Set angular deflection (in degrees) of a mesh face and edge from CAD surface
      */
     void SetAngleMesh(in double angle);
     double GetAngleMesh();
 
     /*!
-     * Sets the maximum desired distance between a triangle and its supporting CAD surface
+     *Set the maximum desired distance between a triangle and its supporting CAD surface
      */
     void SetChordalError(in double distance);
     double GetChordalError();
@@ -273,7 +292,7 @@ module BLSURFPlugin
     double GetCorrectSurfaceIntersectionMaxCost();
 
     /*!
-     * This patch independent correction option can be activated to remove the bad 
+     * This patch independent correction option can be activated to remove the bad
      * elements (often called slivers) from the generated mesh, without taking into account
      * the tags (attributes) specification.
      */
@@ -282,7 +301,7 @@ module BLSURFPlugin
 
     /*!
      * This parameter defines the aspect ratio triggering the "bad element"
-     * classification for the force bad surface element removal option. 
+     * classification for the force bad surface element removal option.
      */
     void SetBadElementAspectRatio(in double ratio);
     double GetBadElementAspectRatio();
@@ -302,7 +321,7 @@ module BLSURFPlugin
     boolean GetQuadraticMesh();
 
     /*!
-     * Sets topology usage way defining how mesh conformity is assured
+     *Set topology usage way defining how mesh conformity is assured
      * value=0 - mesh conformity is assured by conformity of a shape
      * value=1,2 - mesh conformity is assured by pre-processing a CAD model (OBSOLETE)
      * value=3 - mesh conformity is assured by pre-processing a CAD model with Pre-CAD
@@ -310,12 +329,55 @@ module BLSURFPlugin
     void SetTopology(in long way);
     long GetTopology();
 
+    
+    /*!
+     *  Activate/deactivate surface proximity computation
+     */
+    void SetSurfaceProximity( in boolean toUse );
+    boolean GetSurfaceProximity();
+
+    /*!
+     * Set number of surface element layers to be generated due to surface proximity
+     */
+    void SetNbSurfaceProximityLayers( in short nbLayers );
+    short GetNbSurfaceProximityLayers();
+
+    /*!
+     * Set coefficient by which size of element refined due to surface proximity is increased
+     */
+    void SetSurfaceProximityRatio( in double ratio );
+    double GetSurfaceProximityRatio();
+
     /*!
-     * Sets verbosity level in the range 0 to 100.
+     *  Activate/deactivate volume proximity computation
+     */
+    void SetVolumeProximity( in boolean toUse );
+    boolean GetVolumeProximity();
+
+    /*!
+     * Set number of surface element layers to be generated due to volume proximity
+     */
+    void SetNbVolumeProximityLayers( in short nbLayers );
+    short GetNbVolumeProximityLayers();
+
+    /*!
+     * Set coefficient by which size of element refined due to volume proximity is increased
+     */
+    void SetVolumeProximityRatio( in double ratio );
+    double GetVolumeProximityRatio();
+
+    /*!
+     * Set verbosity level in the range 0 to 10.
      */
     void SetVerbosity(in short theVal) raises (SALOME::SALOME_Exception);
     short GetVerbosity();
 
+    /*!
+     * Set/Get enforced 1D meshes
+     */
+    void SetEnforcedMeshes( in EnforcedMeshesList enforcedMeshes );
+    EnforcedMeshesList GetEnforcedMeshes();
+
     /*!
      * Set enforce_cad_edge_sizes parameter
      *
@@ -456,7 +518,10 @@ module BLSURFPlugin
      * Set hyper-patches
      */
     void SetHyperPatches(in THyperPatchList hpl);
-    THyperPatchList GetHyperPatches();
+    THyperPatchList GetHyperPatches( in GEOM::GEOM_Object mainShape );
+    void SetHyperPatchShapes(in THyperPatchShapesList hpsl);
+    THyperPatchEntriesList GetHyperPatchShapes();
+    void SetHyperPatchEntries(in THyperPatchEntriesList hpel);
 
     /*!
      * To merges edges.
@@ -484,7 +549,7 @@ module BLSURFPlugin
     boolean GetPreCADDiscardInput();
 
     /*!
-     * Sets advanced option value
+     *Set advanced option value
      */
     void SetOptionValue(in string optionName,
                         in string optionValue) raises (SALOME::SALOME_Exception);
@@ -671,34 +736,10 @@ module BLSURFPlugin
     ///////////////////////
 
     /*!
-     * Sets the file for export resulting mesh in GMF format
+     *Set the file for export resulting mesh in GMF format
      */
-//     void SetGMFFile(in string theFileName, in boolean isBinary);
     void SetGMFFile(in string theFileName);
     string GetGMFFile();
-//     boolean GetGMFFileMode();
-
-    //
-    // Obsolete methods - To be removed in V7
-    //
-    void SetPhyMin(in double theMinSize);
-    double GetPhyMin();
-    void SetPhyMax(in double theMaxSize);
-    double GetPhyMax();
-    void SetGeoMin(in double theMinSize);
-    double GetGeoMin();
-    void SetGeoMax(in double theMaxSize);
-    double GetGeoMax();
-    void SetAngleMeshS(in double angle);
-    double GetAngleMeshS();
-    void SetAngleMeshC(in double angle);
-    double GetAngleMeshC();
-    void SetDecimesh(in boolean toIgnoreEdges);
-    boolean GetDecimesh();
-    void SetPreCADRemoveNanoEdges(in boolean toRemoveNanoEdges);
-    boolean GetPreCADRemoveNanoEdges();
-    void SetPreCADEpsNano(in double epsNano);
-    double GetPreCADEpsNano();
   };
 };