Salome HOME
20140612_1537 clone to HYBRIDPLUGIN Rename dirs and files
[plugins/hybridplugin.git] / idl / HYBRIDPlugin_Algorithm.idl
diff --git a/idl/HYBRIDPlugin_Algorithm.idl b/idl/HYBRIDPlugin_Algorithm.idl
new file mode 100644 (file)
index 0000000..e369a41
--- /dev/null
@@ -0,0 +1,205 @@
+// Copyright (C) 2004-2013  CEA/DEN, EDF R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+//  File   : GHS3D_Algorithm.idl
+//  Author : Julia DOROVSKIKH
+//
+#ifndef _GHS3D_Algorithm_IDL_
+#define _GHS3D_Algorithm_IDL_
+
+#include "SALOME_Exception.idl"
+#include "SMESH_Hypothesis.idl"
+#include "SMESH_Mesh.idl"
+
+/*!
+ * GHS3DPlugin: interfaces to GHS3D related hypotheses and algorithms
+ */
+module GHS3DPlugin
+{
+  typedef sequence<double,3> TCoords;
+  struct GHS3DEnforcedVertex {
+    string name;
+    string geomEntry;
+    boolean isCompound;
+    TCoords coords;
+    string groupName;
+    double size;
+  };
+  
+  typedef sequence<GHS3DEnforcedVertex> GHS3DEnforcedVertexList;
+
+  struct GHS3DEnforcedMesh {
+    string name;
+    string entry;
+    SMESH::ElementType elementType;
+    string groupName;
+  };
+  
+  typedef sequence<GHS3DEnforcedMesh> GHS3DEnforcedMeshList;
+
+  /*!
+   * GHS3DPlugin_GHS3D: interface of "Tetrahedron (GHS3D)" algorithm
+   */
+  interface GHS3DPlugin_GHS3D : SMESH::SMESH_3D_Algo
+  {
+    SMESH::SMESH_Mesh importGMFMesh(in string aGMFFileName);
+  };
+
+  /*!
+   * Parameters of "Tetrahedron (GHS3D)" algorithm
+   */
+  interface GHS3DPlugin_Hypothesis : SMESH::SMESH_Hypothesis
+  {
+    /*!
+     * To mesh "holes" in a solid or not. Default is to mesh.
+     */
+    void SetToMeshHoles(in boolean toMesh);
+    boolean GetToMeshHoles();
+    /*!
+     * To make groups of volumes of different domains when mesh is generated from skin.
+     * Default is to make groups.
+     * This option works only (1) for the mesh w/o shape and (2) if GetToMeshHoles() == true
+     */
+    void SetToMakeGroupsOfDomains(in boolean toMakeGroups);
+    boolean GetToMakeGroupsOfDomains();
+    /*!
+     * Maximal size of memory to be used by the algorithm (in Megabytes).
+     * Negative value means not to use this option
+     */
+    void SetMaximumMemory(in double MB) raises (SALOME::SALOME_Exception);
+    double GetMaximumMemory();
+    /*!
+     * Initial size of memory to be used by the algorithm (in Megabytes) in
+     * automatic memory adjustment mode. Default is zero.
+     * Negative value means not to use this option
+     */
+    void SetInitialMemory(in double MB) raises (SALOME::SALOME_Exception);
+    double GetInitialMemory();
+    /*!
+     * Optimization level: 0-none, 1-light, 2-medium, 3-strong. Default is medium
+     */
+    void SetOptimizationLevel(in short level) raises (SALOME::SALOME_Exception);
+    short GetOptimizationLevel();
+    /*!
+     * Path to working directory
+     */
+    void SetWorkingDirectory(in string path) raises (SALOME::SALOME_Exception);
+    string GetWorkingDirectory();
+    /*!
+     * To keep working files or remove them. Log file remains in case of errors anyway.
+     */
+    void SetKeepFiles(in boolean toKeep);
+    boolean GetKeepFiles();
+    /*!
+     * Verbose level [0-10]
+     *  0 - no standard output,
+     *  2 - prints the data, quality statistics of the skin and final meshes and
+     *     indicates when the final mesh is being saved. In addition the software
+     *     gives indication regarding the CPU time.
+     * 10 - same as 2 plus the main steps in the computation, quality statistics
+     *     histogram of the skin mesh, quality statistics histogram together with
+     *     the characteristics of the final mesh.
+     */
+    void SetVerboseLevel(in short level);
+    short GetVerboseLevel();
+    /*!
+     * To create new nodes
+     */
+    void SetToCreateNewNodes(in boolean toCreate);
+    boolean GetToCreateNewNodes();
+    /*!
+     * To use boundary recovery version which tries to create mesh on a very poor
+     * quality surface mesh
+     */
+    void SetToUseBoundaryRecoveryVersion(in boolean toUse);
+    boolean GetToUseBoundaryRecoveryVersion();
+    /*!
+     * Applies finite-element correction by replacing overconstrained elements where
+     * it is possible. The process is cutting first the overconstrained edges and
+     * second the overconstrained facets. This insure that no edges have two boundary
+     * vertices and that no facets have three boundary vertices.
+     */
+    void SetFEMCorrection(in boolean toUseFem);
+    boolean GetFEMCorrection();
+    /*!
+     * To removes initial central point.
+     */
+    void SetToRemoveCentralPoint(in boolean toRemove);
+    boolean GetToRemoveCentralPoint();
+    /*!
+     * To set hiden/undocumented/advanced options
+     */
+    void SetTextOption(in string option);
+    string GetTextOption();
+    /*!
+     * To define the volumic gradation
+     */
+    void SetGradation(in double gradation);
+    double GetGradation();
+    /*!
+     * Print log in standard output
+     */
+    void SetStandardOutputLog(in boolean logInStandardOutput);
+    boolean GetStandardOutputLog();
+    /*!
+    * Remove log file on success
+    */
+    void SetRemoveLogOnSuccess(in boolean removeLogOnSuccess);
+    boolean GetRemoveLogOnSuccess();
+    /*!
+     * To set an enforced vertex
+     */
+    boolean SetEnforcedVertex(in double x, in double y, in double z, in double size) raises (SALOME::SALOME_Exception);
+    boolean SetEnforcedVertexNamed(in double x, in double y, in double z, in double size, in string vertexName) raises (SALOME::SALOME_Exception);
+    boolean SetEnforcedVertexWithGroup(in double x, in double y, in double z, in double size, in string groupName) raises (SALOME::SALOME_Exception);
+    boolean SetEnforcedVertexNamedWithGroup(in double x, in double y, in double z, in double size, in string vertexName, in string groupName) raises (SALOME::SALOME_Exception);
+    boolean SetEnforcedVertexGeom(in GEOM::GEOM_Object theVertex, in double size) raises (SALOME::SALOME_Exception);
+    boolean SetEnforcedVertexGeomWithGroup(in GEOM::GEOM_Object theVertex, in double size, in string groupName) raises (SALOME::SALOME_Exception);
+    double GetEnforcedVertex(in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
+    double GetEnforcedVertexGeom(in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
+    boolean RemoveEnforcedVertex(in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
+    boolean RemoveEnforcedVertexGeom(in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
+    GHS3DEnforcedVertexList GetEnforcedVertices();
+    void ClearEnforcedVertices();
+   /*!
+    * Set/get/unset an enforced vertex (private method for GUI)
+    */
+    boolean p_SetEnforcedVertex(in double size, in double x, in double y, in double z,
+                             in string theVertexName, in string theVertexEntry, in string groupName,
+                             in boolean isCompound) raises (SALOME::SALOME_Exception);
+    
+    boolean SetEnforcedMesh(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType) raises (SALOME::SALOME_Exception);
+    boolean SetEnforcedMeshWithGroup(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType, in string groupName) raises (SALOME::SALOME_Exception);
+    
+    /* OBSOLETE FUNCTIONS */
+    boolean SetEnforcedMeshSize(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType, in double size) raises (SALOME::SALOME_Exception);
+    boolean SetEnforcedMeshSizeWithGroup(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType, in double size, in string groupName) raises (SALOME::SALOME_Exception);
+    /* OBSOLETE FUNCTIONS */
+    
+    GHS3DEnforcedMeshList GetEnforcedMeshes();
+    void ClearEnforcedMeshes();
+
+   /*!
+    * Set/get/unset an enforced vertex (private method for GUI)
+    */
+    boolean p_SetEnforcedMesh(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType, in string name, in string groupName) raises (SALOME::SALOME_Exception);
+  };
+};
+
+#endif