Salome HOME
Increment version: 9.2.1
[plugins/hexoticplugin.git] / idl / HexoticPlugin_Algorithm.idl
1 // Copyright (C) 2007-2016  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, or (at your option) any later version.
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   : HexoticPlugin_Algorithm.idl
22 // Author : Lioka RAZAFINDRAZAKA (CEA)
23 // ---
24 //
25 #ifndef _SMESH_HexoticALGORITHM_IDL_
26 #define _SMESH_HexoticALGORITHM_IDL_
27
28 #include "SMESH_Hypothesis.idl"
29 #include "SMESH_Mesh.idl"
30 #include "GEOM_Gen.idl"
31
32 /*!
33  * HexoticPlugin: interfaces to Hexotic related hypotheses and algorithms
34  */
35 module HexoticPlugin
36 {
37   /*!
38    * Type definitions for the size maps
39    */
40   struct HexoticPluginSizeMap {
41   string entry;
42   double size;
43   };
44   
45   typedef sequence<HexoticPluginSizeMap> HexoticPluginSizeMapsList;  
46
47   /*!
48    * HexoticPlugin_Hexotic: interface of Hexotic algorithm
49    */
50   interface HexoticPlugin_Hexotic : SMESH::SMESH_3D_Algo
51   {
52   };
53
54   /*!
55    * HexoticPlugin_Hypothesis: interface of "Hexotic parameters" hypothesis
56    */
57   interface HexoticPlugin_Hypothesis : SMESH::SMESH_Hypothesis
58   {
59     void SetHexesMinLevel(in long value);
60     long GetHexesMinLevel();
61
62     void SetHexesMaxLevel(in long value);
63     long GetHexesMaxLevel();
64     
65     void SetMinSize(in double value);
66     double GetMinSize();
67
68     void SetMaxSize(in double value);
69     double GetMaxSize();
70
71     void SetHexoticIgnoreRidges(in boolean value);
72     boolean GetHexoticIgnoreRidges();
73
74     void SetHexoticInvalidElements(in boolean value);
75     boolean GetHexoticInvalidElements();
76    
77     void SetHexoticSharpAngleThreshold(in double value);
78     double GetHexoticSharpAngleThreshold();
79    
80     void SetHexoticNbProc(in long value);
81     long GetHexoticNbProc();
82
83     void SetHexoticWorkingDirectory(in string path) raises (SALOME::SALOME_Exception);
84     string GetHexoticWorkingDirectory();
85    
86     void SetHexoticSdMode(in long value);
87     long GetHexoticSdMode();
88    
89     void SetHexoticVerbosity(in long value);
90     long GetHexoticVerbosity();
91
92     void SetHexoticMaxMemory(in long value);
93     long GetHexoticMaxMemory();
94     
95     void SetAdvancedOption(in string option);
96     string GetAdvancedOption();
97     void SetTextOptions(in string option);// obsolete
98     string GetTextOptions();
99
100     void SetSizeMapEntry(in string entry, 
101                          in double size);
102     void UnsetSizeMapEntry(in string entry);
103
104     void SetSizeMap(in GEOM::GEOM_Object GeomObj, 
105                     in double size);
106     void UnsetSizeMap(in GEOM::GEOM_Object GeomObj);
107
108     HexoticPluginSizeMapsList GetSizeMaps();
109     
110     void SetNbLayers(in long theVal);
111     long GetNbLayers();
112
113     void SetFirstLayerSize(in double theVal);
114     double GetFirstLayerSize();
115
116     void SetDirection(in boolean theVal);
117     boolean GetDirection();
118
119     void SetGrowth(in double theVal);
120     double GetGrowth();
121
122     void SetFacesWithLayers(in SMESH::long_array theVal);
123     SMESH::long_array GetFacesWithLayers();
124
125     void SetImprintedFaces(in SMESH::long_array theVal);
126     SMESH::long_array GetImprintedFaces();
127   };
128 };
129
130 #endif