Salome HOME
2405cd4b2ddd71d14589af920e55c6016f246276
[modules/smesh.git] / idl / SMESH_BasicHypothesis.idl
1 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
3 // 
4 //  This library is free software; you can redistribute it and/or 
5 //  modify it under the terms of the GNU Lesser General Public 
6 //  License as published by the Free Software Foundation; either 
7 //  version 2.1 of the License. 
8 // 
9 //  This library is distributed in the hope that it will be useful, 
10 //  but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 //  Lesser General Public License for more details. 
13 // 
14 //  You should have received a copy of the GNU Lesser General Public 
15 //  License along with this library; if not, write to the Free Software 
16 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
17 // 
18 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
19 //
20 //
21 //
22 //  File   : SMESH_BasicHypothesis.idl
23 //  Author : Paul RASCLE, EDF
24 //  $Header$
25
26 #ifndef _SMESH_BASICHYPOTHESIS_IDL_
27 #define _SMESH_BASICHYPOTHESIS_IDL_
28
29 #include "SALOME_Exception.idl"
30 #include "SMESH_Hypothesis.idl"
31 #include "SMESH_Mesh.idl"
32
33
34 /*!
35  * StdMeshers: interfaces to standard hypotheses and algorithms
36  */
37 module StdMeshers
38 {
39   /*!
40    * StdMeshers_LocalLength: interface of "Average length" hypothesis
41    */
42   interface StdMeshers_LocalLength : SMESH::SMESH_Hypothesis
43   {
44     /*!
45      * Sets <length> parameter value
46      */
47     void SetLength(in double length) 
48       raises (SALOME::SALOME_Exception);
49
50     /*!
51      * Returns <length> parameter value
52      */
53     double GetLength();
54   };
55
56   /*!
57    * StdMeshers_AutomaticLength: interface of "Automatic length" hypothesis
58    */
59   interface StdMeshers_AutomaticLength : SMESH::SMESH_Hypothesis
60   {
61   };
62
63   /*!
64    * StdMeshers_NumberOfSegments: interface of "Nb. Segments" hypothesis
65    */
66   interface StdMeshers_NumberOfSegments : SMESH::SMESH_Hypothesis
67   {
68     /*!
69      * Sets <number of segments> parameter value
70      */
71     void SetNumberOfSegments(in long segmentsNumber) 
72       raises (SALOME::SALOME_Exception);
73
74     /*!
75      * Returns <number of segments> parameter value
76      */
77     long GetNumberOfSegments();
78
79     /*!
80      * Sets <distribution type> parameter value
81      */
82     void SetDistrType(in long typ)
83       raises (SALOME::SALOME_Exception);
84
85     /*!
86      * Returns <distribution type> parameter value
87      */
88     long GetDistrType();
89
90     /*!
91      * Sets <scale factor> parameter value
92      */
93     void SetScaleFactor(in double scaleFactor)
94       raises (SALOME::SALOME_Exception);
95
96     /*!
97      * Returns <scale factor> parameter value
98      */
99     double GetScaleFactor()
100       raises (SALOME::SALOME_Exception);
101
102     /*!
103      * Sets <table function> parameter value for distribution DT_TabFunc
104      */
105     void SetTableFunction(in SMESH::double_array table)
106       raises (SALOME::SALOME_Exception);
107
108     /*!
109      * Returns <table function> parameter value for distribution DT_TabFunc
110      */
111     SMESH::double_array GetTableFunction()
112       raises (SALOME::SALOME_Exception);
113
114     /*!
115      * Sets <expression function> parameter value for distribution DT_ExprFunc
116      */
117     void SetExpressionFunction(in string expr)
118       raises (SALOME::SALOME_Exception);
119
120     /*!
121      * Returns <expression function> parameter value for distribution DT_ExprFunc
122      */
123     string GetExpressionFunction()
124       raises (SALOME::SALOME_Exception);
125
126     /*!
127      * Sets <exponent mode> parameter value for functional distributions
128      */
129     void SetExponentMode(in boolean isExponent)
130       raises (SALOME::SALOME_Exception);
131
132     /*!
133      * Returns <exponent mode> parameter value for functional distributions
134      */
135     boolean IsExponentMode()
136       raises (SALOME::SALOME_Exception);
137   };
138
139   /*!
140    * StdMeshers_Arithmetic1D: interface of "Arithmetic 1D" hypothesis
141    */
142   interface StdMeshers_Arithmetic1D : SMESH::SMESH_Hypothesis
143   {
144     /*!
145      * Sets <start segment length> or <end segment length> parameter value
146      */
147     void SetLength(in double length, in boolean isStartLength) 
148       raises (SALOME::SALOME_Exception);
149
150     /*!
151      * Returns <start segment length> or <end segment length> parameter value
152      */
153     double GetLength(in boolean isStartLength);
154   };
155
156   /*!
157    * StdMeshers_MaxElementArea: interface of "Max. Triangle Area" hypothesis
158    */
159   interface StdMeshers_MaxElementArea : SMESH::SMESH_Hypothesis
160   {
161     /*!
162      * Sets <maximum element area> parameter value
163      */
164     void SetMaxElementArea(in double area) 
165       raises (SALOME::SALOME_Exception);
166
167     /*!
168      * Returns <maximum element area> parameter value
169      */
170     double GetMaxElementArea();
171   };
172
173   /*!
174    * StdMeshers_LengthFromEdges: interface of "Length From Edges (2D Hyp. for Triangulator)" hypothesis
175    */
176   interface StdMeshers_LengthFromEdges : SMESH::SMESH_Hypothesis
177   {
178     /*!
179      * Sets <mode> parameter value
180      */
181     void SetMode(in long mode) 
182       raises (SALOME::SALOME_Exception);
183
184     /*!
185      * Returns <mode> parameter value
186      */
187     long GetMode();
188   };
189
190   /*!
191    * StdMeshers_StartEndLength: interface of "Start and End Length" hypothesis
192    */
193   interface StdMeshers_StartEndLength : SMESH::SMESH_Hypothesis
194   {
195     /*!
196      * Sets <start segment length> or <end segment length> parameter value
197      */
198     void SetLength(in double length, in boolean isStartLength) 
199       raises (SALOME::SALOME_Exception);
200
201     /*!
202      * Returns <start segment length> or <end segment length> parameter value
203      */
204     double GetLength(in boolean isStartLength);
205   };
206
207
208   /*!
209    * StdMeshers_Deflection1D: interface of "Deflection 1D" hypothesis
210    */
211   interface StdMeshers_Deflection1D : SMESH::SMESH_Hypothesis
212   {
213     /*!
214      * Sets <deflection> parameter value
215      */
216     void SetDeflection(in double deflection)
217       raises (SALOME::SALOME_Exception);
218
219     /*!
220      * Returns <deflection> parameter value
221      */
222     double GetDeflection();
223   };
224
225
226   /*!
227    * StdMeshers_MaxElementVolume: interface of "Max. Hexahedron or Tetrahedron Volume" hypothesis
228    */
229   interface StdMeshers_MaxElementVolume : SMESH::SMESH_Hypothesis
230   {
231     /*!
232      * Sets <maximum element volume> parameter value
233      */
234     void SetMaxElementVolume(in double volume) 
235       raises (SALOME::SALOME_Exception);
236
237     /*!
238      * Returns <maximum element volume> parameter value
239      */
240     double GetMaxElementVolume();
241   };
242
243   /*!
244    * StdMeshers_NotConformAllowed: interface of "Not Conform Mesh Allowed" hypothesis.
245    * Presence of this hypothesis permits to algorithm generation of not conform mesh.
246    */
247   interface StdMeshers_NotConformAllowed : SMESH::SMESH_Hypothesis
248   {
249   };
250
251   /*!
252    * StdMeshers_Propagation: interface of "Propagation" hypothesis.
253    * Presence of this hypothesis on any edge propagates any other 1D
254    * hypothesis from this edge on all edges, opposite to it.
255    * It concerns only edges of quadrangle faces.
256    */
257   interface StdMeshers_Propagation : SMESH::SMESH_Hypothesis
258   {
259   };
260
261   /*!
262    * StdMeshers_QuadranglePreference: interface of "QuadranglePreference" hypothesis.
263    * This hypothesis is used by StdMeshers_Quadrangle_2D algorithm.
264    * Presence of this hypothesis forces construction of quadrangles if the number
265    * of nodes on opposite edges is not the same in the case where the global number
266    * of nodes on edges is even
267    */
268   interface StdMeshers_QuadranglePreference : SMESH::SMESH_Hypothesis
269   {
270   };
271
272
273   /*!
274    * StdMeshers_Regular_1D: interface of "Wire discretisation" algorithm
275    */
276   interface StdMeshers_Regular_1D : SMESH::SMESH_1D_Algo
277   {
278   };
279
280   /*!
281    * StdMeshers_MEFISTO_2D: interface of "Triangle (Mefisto)" algorithm
282    */
283   interface StdMeshers_MEFISTO_2D : SMESH::SMESH_2D_Algo
284   {
285   };
286
287   /*!
288    * StdMeshers_Quadrangle_2D: interface of "Quadrangle (Mapping)" algorithm
289    */
290   interface StdMeshers_Quadrangle_2D : SMESH::SMESH_2D_Algo
291   {
292   };
293
294   /*!
295    * StdMeshers_Hexa_3D: interface of "Hexahedron (i,j,k)" algorithm
296    */
297   interface StdMeshers_Hexa_3D : SMESH::SMESH_3D_Algo
298   {
299   };
300
301 };
302
303 #endif