Salome HOME
Merge from V6_main 13/12/2012
[plugins/blsurfplugin.git] / idl / BLSURFPlugin_Algorithm.idl
index d26ce5606cc4a856f5361dba9fc7e1f3d10de719..1cd1cd9ed42b8e272e2e5b6b54ee399a034bf219 100644 (file)
@@ -122,14 +122,6 @@ module BLSURFPlugin
    */
   interface BLSURFPlugin_Hypothesis : SMESH::SMESH_Hypothesis
   {
-    /*!
-     * Sets 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
-     * value=3 - mesh conformity is assured by pre-processing a CAD model with Pre-CAD
-     */
-    void SetTopology(in long way);
-    long GetTopology();
 
     /*!
      * Sets a way to define size of mesh elements to generate
@@ -140,73 +132,128 @@ module BLSURFPlugin
     void SetPhysicalMesh(in long isCustom);
     long GetPhysicalMesh();
 
+    /*!
+     * Sets 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).
+     */
+    void SetGeometricMesh(in long isCustom);
+    long GetGeometricMesh();
+
     /*!
      * Sets size of mesh elements to generate
      */
     void SetPhySize(in double size);
+    void SetPhySizeRel(in double size);
     double GetPhySize();
+    boolean IsPhySizeRel();
 
     /*!
-     * Sets lower boundary of mesh element size (PhySize)
+     * Sets lower boundary of mesh element size
      */
-    void SetPhyMin(in double theMinSize);
-    double GetPhyMin();
+    void SetMinSize(in double theMinSize);
+    void SetMinSizeRel(in double theMinSize);
+    double GetMinSize();
+    boolean IsMinSizeRel();
 
     /*!
-     * Sets upper boundary of mesh element size (PhySize)
+     * Sets upper boundary of mesh element size
      */
-    void SetPhyMax(in double theMaxSize);
-    double GetPhyMax();
+    void SetMaxSize(in double theMaxSize);
+    void SetMaxSizeRel(in double theMaxSize);
+    double GetMaxSize();
+    boolean IsMaxSizeRel();
 
     /*!
-     * Sets a way to define maximum angular deflection of mesh from CAD model
-     * 0 - deflection is defined automatically
-     * 1 - deflection is set by SetAngleMeshS() and SetAngleMeshC() methods
+     * Sets maximal allowed ratio between the lengths of two adjacent edges
      */
-    void SetGeometricMesh(in long isCustom);
-    long GetGeometricMesh();
+    void SetGradation(in double ratio);
+    double GetGradation();
 
     /*!
-     * Sets angular deflection (in degrees) of a mesh face from CAD surface
+     * Sets to create quadrilateral elements or not
      */
-    void SetAngleMeshS(in double angle);
-    double GetAngleMeshS();
+    void SetQuadAllowed(in boolean allowed);
+    boolean GetQuadAllowed();
 
     /*!
-     * Sets angular deflection (in degrees) of a mesh edge from CAD curve
+     * Sets angular deflection (in degrees) of a mesh face and edge from CAD surface
      */
-    void SetAngleMeshC(in double angle);
-    double GetAngleMeshC();
+    void SetAngleMesh(in double angle);
+    double GetAngleMesh();
 
     /*!
-     * Sets lower boundary of mesh element size computed to respect angular deflection
+     * Sets the maximum desired distance between a triangle and its supporting CAD surface
      */
-    void SetGeoMin(in double theMinSize);
-    double GetGeoMin();
+    void SetChordalError(in double distance);
+    double GetChordalError();
 
     /*!
-     * Sets upper boundary of mesh element size computed to respect angular deflection
+     * Determines whether the generated mesh will be isotropic or anisotropic
      */
-    void SetGeoMax(in double theMaxSize);
-    double GetGeoMax();
+    void SetAnisotropic(in boolean anisotropic);
+    boolean GetAnisotropic();
 
     /*!
-     * Sets maximal allowed ratio between the lengths of two adjacent edges
+     * Defines the maximum anisotropic ratio of the metric governing the anisotropic process.
+     * The default value of 0 means that the metric (and thus the generated elements) 
+     * can be arbitrarily stretched.
      */
-    void SetGradation(in double ratio);
-    double GetGradation();
+    void SetAnisotropicRatio(in double ratio);
+    double GetAnisotropicRatio();
 
     /*!
-     * Sets to create quadrilateral elements or not
+     * This patch-independent correction option can be activated to remove the tiny
+     * (nano) edges from the generated mesh, without taking into account the tags 
+     * (attributes) specifications.
      */
-    void SetQuadAllowed(in boolean allowed);
-    boolean GetQuadAllowed();
+    void SetRemoveTinyEdges(in boolean remove);
+    boolean GetRemoveTinyEdges();
 
     /*!
-     * To respect geometrical edges or not
+     * Defines the minimal length under which an edge is considered to be a tiny one
      */
-    void SetDecimesh(in boolean toIgnoreEdges);
-    boolean GetDecimesh();
+    void SetTinyEdgeLength(in double length);
+    double GetTinyEdgeLength();
+
+    /*!
+     * 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.
+     */
+    void SetBadElementRemoval(in boolean remove);
+    boolean GetBadElementRemoval();
+
+    /*!
+     * This parameter defines the aspect ratio triggering the "bad element"
+     * classification for the force bad surface element removal option. 
+     */
+    void SetBadElementAspectRatio(in double ratio);
+    double GetBadElementAspectRatio();
+
+    /*!
+     * If this option is activated, MeshGems-CADSurf will optimize the mesh in order to
+     * get better shaped elements, during a process which respects the patch independent options.
+     * This optimisation cannot be fully performed when correct_surface_intersections = 1.
+     */
+    void SetOptimizeMesh(in boolean optimize);
+    boolean GetOptimizeMesh();
+
+    /*!
+     * Determines the order of mesh elements to be generated (linear or quadratic)
+     */
+    void SetQuadraticMesh(in boolean quadratic);
+    boolean GetQuadraticMesh();
+
+    /*!
+     * Sets 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
+     */
+    void SetTopology(in long way);
+    long GetTopology();
 
     /*!
      * Sets verbosity level in the range 0 to 100.
@@ -221,10 +268,11 @@ module BLSURFPlugin
     boolean GetPreCADMergeEdges();
 
     /*!
-     * To remove nano edges.
+     * To process 3D topology.
      */
-    void SetPreCADRemoveNanoEdges(in boolean toRemoveNanoEdges);
-    boolean GetPreCADRemoveNanoEdges();
+    void SetPreCADProcess3DTopology(in boolean toProcess);
+    boolean GetPreCADProcess3DTopology();
+
 
     /*!
      * To compute topology from scratch
@@ -232,13 +280,6 @@ module BLSURFPlugin
     void SetPreCADDiscardInput(in boolean toDiscardInput);
     boolean GetPreCADDiscardInput();
 
-    /*!
-     * Sets the length below which an edge is considered as nano 
-     * for the topology processing.
-     */
-    void SetPreCADEpsNano(in double epsNano);
-    double GetPreCADEpsNano();
-
     /*!
      * Sets advanced option value
      */
@@ -282,12 +323,14 @@ module BLSURFPlugin
      * Set/unset a SizeMap on geom object
      */
     void         SetSizeMap(in GEOM::GEOM_Object GeomObj, in string sizeMap);
+    void         SetConstantSizeMap(in GEOM::GEOM_Object GeomObj, in double sizeMap);
     void         UnsetSizeMap(in GEOM::GEOM_Object GeomObj);
     
     /*!
      * Set a SizeMap on geom object given by entry
      */
     void         SetSizeMapEntry(in string entry, in string sizeMap);
+    void         SetConstantSizeMapEntry(in string entry, in GEOM::shape_type shapeType, in double sizeMap);
     string       GetSizeMapEntry(in string entry);
     string_array GetSizeMapEntries();
 
@@ -390,6 +433,28 @@ module BLSURFPlugin
     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();
   };
 };