Salome HOME
Size Map feature integration.
[plugins/blsurfplugin.git] / idl / BLSURFPlugin_Algorithm.idl
1 //  Copyright (C) 2007-2008  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    : BLSURFPlugin_Algorithm.idl
21 // Authors : Francis KLOSS (OCC) & Patrick LAUG (INRIA) & Lioka RAZAFINDRAZAKA (CEA)
22 //           Size maps developement: Nicolas GEIMER (OCC) & Gilles DAVID (EURIWARE)
23 // ---
24 //
25 #ifndef _SMESH_BLSURFALGORITHM_IDL_
26 #define _SMESH_BLSURFALGORITHM_IDL_
27
28 #include "SMESH_Hypothesis.idl"
29 #include "GEOM_Gen.idl"
30 #include "SALOME_Exception.idl"
31
32 /*!
33  * BLSURFPlugin: interfaces to BLSURF related hypotheses and algorithms
34  */
35 module BLSURFPlugin
36 {
37   typedef sequence<string> string_array;
38
39   /*!
40    * BLSURFPlugin_BLSURF: interface of BLSURF algorithm
41    */
42   interface BLSURFPlugin_BLSURF : SMESH::SMESH_2D_Algo
43   {
44   };
45
46   /*!
47    * BLSURFPlugin_Hypothesis: interface of "BLSURF parameters" hypothesis
48    */
49   interface BLSURFPlugin_Hypothesis : SMESH::SMESH_Hypothesis
50   {
51     /*!
52      * Sets topology usage way defining how mesh conformity is assured
53      * value=0 - mesh conformity is assured by conformity of a shape
54      * value=1,2 - mesh conformity is assured by pre-processing a CAD model
55      */
56     void SetTopology(in long way);
57     long GetTopology();
58
59     /*!
60      * Sets a way to define size of mesh elements to generate
61      * 0 - size is defined automatically
62      * 1 - size is set by SetPhySize() method
63      */
64     void SetPhysicalMesh(in long isCustom);
65     long GetPhysicalMesh();
66
67     /*!
68      * Sets size of mesh elements to generate
69      */
70     void SetPhySize(in double size);
71     double GetPhySize();
72
73     /*!
74      * Sets lower boundary of mesh element size (PhySize)
75      */
76     void SetPhyMin(in double theMinSize);
77     double GetPhyMin();
78
79     /*!
80      * Sets upper boundary of mesh element size (PhySize)
81      */
82     void SetPhyMax(in double theMaxSize);
83     double GetPhyMax();
84
85     /*!
86      * Sets a way to define maximum angular deflection of mesh from CAD model
87      * 0 - deflection is defined automatically
88      * 1 - deflection is set by SetAngleMeshS() and SetAngleMeshC() methods
89      */
90     void SetGeometricMesh(in long isCustom);
91     long GetGeometricMesh();
92
93     /*!
94      * Sets angular deflection (in degrees) of a mesh face from CAD surface
95      */
96     void SetAngleMeshS(in double angle);
97     double GetAngleMeshS();
98
99     /*!
100      * Sets angular deflection (in degrees) of a mesh edge from CAD curve
101      */
102     void SetAngleMeshC(in double angle);
103     double GetAngleMeshC();
104
105     /*!
106      * Sets lower boundary of mesh element size computed to respect angular deflection
107      */
108     void SetGeoMin(in double theMinSize);
109     double GetGeoMin();
110
111     /*!
112      * Sets upper boundary of mesh element size computed to respect angular deflection
113      */
114     void SetGeoMax(in double theMaxSize);
115     double GetGeoMax();
116
117     /*!
118      * Sets maximal allowed ratio between the lengths of two adjacent edges
119      */
120     void SetGradation(in double ratio);
121     double GetGradation();
122
123     /*!
124      * Sets to create quadrilateral elements or not
125      */
126     void SetQuadAllowed(in boolean allowed);
127     boolean GetQuadAllowed();
128
129     /*!
130      * To respect geometrical edges or not
131      */
132     void SetDecimesh(in boolean toIgnoreEdges);
133     boolean GetDecimesh();
134
135     /*!
136      * Sets verbosity level in the range 0 to 100.
137      */
138     void SetVerbosity(in short theVal) raises (SALOME::SALOME_Exception);
139     short GetVerbosity();
140
141     /*!
142      * Sets advanced option value
143      */
144     void SetOptionValue(in string optionName,
145                         in string optionValue) raises (SALOME::SALOME_Exception);
146     string GetOptionValue(in string optionName) raises (SALOME::SALOME_Exception);
147     /*!
148      * Unsets advanced option
149      */
150     void UnsetOption(in string optionName);
151
152     /*!
153      * Return array of strings each of which is option name concatenated
154      * with option value devided by semicolon - "option_name:option_value".
155      * Option value is empty if an option is not set.
156      * Note: the method is mostly for interaction with GUI.
157      */
158     string_array GetOptionValues();
159
160     /*!
161      * Set option values each in the form "option_name[:option_value]".
162      * Note: the method is mostly for interaction with GUI.
163      */
164     void SetOptionValues(in string_array options);
165
166     /*!
167      * SizeMap
168      */
169     void SetSizeMapEntries(in string_array sizeMaps);
170     void ClearSizeMaps();
171
172     void UnsetEntry(in string entry);
173
174     /*!
175      * Set a SizeMap on geom object
176      */
177     void         SetSizeMap(in GEOM::GEOM_Object GeomObj, in string sizeMap);
178     void         UnsetSizeMap(in GEOM::GEOM_Object GeomObj);
179     
180     /*!
181      * Set a SizeMap on geom object given by entry
182      */
183     void         SetSizeMapEntry(in string entry, in string sizeMap);
184     string       GetSizeMapEntry(in string entry);
185     string_array GetSizeMapEntries();
186
187     /*!
188      * Set an attractor on geom object
189      */
190     void         SetAttractor(in GEOM::GEOM_Object GeomObj, in string attractor);
191     void         UnsetAttractor(in GEOM::GEOM_Object GeomObj);
192     
193     /*!
194      * Set an attractor on geom object given by entry
195      */
196     void         SetAttractorEntry(in string entry, in string attractor);
197     string       GetAttractorEntry(in string entry);
198     string_array GetAttractorEntries();
199
200 /*
201     void         SetCustomSizeMapEntry(in string entry, in string sizeMap);
202     string       GetCustomSizeMapEntry(in string entry);
203     void         SetCustomSizeMap(in GEOM::GEOM_Object GeomObj, in string sizeMap);
204     void         UnsetCustomSizeMap(in GEOM::GEOM_Object GeomObj);
205     string_array GetCustomSizeMapEntries();
206 */
207   };
208 };
209
210 #endif