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