1 // Copyright (C) 2004-2012 CEA/DEN, EDF R&D
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.
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.
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
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 // File : GHS3D_Algorithm.idl
21 // Author : Julia DOROVSKIKH
24 #ifndef _GHS3D_Algorithm_IDL_
25 #define _GHS3D_Algorithm_IDL_
27 #include "SALOME_Exception.idl"
28 #include "SMESH_Hypothesis.idl"
29 #include "SMESH_Mesh.idl"
32 * GHS3DPlugin: interfaces to GHS3D related hypotheses and algorithms
36 typedef sequence<double,3> TCoords;
37 struct GHS3DEnforcedVertex {
46 typedef sequence<GHS3DEnforcedVertex> GHS3DEnforcedVertexList;
48 struct GHS3DEnforcedMesh {
51 SMESH::ElementType elementType;
56 typedef sequence<GHS3DEnforcedMesh> GHS3DEnforcedMeshList;
59 * GHS3DPlugin_GHS3D: interface of "Tetrahedron (GHS3D)" algorithm
61 interface GHS3DPlugin_GHS3D : SMESH::SMESH_3D_Algo
63 SMESH::SMESH_Mesh importGMFMesh(in string aGMFFileName);
67 * Parameters of "Tetrahedron (GHS3D)" algorithm
69 interface GHS3DPlugin_Hypothesis : SMESH::SMESH_Hypothesis
72 * To mesh "holes" in a solid or not. Default is to mesh.
74 void SetToMeshHoles(in boolean toMesh);
75 boolean GetToMeshHoles();
77 * Maximal size of memory to be used by the algorithm (in Megabytes).
78 * Negative value means not to use this option
80 void SetMaximumMemory(in short MB) raises (SALOME::SALOME_Exception);
81 short GetMaximumMemory();
83 * Initial size of memory to be used by the algorithm (in Megabytes) in
84 * automatic memory adjustment mode. Default is zero.
85 * Negative value means not to use this option
87 void SetInitialMemory(in short MB) raises (SALOME::SALOME_Exception);
88 short GetInitialMemory();
90 * Optimization level: 0-none, 1-light, 2-medium, 3-strong. Default is medium
92 void SetOptimizationLevel(in short level) raises (SALOME::SALOME_Exception);
93 short GetOptimizationLevel();
95 * Path to working directory
97 void SetWorkingDirectory(in string path) raises (SALOME::SALOME_Exception);
98 string GetWorkingDirectory();
100 * To keep working files or remove them. Log file remains in case of errors anyway.
102 void SetKeepFiles(in boolean toKeep);
103 boolean GetKeepFiles();
105 * Verbose level [0-10]
106 * 0 - no standard output,
107 * 2 - prints the data, quality statistics of the skin and final meshes and
108 * indicates when the final mesh is being saved. In addition the software
109 * gives indication regarding the CPU time.
110 * 10 - same as 2 plus the main steps in the computation, quality statistics
111 * histogram of the skin mesh, quality statistics histogram together with
112 * the characteristics of the final mesh.
114 void SetVerboseLevel(in short level);
115 short GetVerboseLevel();
117 * To create new nodes
119 void SetToCreateNewNodes(in boolean toCreate);
120 boolean GetToCreateNewNodes();
122 * To use boundary recovery version which tries to create mesh on a very poor
123 * quality surface mesh
125 void SetToUseBoundaryRecoveryVersion(in boolean toUse);
126 boolean GetToUseBoundaryRecoveryVersion();
128 * Applies finite-element correction by replacing overconstrained elements where
129 * it is possible. The process is cutting first the overconstrained edges and
130 * second the overconstrained facets. This insure that no edges have two boundary
131 * vertices and that no facets have three boundary vertices.
133 void SetFEMCorrection(in boolean toUseFem);
134 boolean GetFEMCorrection();
136 * To removes initial central point.
138 void SetToRemoveCentralPoint(in boolean toRemove);
139 boolean GetToRemoveCentralPoint();
141 * To set hiden/undocumented/advanced options
143 void SetTextOption(in string option);
144 string GetTextOption();
146 * To set an enforced vertex
148 boolean SetEnforcedVertex(in double x, in double y, in double z, in double size) raises (SALOME::SALOME_Exception);
149 boolean SetEnforcedVertexNamed(in double x, in double y, in double z, in double size, in string vertexName) raises (SALOME::SALOME_Exception);
150 boolean SetEnforcedVertexWithGroup(in double x, in double y, in double z, in double size, in string groupName) raises (SALOME::SALOME_Exception);
151 boolean SetEnforcedVertexNamedWithGroup(in double x, in double y, in double z, in double size, in string vertexName, in string groupName) raises (SALOME::SALOME_Exception);
152 boolean SetEnforcedVertexGeom(in GEOM::GEOM_Object theVertex, in double size) raises (SALOME::SALOME_Exception);
153 boolean SetEnforcedVertexGeomWithGroup(in GEOM::GEOM_Object theVertex, in double size, in string groupName) raises (SALOME::SALOME_Exception);
154 double GetEnforcedVertex(in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
155 double GetEnforcedVertexGeom(in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
156 boolean RemoveEnforcedVertex(in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
157 boolean RemoveEnforcedVertexGeom(in GEOM::GEOM_Object theVertex) raises (SALOME::SALOME_Exception);
158 GHS3DEnforcedVertexList GetEnforcedVertices();
159 void ClearEnforcedVertices();
161 * Set/get/unset an enforced vertex (private method for GUI)
163 boolean p_SetEnforcedVertex(in double size, in double x, in double y, in double z,
164 in string theVertexName, in string theVertexEntry, in string groupName,
165 in boolean isCompound) raises (SALOME::SALOME_Exception);
167 boolean SetEnforcedMesh(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType) raises (SALOME::SALOME_Exception);
168 boolean SetEnforcedMeshWithGroup(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType, in string groupName) raises (SALOME::SALOME_Exception);
169 boolean SetEnforcedMeshSize(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType, in double size) raises (SALOME::SALOME_Exception);
170 boolean SetEnforcedMeshSizeWithGroup(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType, in double size, in string groupName) raises (SALOME::SALOME_Exception);
171 GHS3DEnforcedMeshList GetEnforcedMeshes();
172 void ClearEnforcedMeshes();
174 * Set/get/unset an enforced vertex (private method for GUI)
176 boolean p_SetEnforcedMesh(in SMESH::SMESH_IDSource theSource, in SMESH::ElementType elementType,
177 in double size, in string groupName) raises (SALOME::SALOME_Exception);