Salome HOME
fef59b7298f4a245308ebb0e1701443c826c03ec
[plugins/blsurfplugin.git] / src / BLSURFPlugin / BLSURFPlugin_Hypothesis_i.hxx
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_Hypothesis.hxx
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 _BLSURFPlugin_Hypothesis_i_HXX_
26 #define _BLSURFPlugin_Hypothesis_i_HXX_
27
28 #include <SALOMEconfig.h>
29 #include CORBA_SERVER_HEADER(BLSURFPlugin_Algorithm)
30
31 #include "SMESH_Hypothesis_i.hxx"
32 #include "BLSURFPlugin_Hypothesis.hxx"
33
34 class SMESH_Gen;
35 class GEOM_Object;
36
37 // BLSURFPlugin parameters hypothesis
38
39 class BLSURFPlugin_Hypothesis_i:
40   public virtual POA_BLSURFPlugin::BLSURFPlugin_Hypothesis,
41   public virtual SMESH_Hypothesis_i
42 {
43  public:
44   // Constructor
45   BLSURFPlugin_Hypothesis_i (PortableServer::POA_ptr thePOA,
46                              int                     theStudyId,
47                              ::SMESH_Gen*            theGenImpl);
48   // Destructor
49   virtual ~BLSURFPlugin_Hypothesis_i();
50
51   void SetTopology(CORBA::Long theValue);
52   CORBA::Long GetTopology();
53
54   void SetPhysicalMesh(CORBA::Long theValue);
55   CORBA::Long GetPhysicalMesh();
56
57   void SetPhySize(CORBA::Double theValue);
58   CORBA::Double GetPhySize();
59
60   void SetPhyMin(CORBA::Double theMinSize);
61   CORBA::Double GetPhyMin();
62
63   void SetPhyMax(CORBA::Double theMaxSize);
64   CORBA::Double GetPhyMax();
65
66   void SetGeometricMesh(CORBA::Long theValue);
67   CORBA::Long GetGeometricMesh();
68
69   void SetAngleMeshS(CORBA::Double theValue);
70   CORBA::Double GetAngleMeshS();
71
72   void SetAngleMeshC(CORBA::Double angle);
73   CORBA::Double GetAngleMeshC();
74
75   void SetGeoMin(CORBA::Double theMinSize);
76   CORBA::Double GetGeoMin();
77
78   void SetGeoMax(CORBA::Double theMaxSize);
79   CORBA::Double GetGeoMax();
80
81   void SetGradation(CORBA::Double theValue);
82   CORBA::Double GetGradation();
83
84   void SetQuadAllowed(CORBA::Boolean theValue);
85   CORBA::Boolean GetQuadAllowed();
86
87   void SetDecimesh(CORBA::Boolean theValue);
88   CORBA::Boolean GetDecimesh();
89
90   void SetVerbosity(CORBA::Short theVal) throw (SALOME::SALOME_Exception);
91   CORBA::Short GetVerbosity();
92
93   void SetOptionValue(const char* optionName,
94                       const char* optionValue) throw (SALOME::SALOME_Exception);
95   char* GetOptionValue(const char* optionName) throw (SALOME::SALOME_Exception);
96
97   void UnsetOption(const char* optionName);
98
99   BLSURFPlugin::string_array* GetOptionValues();
100
101   void SetOptionValues(const BLSURFPlugin::string_array& options) throw (SALOME::SALOME_Exception);
102
103   void SetSizeMapEntry(const char* entry,const char* sizeMap )  throw (SALOME::SALOME_Exception);
104   
105   char* GetSizeMapEntry(const char* entry)  throw (SALOME::SALOME_Exception);
106
107   void UnsetEntry(const char* entry);
108
109   BLSURFPlugin::string_array* GetSizeMapEntries();
110
111   void SetSizeMapEntries(const BLSURFPlugin::string_array& options) throw (SALOME::SALOME_Exception);
112
113   void SetSizeMap(GEOM::GEOM_Object_ptr GeomObj, const char* sizeMap);
114
115   void UnsetSizeMap(GEOM::GEOM_Object_ptr GeomObj);
116
117   void ClearSizeMaps();
118
119
120   void SetAttractor(GEOM::GEOM_Object_ptr GeomObj, const char* attractor);
121
122   void UnsetAttractor(GEOM::GEOM_Object_ptr GeomObj);
123
124   void SetAttractorEntry(const char* entry,const char* attractor )  throw (SALOME::SALOME_Exception);
125
126   char* GetAttractorEntry(const char* entry)  throw (SALOME::SALOME_Exception);
127
128   BLSURFPlugin::string_array* GetAttractorEntries();
129
130
131 /*
132   void SetCustomSizeMap(GEOM::GEOM_Object_ptr GeomObj, const char* sizeMap);
133
134   void UnsetCustomSizeMap(GEOM::GEOM_Object_ptr GeomObj);
135
136   void SetCustomSizeMapEntry(const char* entry,const char* sizeMap )  throw (SALOME::SALOME_Exception);
137
138   char* GetCustomSizeMapEntry(const char* entry)  throw (SALOME::SALOME_Exception);
139
140   BLSURFPlugin::string_array* GetCustomSizeMapEntries();
141 */
142
143   ///////////////////////
144   // ENFORCED VERTEXES //
145   ///////////////////////
146   
147   BLSURFPlugin::TEnforcedVertexMap* GetAllEnforcedVertices();
148   void                              ClearAllEnforcedVertices();
149
150   /*!
151     * Set/get/unset an enforced vertex on geom object
152     */
153   void         SetEnforcedVertex(GEOM::GEOM_Object_ptr GeomObj, CORBA::Double x, CORBA::Double y, CORBA::Double z) throw (SALOME::SALOME_Exception);
154 //   void         SetEnforcedVertexList(GEOM::GEOM_Object_ptr GeomObj, const BLSURFPlugin::TEnforcedVertexList& vertexList) throw (SALOME::SALOME_Exception);
155   BLSURFPlugin::TEnforcedVertexList* GetEnforcedVertices(GEOM::GEOM_Object_ptr GeomObj) throw (SALOME::SALOME_Exception);
156   void         UnsetEnforcedVertex(GEOM::GEOM_Object_ptr GeomObj, CORBA::Double x, CORBA::Double y, CORBA::Double z) throw (SALOME::SALOME_Exception);
157 //   void         UnsetEnforcedVertexList(GEOM::GEOM_Object_ptr GeomObj, BLSURFPlugin::TEnforcedVertexList& vertexList) throw (SALOME::SALOME_Exception);
158   void         UnsetEnforcedVertices(GEOM::GEOM_Object_ptr GeomObj) throw (SALOME::SALOME_Exception);
159
160   /*!
161     * Set/get/unset an enforced vertex on geom object given by entry
162     */
163   void         SetEnforcedVertexEntry(const char* entry, double x, double y, double z) throw (SALOME::SALOME_Exception);
164 //   void         SetEnforcedVertexListEntry(const char* entry, BLSURFPlugin::TEnforcedVertexList& vertexList) throw (SALOME::SALOME_Exception);
165   BLSURFPlugin::TEnforcedVertexList* GetEnforcedVerticesEntry(const char* entry) throw (SALOME::SALOME_Exception);
166   void         UnsetEnforcedVertexEntry(const char* entry, CORBA::Double x, CORBA::Double y, CORBA::Double z) throw (SALOME::SALOME_Exception);
167 //   void         UnsetEnforcedVertexListEntry(const char* entry, BLSURFPlugin::TEnforcedVertexList& vertexList) throw (SALOME::SALOME_Exception);
168   void         UnsetEnforcedVerticesEntry(const char* entry) throw (SALOME::SALOME_Exception);
169   ///////////////////////
170
171   // Get implementation
172   ::BLSURFPlugin_Hypothesis* GetImpl();
173
174   // Verify whether hypothesis supports given entity type 
175   CORBA::Boolean IsDimSupported( SMESH::Dimension type );
176 };
177
178 #endif