]> SALOME platform Git repositories - plugins/blsurfplugin.git/blob - idl/BLSURFPlugin_Algorithm.idl
Salome HOME
64b34bc408512e9fc3cbfeb951b908208d06549b
[plugins/blsurfplugin.git] / idl / BLSURFPlugin_Algorithm.idl
1 //  Copyright (C) 2007-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 // ---
21 // File    : BLSURFPlugin_Algorithm.idl
22 // Authors : Francis KLOSS (OCC) & Patrick LAUG (INRIA) & Lioka RAZAFINDRAZAKA (CEA)
23 //           Size maps developement: Nicolas GEIMER (OCC) & Gilles DAVID (EURIWARE)
24 // ---
25 //
26 #ifndef _SMESH_BLSURFALGORITHM_IDL_
27 #define _SMESH_BLSURFALGORITHM_IDL_
28
29 #include "SMESH_Hypothesis.idl"
30 #include "GEOM_Gen.idl"
31 #include "SALOME_Exception.idl"
32
33 /*!
34  * BLSURFPlugin: interfaces to BLSURF related hypotheses and algorithms
35  */
36 module BLSURFPlugin
37 {
38   typedef sequence<string> string_array;
39
40   // Entry
41   typedef string TEnfEntry;
42   // Enforced vertex = 3 coordinates
43   typedef sequence<double,3> TEnfVertex;
44   // List of enforced vertices
45   typedef sequence<TEnfVertex> TEnfVertexList;
46   // Map Entry / List of enforced vertices
47   struct TEntryEnfVertexListMapElement {
48     TEnfEntry entry;
49     TEnfVertexList vertexList;
50   };
51   typedef sequence<TEntryEnfVertexListMapElement> TEntryEnfVertexListMap;
52   /* TODO GROUPS
53   // Group name
54   typedef string TEnfGroupName;
55   // Map Group Name / List of enforced vertices
56   struct TGroupNameEnfVertexListMapElement {
57     TEnfGroupName groupName;
58     TEnfVertexList vertexList;
59   };
60   typedef sequence<TGroupNameEnfVertexListMapElement> TGroupNameEnfVertexListMap;
61   // Map Enforced vertex / Group Name
62   struct TEnfVertexGroupNameMapElement {
63     TEnfVertex vertex;
64     TEnfGroupName groupName;
65   };
66   typedef sequence<TEnfVertexGroupNameMapElement> TEnfVertexGroupNameMap;
67   */
68
69   
70   /*!
71    * BLSURFPlugin_BLSURF: interface of BLSURF algorithm
72    */
73   interface BLSURFPlugin_BLSURF : SMESH::SMESH_2D_Algo
74   {
75   };
76
77   /*!
78    * BLSURFPlugin_Hypothesis: interface of "BLSURF parameters" hypothesis
79    */
80   interface BLSURFPlugin_Hypothesis : SMESH::SMESH_Hypothesis
81   {
82     /*!
83      * Sets topology usage way defining how mesh conformity is assured
84      * value=0 - mesh conformity is assured by conformity of a shape
85      * value=1,2 - mesh conformity is assured by pre-processing a CAD model
86      */
87     void SetTopology(in long way);
88     long GetTopology();
89
90     /*!
91      * Sets a way to define size of mesh elements to generate
92      * 0 - size is defined automatically
93      * 1 - size is set by SetPhySize() method
94      */
95     void SetPhysicalMesh(in long isCustom);
96     long GetPhysicalMesh();
97
98     /*!
99      * Sets size of mesh elements to generate
100      */
101     void SetPhySize(in double size);
102     double GetPhySize();
103
104     /*!
105      * Sets lower boundary of mesh element size (PhySize)
106      */
107     void SetPhyMin(in double theMinSize);
108     double GetPhyMin();
109
110     /*!
111      * Sets upper boundary of mesh element size (PhySize)
112      */
113     void SetPhyMax(in double theMaxSize);
114     double GetPhyMax();
115
116     /*!
117      * Sets a way to define maximum angular deflection of mesh from CAD model
118      * 0 - deflection is defined automatically
119      * 1 - deflection is set by SetAngleMeshS() and SetAngleMeshC() methods
120      */
121     void SetGeometricMesh(in long isCustom);
122     long GetGeometricMesh();
123
124     /*!
125      * Sets angular deflection (in degrees) of a mesh face from CAD surface
126      */
127     void SetAngleMeshS(in double angle);
128     double GetAngleMeshS();
129
130     /*!
131      * Sets angular deflection (in degrees) of a mesh edge from CAD curve
132      */
133     void SetAngleMeshC(in double angle);
134     double GetAngleMeshC();
135
136     /*!
137      * Sets lower boundary of mesh element size computed to respect angular deflection
138      */
139     void SetGeoMin(in double theMinSize);
140     double GetGeoMin();
141
142     /*!
143      * Sets upper boundary of mesh element size computed to respect angular deflection
144      */
145     void SetGeoMax(in double theMaxSize);
146     double GetGeoMax();
147
148     /*!
149      * Sets maximal allowed ratio between the lengths of two adjacent edges
150      */
151     void SetGradation(in double ratio);
152     double GetGradation();
153
154     /*!
155      * Sets to create quadrilateral elements or not
156      */
157     void SetQuadAllowed(in boolean allowed);
158     boolean GetQuadAllowed();
159
160     /*!
161      * To respect geometrical edges or not
162      */
163     void SetDecimesh(in boolean toIgnoreEdges);
164     boolean GetDecimesh();
165
166     /*!
167      * Sets verbosity level in the range 0 to 100.
168      */
169     void SetVerbosity(in short theVal) raises (SALOME::SALOME_Exception);
170     short GetVerbosity();
171
172     /*!
173      * Sets advanced option value
174      */
175     void SetOptionValue(in string optionName,
176                         in string optionValue) raises (SALOME::SALOME_Exception);
177     string GetOptionValue(in string optionName) raises (SALOME::SALOME_Exception);
178     /*!
179      * Unsets advanced option
180      */
181     void UnsetOption(in string optionName);
182
183     /*!
184      * Return array of strings each of which is option name concatenated
185      * with option value devided by semicolon - "option_name:option_value".
186      * Option value is empty if an option is not set.
187      * Note: the method is mostly for interaction with GUI.
188      */
189     string_array GetOptionValues();
190
191     /*!
192      * Set option values each in the form "option_name[:option_value]".
193      * Note: the method is mostly for interaction with GUI.
194      */
195     void SetOptionValues(in string_array options);
196
197     /*!
198      * SizeMap
199      */
200     void SetSizeMapEntries(in string_array sizeMaps);
201     void ClearSizeMaps();
202
203     void UnsetEntry(in string entry);
204
205     /*!
206      * Set/unset a SizeMap on geom object
207      */
208     void         SetSizeMap(in GEOM::GEOM_Object GeomObj, in string sizeMap);
209     void         UnsetSizeMap(in GEOM::GEOM_Object GeomObj);
210     
211     /*!
212      * Set a SizeMap on geom object given by entry
213      */
214     void         SetSizeMapEntry(in string entry, in string sizeMap);
215     string       GetSizeMapEntry(in string entry);
216     string_array GetSizeMapEntries();
217
218     /*!
219      * Set/unset an attractor on geom object
220      */
221     void         SetAttractor(in GEOM::GEOM_Object GeomObj, in string attractor);
222     void         UnsetAttractor(in GEOM::GEOM_Object GeomObj);
223     
224     /*!
225      * Set an attractor on geom object given by entry
226      */
227     void         SetAttractorEntry(in string entry, in string attractor);
228     string       GetAttractorEntry(in string entry);
229     string_array GetAttractorEntries();
230
231 /*
232     void         SetCustomSizeMapEntry(in string entry, in string sizeMap);
233     string       GetCustomSizeMapEntry(in string entry);
234     void         SetCustomSizeMap(in GEOM::GEOM_Object GeomObj, in string sizeMap);
235     void         UnsetCustomSizeMap(in GEOM::GEOM_Object GeomObj);
236     string_array GetCustomSizeMapEntries();
237 */
238     ///////////////////////
239     // ENFORCED VERTEXES //
240     ///////////////////////
241     
242     TEntryEnfVertexListMap GetAllEnforcedVertices();
243     void                   ClearAllEnforcedVertices();
244     
245    /*!
246     * Set/get/unset an enforced vertex on geom object
247     */
248     void SetEnforcedVertex(in GEOM::GEOM_Object GeomObj, in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
249     /* TODO GROUPS
250     void SetEnforcedVertexWithGroup(in GEOM::GEOM_Object GeomObj, in double x, in double y, in double z, in TEnfGroupName groupName) raises (SALOME::SALOME_Exception);
251     */
252 //     void SetEnforcedVertexList(in GEOM::GEOM_Object GeomObj, in TEnfVertexList vertexList) raises (SALOME::SALOME_Exception);
253     
254     TEnfVertexList GetEnforcedVertices(in GEOM::GEOM_Object GeomObj) raises (SALOME::SALOME_Exception);
255     
256     void UnsetEnforcedVertex(in GEOM::GEOM_Object GeomObj, in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
257 //     void UnsetEnforcedVertexList(in GEOM::GEOM_Object GeomObj, in TEnfVertexList vertexList) raises (SALOME::SALOME_Exception);
258     void UnsetEnforcedVertices(in GEOM::GEOM_Object GeomObj) raises (SALOME::SALOME_Exception);
259     
260    /*!
261     * Set/get/unset an enforced vertex on geom object given by entry
262     */
263     void SetEnforcedVertexEntry(in TEnfEntry entry, in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
264     /* TODO GROUPS
265     void SetEnforcedVertexEntryWithGroup(in TEnfEntry entry, in double x, in double y, in double z, in TEnfGroupName groupName)
266         raises (SALOME::SALOME_Exception);
267     */
268 //     void SetEnforcedVertexListEntry(in TEnfEntry entry, in TEnfVertexList vertexList) raises (SALOME::SALOME_Exception);
269 //     
270     TEnfVertexList GetEnforcedVerticesEntry(in TEnfEntry entry) raises (SALOME::SALOME_Exception);
271 //     
272     void UnsetEnforcedVertexEntry(in TEnfEntry entry, in double x, in double y, in double z) raises (SALOME::SALOME_Exception);
273 //     void UnsetEnforcedVertexListEntry(in TEnfEntry entry, in TEnfVertexList vertexList) raises (SALOME::SALOME_Exception);
274     void UnsetEnforcedVerticesEntry(in TEnfEntry entry) raises (SALOME::SALOME_Exception);
275
276    /*!
277      * Set/get an enforced vertex on geom object and add it to a group
278     */
279     /* TODO GROUPS
280     void SetEnforcedVertexGroupName(in double x, in double y, in double z, in TEnfGroupName groupName)
281         raises (SALOME::SALOME_Exception);
282     string GetEnforcedVertexGroupName(in double x, in double y, in double z)
283         raises (SALOME::SALOME_Exception);
284     */
285     ///////////////////////
286
287   };
288 };
289
290 #endif