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