]> SALOME platform Git repositories - plugins/ghs3dplugin.git/blob - idl/GHS3DPlugin_Algorithm.idl
Salome HOME
20bcf334a3178069fd17f53f308a8bdd2173019d
[plugins/ghs3dplugin.git] / idl / GHS3DPlugin_Algorithm.idl
1 //  Copyright (C) 2004-2010  CEA/DEN, EDF R&D
2 //
3 //  This library is free software; you can redistribute it and/or
4 //  modify it under the terms of the GNU Lesser General Public
5 //  License as published by the Free Software Foundation; either
6 //  version 2.1 of the License.
7 //
8 //  This library is distributed in the hope that it will be useful,
9 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 //  Lesser General Public License for more details.
12 //
13 //  You should have received a copy of the GNU Lesser General Public
14 //  License along with this library; if not, write to the Free Software
15 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19
20 //  File   : GHS3D_Algorithm.idl
21 //  Author : Julia DOROVSKIKH
22 //  $Header$
23 //
24 #ifndef _GHS3D_Algorithm_IDL_
25 #define _GHS3D_Algorithm_IDL_
26
27 #include "SALOME_Exception.idl"
28 #include "SMESH_Hypothesis.idl"
29
30 /*!
31  * GHS3DPlugin: interfaces to GHS3D related hypotheses and algorithms
32  */
33 module GHS3DPlugin
34 {
35   struct GHS3DEnforcedVertex {
36     double x;
37     double y;
38     double z;
39     double size;
40   };
41   
42   typedef sequence<GHS3DEnforcedVertex> GHS3DEnforcedVertexList;
43   /*!
44    * GHS3DPlugin_GHS3D: interface of "Tetrahedron (GHS3D)" algorithm
45    */
46   interface GHS3DPlugin_GHS3D : SMESH::SMESH_3D_Algo
47   {
48   };
49
50   /*!
51    * Parameters of "Tetrahedron (GHS3D)" algorithm
52    */
53   interface GHS3DPlugin_Hypothesis : SMESH::SMESH_Hypothesis
54   {
55     /*!
56      * To mesh "holes" in a solid or not. Default is to mesh.
57      */
58     void SetToMeshHoles(in boolean toMesh);
59     boolean GetToMeshHoles();
60     /*!
61      * Maximal size of memory to be used by the algorithm (in Megabytes).
62      * Negative value means not to use this option
63      */
64     void SetMaximumMemory(in short MB) raises (SALOME::SALOME_Exception);
65     short GetMaximumMemory();
66     /*!
67      * Initial size of memory to be used by the algorithm (in Megabytes) in
68      * automatic memory adjustment mode. Default is zero.
69      * Negative value means not to use this option
70      */
71     void SetInitialMemory(in short MB) raises (SALOME::SALOME_Exception);
72     short GetInitialMemory();
73     /*!
74      * Optimization level: 0-none, 1-light, 2-medium, 3-strong. Default is medium
75      */
76     void SetOptimizationLevel(in short level) raises (SALOME::SALOME_Exception);
77     short GetOptimizationLevel();
78     /*!
79      * Path to working directory
80      */
81     void SetWorkingDirectory(in string path) raises (SALOME::SALOME_Exception);
82     string GetWorkingDirectory();
83     /*!
84      * To keep working files or remove them. Log file remains in case of errors anyway.
85      */
86     void SetKeepFiles(in boolean toKeep);
87     boolean GetKeepFiles();
88     /*!
89      * Verbose level [0-10]
90      *  0 - no standard output,
91      *  2 - prints the data, quality statistics of the skin and final meshes and
92      *     indicates when the final mesh is being saved. In addition the software
93      *     gives indication regarding the CPU time.
94      * 10 - same as 2 plus the main steps in the computation, quality statistics
95      *     histogram of the skin mesh, quality statistics histogram together with
96      *     the characteristics of the final mesh.
97      */
98     void SetVerboseLevel(in short level);
99     short GetVerboseLevel();
100     /*!
101      * To create new nodes
102      */
103     void SetToCreateNewNodes(in boolean toCreate);
104     boolean GetToCreateNewNodes();
105     /*!
106      * To use boundary recovery version which tries to create mesh on a very poor
107      * quality surface mesh
108      */
109     void SetToUseBoundaryRecoveryVersion(in boolean toUse);
110     boolean GetToUseBoundaryRecoveryVersion();
111     /*!
112      * Applies finite-element correction by replacing overconstrained elements where
113      * it is possible. The process is cutting first the overconstrained edges and
114      * second the overconstrained facets. This insure that no edges have two boundary
115      * vertices and that no facets have three boundary vertices.
116      */
117     void SetFEMCorrection(in boolean toUseFem);
118     boolean GetFEMCorrection();
119     /*!
120      * To removes initial central point.
121      */
122     void SetToRemoveCentralPoint(in boolean toRemove);
123     boolean GetToRemoveCentralPoint();
124     /*!
125      * To set hiden/undocumented/advanced options
126      */
127     void SetTextOption(in string option);
128     string GetTextOption();
129     /*!
130      * To set an enforced vertex
131      */
132     void SetEnforcedVertex(in double x, in double y, in double z, in double size);
133     double GetEnforcedVertex(in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
134     void RemoveEnforcedVertex(in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
135     GHS3DEnforcedVertexList GetEnforcedVertices();
136     void ClearEnforcedVertices();
137   };
138 };
139
140 #endif