Version: 9.16.0
SMESHGUI_Hypotheses.h
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5//
6// This library is free software; you can redistribute it and/or
7// modify it under the terms of the GNU Lesser General Public
8// License as published by the Free Software Foundation; either
9// version 2.1 of the License, or (at your option) any later version.
10//
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public
17// License along with this library; if not, write to the Free Software
18// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19//
20// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22
23// SMESH SMESHGUI : GUI for SMESH component
24// File : SMESHGUI_Hypotheses.h
25// Author : Julia DOROVSKIKH, Open CASCADE S.A.S.
26//
27#ifndef SMESHGUI_HYPOTHESES_H
28#define SMESHGUI_HYPOTHESES_H
29
30// SMESH includes
31#include "SMESH_SMESHGUI.hxx"
33
34// Qt includes
35#include <QtxDialog.h>
36#include <QVariant>
37
38// IDL includes
39#include <SALOMEconfig.h>
40#include CORBA_SERVER_HEADER(SMESH_Hypothesis)
41
42class QEventLoop;
43
48{
49 Q_OBJECT
50
51public:
52 SMESHGUI_GenericHypothesisCreator( const QString& );
54
55 void create( SMESH::SMESH_Hypothesis_ptr,
56 const QString&, QWidget*, QObject*, const QString& );
57 void create( bool, const QString&, QWidget*, QObject*, const QString& );
58 void edit( SMESH::SMESH_Hypothesis_ptr, const QString&, QWidget*, QObject*, const QString& );
59 void setInitParamsHypothesis(SMESH::SMESH_Hypothesis_ptr);
60
61 virtual bool checkParams( QString& ) const;
62 virtual void onReject();
63 virtual QString helpPage() const;
64
65 QString hypType() const;
66 QString hypName() const;
67 bool isCreation() const;
68
69 QString getShapeEntry() const { return myShapeEntry; }
70 void setShapeEntry( const QString& theEntry );
71
72 QString getMainShapeEntry() const { return myMainShapeEntry; }
73 void setMainShapeEntry( const QString& theEntry ) { myMainShapeEntry = theEntry; }
74
75 void setNoGeomMesh( const bool noGeom ) { myNoGeomMesh = noGeom; }
76 bool getNoGeomMesh() const { return myNoGeomMesh; }
77
78signals:
79 void finished( int );
80
81protected:
82 struct StdParam
83 {
84 QString myName;
85 QVariant myValue;
87 QString myText;
88 QByteArray myTextAsBytes;
90 isVariable = false;
91 }
92 const char* text() const {
93 ((QByteArray&) myTextAsBytes) = myText.toUtf8(); return myTextAsBytes.constData();
94 }
95 void setNoName() { myName.clear(); } // ==> widget occupies both columns
96 bool hasName() const { return !myName.isEmpty(); }
97 };
98
99 typedef QList<StdParam> ListOfStdParams;
100 typedef QList<QWidget*> ListOfWidgets;
101
102 SMESH::SMESH_Hypothesis_var hypothesis() const;
103 SMESH::SMESH_Hypothesis_var initParamsHypothesis(const bool strict=false) const;
104 bool hasInitParamsHypothesis() const;
105 const ListOfWidgets& widgets() const;
106 ListOfWidgets& changeWidgets();
107 QLabel* getLabel(int i) const;
108 QtxDialog* dlg() const;
109 QString getVariableName(const char* methodName) const;
110
111 virtual QFrame* buildFrame() = 0;
112 QFrame* buildStdFrame();
113 virtual void retrieveParams() const = 0;
114 virtual QString storeParams() const = 0;
115 virtual bool stdParams( ListOfStdParams& ) const;
116 bool getStdParamFromDlg( ListOfStdParams& ) const;
117 virtual QStringList getVariablesFromDlg() const;
118 static QString stdParamValues( const ListOfStdParams& );
119 virtual void attuneStdWidget( QWidget*, const int ) const;
120 virtual QWidget* getCustomWidget( const StdParam&,
121 QWidget*, const int ) const;
122 virtual QWidget* getHelperWidget() const;
123 virtual bool getParamFromCustomWidget( StdParam&, QWidget* ) const;
124 virtual void valueChanged( QWidget* );
125 virtual QString caption() const;
126 virtual QPixmap icon() const;
127 virtual QString type() const;
128
129protected slots:
130 virtual void onValueChanged();
131
132private slots:
133 virtual void onDialogFinished( int );
134
135private:
136 void editHypothesis( SMESH::SMESH_Hypothesis_ptr, const QString&, QWidget*, QObject* obj, const QString& );
137
138private:
139 SMESH::SMESH_Hypothesis_var myHypo, myInitParamsHypo;
141 QString myHypName;
142 QString myHypType;
150};
151
153{
154 Q_OBJECT
155
156public:
158 virtual ~SMESHGUI_HypothesisDlg();
159
160 void setHIcon( const QPixmap& );
161 void setCustomFrame( QFrame* );
162 void setType( const QString& );
163 void showEvent(QShowEvent *event);
164
165protected slots:
166 virtual void accept();
167 virtual void reject();
168 void onHelp();
169
170 private:
174};
175
180{
181 HypothesisData( const QString&, const QString&, const QString&,
182 const QString&, const QString&, const QString&,
183 const QString&, const int, const int,
184 const QList<int>&, const bool,
185 const QStringList&, const QStringList&,
186 const QStringList&, const QStringList&,
187 const int, const bool supportSub );
188
189 QString TypeName;
190 QString PluginName;
193 QString Label;
194 QString IconId;
195 QString Context;
198 QList<int> Dim;
205
206 // for algorithm only: dependencies algo <-> algo and algo -> hypos
207 QStringList BasicHypos;
208 QStringList OptionalHypos;
209 QStringList InputTypes;
210 QStringList OutputTypes;
211};
212
219{
220public:
221
223
224 //HypothesesSet( const QString& );
225 HypothesesSet( const QString& name,
226 bool useCommonSize, bool isQuadDominated,
227 const QStringList& mainHypos, const QStringList& mainAlgos,
228 const QStringList& altHypos, const QStringList& altAlgos,
229 const QStringList& intHypos, const QStringList& intAlgos );
230
231 QString name() const;
232 bool toUseCommonSize() const { return myUseCommonSize; }
233 bool isQuadDominated() const { return myQuadDominated; }
234 bool hasAlgo( SetType type ) const { return !myAlgoList[ type ].isEmpty(); }
235 //int count( bool, SetType ) const;
236
237 int maxDim() const;
238
239 void setIsCustom( bool );
240 bool getIsCustom() const;
241
242 void setAlgoAvailable( SetType type, bool isAvailable );
243 bool getAlgoAvailable( SetType type );
244
246 static const char* getCommonHypoSetHypoType();
247
248 //bool isAlgo() const;
249
250 // CASCADE-like iteration
251 void init( bool, SetType );
252 bool more() const;
253 void next();
254 QString current() const;
255
256private:
257 QStringList* list(bool,SetType) const;
258 QStringList* list() const;
259
260private:
261 bool myUseCommonSize; // Average size is asked only and used to create default hypotheses
264 QStringList myHypoList[3], myAlgoList[3]; // per SetType
265 bool myIsAlgoAvailable[3]; // current state depending on geometry etc
266
267 // iteration
271};
272
273#endif // SMESHGUI_HYPOTHESES_H
#define SMESHGUI_EXPORT
Definition: SMESH_SMESHGUI.hxx:36
Class containing set of hypotheses.
Definition: SMESHGUI_Hypotheses.h:219
bool myQuadDominated
Definition: SMESHGUI_Hypotheses.h:262
bool myIsCustom
Definition: SMESHGUI_Hypotheses.h:269
bool hasAlgo(SetType type) const
Definition: SMESHGUI_Hypotheses.h:234
bool myIsAlgoAvailable[3]
Definition: SMESHGUI_Hypotheses.h:265
bool myUseCommonSize
Definition: SMESHGUI_Hypotheses.h:261
bool getIsCustom() const
Definition: SMESHGUI_Hypotheses.cxx:888
bool more() const
Definition: SMESHGUI_Hypotheses.cxx:868
QString myHypoSetName
Definition: SMESHGUI_Hypotheses.h:263
static const char * getCommonHypoSetHypoType()
Definition: SMESHGUI_Hypotheses.cxx:929
QStringList * list() const
Definition: SMESHGUI_Hypotheses.cxx:836
QStringList myHypoList[3]
Definition: SMESHGUI_Hypotheses.h:264
int maxDim() const
Definition: SMESHGUI_Hypotheses.cxx:914
void setIsCustom(bool)
Definition: SMESHGUI_Hypotheses.cxx:883
void init(bool, SetType)
Definition: SMESHGUI_Hypotheses.cxx:861
bool getAlgoAvailable(SetType type)
Definition: SMESHGUI_Hypotheses.cxx:899
SetType myHypType
Definition: SMESHGUI_Hypotheses.h:268
QString current() const
Definition: SMESHGUI_Hypotheses.cxx:878
QStringList myAlgoList[3]
Definition: SMESHGUI_Hypotheses.h:264
static SetType getPreferredHypType()
Definition: SMESHGUI_Hypotheses.cxx:907
void next()
Definition: SMESHGUI_Hypotheses.cxx:873
int myIndex
Definition: SMESHGUI_Hypotheses.h:270
void setAlgoAvailable(SetType type, bool isAvailable)
Definition: SMESHGUI_Hypotheses.cxx:893
SetType
Definition: SMESHGUI_Hypotheses.h:222
@ MAIN
Definition: SMESHGUI_Hypotheses.h:222
@ NB_HYP_TYPES
Definition: SMESHGUI_Hypotheses.h:222
@ ALT
Definition: SMESHGUI_Hypotheses.h:222
@ INTERN
Definition: SMESHGUI_Hypotheses.h:222
HypothesesSet(const QString &name, bool useCommonSize, bool isQuadDominated, const QStringList &mainHypos, const QStringList &mainAlgos, const QStringList &altHypos, const QStringList &altAlgos, const QStringList &intHypos, const QStringList &intAlgos)
Definition: SMESHGUI_Hypotheses.cxx:808
QString name() const
Definition: SMESHGUI_Hypotheses.cxx:841
bool toUseCommonSize() const
Definition: SMESHGUI_Hypotheses.h:232
bool myIsAlgo
Definition: SMESHGUI_Hypotheses.h:269
bool isQuadDominated() const
Definition: SMESHGUI_Hypotheses.h:233
Auxiliary class for creation of hypotheses.
Definition: SMESHGUI_Hypotheses.h:48
void setNoGeomMesh(const bool noGeom)
Definition: SMESHGUI_Hypotheses.h:75
QtxDialog * myDlg
Definition: SMESHGUI_Hypotheses.h:147
virtual QFrame * buildFrame()=0
SMESH::SMESH_Hypothesis_var myHypo
Definition: SMESHGUI_Hypotheses.h:139
QString myMainShapeEntry
Definition: SMESHGUI_Hypotheses.h:149
bool myToDeleteInitParamsHypo
Definition: SMESHGUI_Hypotheses.h:140
bool myIsCreate
Definition: SMESHGUI_Hypotheses.h:145
ListOfWidgets myParamWidgets
Definition: SMESHGUI_Hypotheses.h:143
QList< StdParam > ListOfStdParams
Definition: SMESHGUI_Hypotheses.h:99
QList< QWidget * > ListOfWidgets
Definition: SMESHGUI_Hypotheses.h:100
QString myHypType
Definition: SMESHGUI_Hypotheses.h:142
void setMainShapeEntry(const QString &theEntry)
Definition: SMESHGUI_Hypotheses.h:73
virtual QString storeParams() const =0
QString myShapeEntry
Definition: SMESHGUI_Hypotheses.h:148
QString myHypName
Definition: SMESHGUI_Hypotheses.h:141
QString getMainShapeEntry() const
Definition: SMESHGUI_Hypotheses.h:72
bool getNoGeomMesh() const
Definition: SMESHGUI_Hypotheses.h:76
QString getShapeEntry() const
Definition: SMESHGUI_Hypotheses.h:69
bool myNoGeomMesh
true for a mesh not based on geometry
Definition: SMESHGUI_Hypotheses.h:146
virtual void retrieveParams() const =0
ListOfWidgets myParamLabels
Definition: SMESHGUI_Hypotheses.h:144
Definition: SMESHGUI_Hypotheses.h:153
virtual ~SMESHGUI_HypothesisDlg()
Definition: SMESHGUI_Hypotheses.cxx:680
QLabel * myIconLabel
Definition: SMESHGUI_Hypotheses.h:172
SMESHGUI_GenericHypothesisCreator * myCreator
Definition: SMESHGUI_Hypotheses.h:171
SMESHGUI_HypothesisDlg(SMESHGUI_GenericHypothesisCreator *, QWidget *)
Definition: SMESHGUI_Hypotheses.cxx:646
QLabel * myTypeLabel
Definition: SMESHGUI_Hypotheses.h:172
QString myHelpFileName
Definition: SMESHGUI_Hypotheses.h:173
void showEvent(QShowEvent *event)
Definition: SMESHGUI_Hypotheses.cxx:685
void onHelp()
Definition: SMESHGUI_Hypotheses.cxx:723
void setType(const QString &)
Definition: SMESHGUI_Hypotheses.cxx:759
void setCustomFrame(QFrame *)
Definition: SMESHGUI_Hypotheses.cxx:693
void setHIcon(const QPixmap &)
Definition: SMESHGUI_Hypotheses.cxx:754
virtual void reject()
Definition: SMESHGUI_Hypotheses.cxx:717
virtual void accept()
Definition: SMESHGUI_Hypotheses.cxx:702
Information about a hypothesis.
Definition: SMESHGUI_Hypotheses.h:180
QStringList OptionalHypos
list of optional hypotheses
Definition: SMESHGUI_Hypotheses.h:208
QString IconId
icon identifier
Definition: SMESHGUI_Hypotheses.h:194
QString ServerLibName
server library name
Definition: SMESHGUI_Hypotheses.h:191
QString Label
label
Definition: SMESHGUI_Hypotheses.h:193
QStringList BasicHypos
list of basic hypotheses
Definition: SMESHGUI_Hypotheses.h:207
HypothesisData(const QString &, const QString &, const QString &, const QString &, const QString &, const QString &, const QString &, const int, const int, const QList< int > &, const bool, const QStringList &, const QStringList &, const QStringList &, const QStringList &, const int, const bool supportSub)
Definition: SMESHGUI_Hypotheses.cxx:764
bool IsAuxOrNeedHyp
TRUE if given HYPOTHESIS is auxiliary one, FALSE otherwise.
Definition: SMESHGUI_Hypotheses.h:199
int GroupID
group ID (staring from zero)
Definition: SMESHGUI_Hypotheses.h:196
QString Context
["GLOBAL","LOCAL","ANY"(default)]
Definition: SMESHGUI_Hypotheses.h:195
int Priority
integer, priority within the group
Definition: SMESHGUI_Hypotheses.h:197
QList< int > Dim
list of supported dimensions (see SMESH::Dimension enumeration)
Definition: SMESHGUI_Hypotheses.h:198
int IsNeedGeometry
1 if the algorithm works with shapes only,
Definition: SMESHGUI_Hypotheses.h:201
QStringList OutputTypes
list of types of generated elements
Definition: SMESHGUI_Hypotheses.h:210
QString TypeName
hypothesis type name
Definition: SMESHGUI_Hypotheses.h:189
QString ClientLibName
client library name
Definition: SMESHGUI_Hypotheses.h:192
bool IsSupportSubmeshes
TRUE if the algorithm building all-dim elems supports sub-meshes.
Definition: SMESHGUI_Hypotheses.h:204
QString PluginName
plugin name
Definition: SMESHGUI_Hypotheses.h:190
QStringList InputTypes
list of element types required as a prerequisite
Definition: SMESHGUI_Hypotheses.h:209
Definition: SMESHGUI_Hypotheses.h:83
QString myName
Definition: SMESHGUI_Hypotheses.h:84
bool isVariable
Definition: SMESHGUI_Hypotheses.h:86
QByteArray myTextAsBytes
Definition: SMESHGUI_Hypotheses.h:88
QString myText
Definition: SMESHGUI_Hypotheses.h:87
void setNoName()
Definition: SMESHGUI_Hypotheses.h:95
bool hasName() const
Definition: SMESHGUI_Hypotheses.h:96
QVariant myValue
Definition: SMESHGUI_Hypotheses.h:85
StdParam()
Definition: SMESHGUI_Hypotheses.h:89
const char * text() const
Definition: SMESHGUI_Hypotheses.h:92