22 #include <qmessagebox.h>
23 #include <qpushbutton.h>
24 #include <qlineedit.h>
29 #include <QHBoxLayout>
31 #include <QGridLayout>
32 #include <QVBoxLayout>
51 #define TR(id) OLocalizator::getString("TYRectangularMaillageEditor", (id))
111 Qt::KeyboardModifiers state)
113 if ((button == Qt::LeftButton) &&
_active)
115 if (
getTYApp()->getCurProjet() &&
getTYApp()->getCurProjet()->getCurrentCalcul())
129 QString msg(
TR(
"id_warning_no_curcalcul"));
131 QMessageBox::warning(
_pModeler,
"Tympan", msg, QMessageBox::Ok, QMessageBox::NoButton);
137 Qt::KeyboardModifiers state)
179 pDlg->setWindowTitle(
TR(
"id_caption"));
181 QGridLayout* pLayout =
new QGridLayout();
182 pDlg->setLayout(pLayout);
184 QGridLayout* pEditLayout =
new QGridLayout();
185 pEditLayout->setContentsMargins(10, 10, 10, 10);
186 pLayout->addLayout(pEditLayout, 0, 0);
189 QLabel* pHauteurLabelName =
new QLabel(
TR(
"id_hauteur_label"));
191 pHauteurLineEdit->setFixedWidth(60);
192 pHauteurLineEdit->setText(QString().setNum(2.0,
'f', 2));
193 pEditLayout->addWidget(pHauteurLabelName, 0, 0);
194 pEditLayout->addWidget(pHauteurLineEdit, 0, 1);
197 QLabel* pDensiteXLabelName =
new QLabel(
TR(
"id_densitex_label"));
199 pDensiteXLineEdit->setFixedWidth(60);
200 pDensiteXLineEdit->setText(QString().setNum(TY_MAILLAGE_DEFAULT_DENSITE,
'f', 4));
201 pEditLayout->addWidget(pDensiteXLabelName, 1, 0);
202 pEditLayout->addWidget(pDensiteXLineEdit, 1, 1);
205 QLabel* pDensiteYLabelName =
new QLabel(
TR(
"id_densitey_label"));
207 pDensiteYLineEdit->setFixedWidth(60);
208 pDensiteYLineEdit->setText(QString().setNum(TY_MAILLAGE_DEFAULT_DENSITE,
'f', 4));
209 pEditLayout->addWidget(pDensiteYLabelName, 2, 0);
210 pEditLayout->addWidget(pDensiteYLineEdit, 2, 1);
212 QBoxLayout* pBtnLayout =
new QHBoxLayout();
213 pLayout->addLayout(pBtnLayout, 1, 0);
215 pBtnLayout->addStretch(1);
217 QPushButton* pButtonOK =
new QPushButton(
TR(
"id_ok_btn"), pDlg);
218 pButtonOK->setDefault(
true);
219 QObject::connect(pButtonOK, &QPushButton::clicked, pDlg, &QDialog::accept);
220 pBtnLayout->addWidget(pButtonOK);
222 QPushButton* pButtonCancel =
new QPushButton(
TR(
"id_cancel_btn"), pDlg);
223 pButtonCancel->setShortcut(Qt::Key_Escape);
224 QObject::connect(pButtonCancel, &QPushButton::clicked, pDlg, &QDialog::reject);
225 pBtnLayout->addWidget(pButtonCancel);
228 int ret = pDlg->exec();
230 TYApplication::setOverrideCursor(Qt::WaitCursor);
233 if (ret == QDialog::Accepted)
252 pRectangle->
setSize(sizeX, sizeY);
260 if (pProjet !=
nullptr)
262 pMaillage->setHauteur(pHauteurLineEdit->text().toDouble());
263 pMaillage->make(pRectangle, pDensiteXLineEdit->text().toDouble(),
264 pDensiteYLineEdit->text().toDouble());
281 pMaillage->updateGraphicTree();
300 TYApplication::restoreOverrideCursor();
305 Qt::KeyboardModifiers state)
314 float pt0[3], pt1[3], pt2[3];
331 double sizeX =
ABS(pt1[0] - pt0[0]);
332 double sizeY =
ABS(pt2[1] - pt1[1]);
333 double sizeZ = (sizeX + sizeY) / 2.0;
342 QString(
TR(
"id_size_info")).arg(sizeX, 0,
'f', 2).arg(sizeY, 0,
'f', 2),
double ABS(double a)
Return the absolute value.
fichier contenant differents types d'actions (fichier header)
void writeOutputMsg(QString msg)
Affiche un message dans la fenetre de sortie.
TYApplication * getTYApp()
Retourne le pointeur sur l'application.
pour l'application Tympan (fichier header)
outil IHM pour une entrée utilisateur (fichier header)
Classe generique pour une fenetre de modeleur (fichier header)
Representation graphique d'un point (fichier header)
gestion de l'edition d'un maillage rectangulaire (fichier header)
TYGeometryNode TYRectangularMaillageGeoNode
Noeud geometrique de type TYRectangularMaillage.
Le role de cette classe est limite a emettre des signaux pouvant etre utilise pour interagir sur le r...
Classe Modeler specialisee pour l'edition des sites (fichier header)
double _y
y coordinate of OCoord3D
double _z
z coordinate of OCoord3D
double _x
x coordinate of OCoord3D
static NxVec3 displayToWorld(NxVec3 display)
void setVisibility(bool bVisible)
void setColor(const OColor &oColor)
void setPoint2(const OPoint3D &point2)
void setPoint3(const OPoint3D &point3)
void setPoint0(const OPoint3D &point0)
void setPoint1(const OPoint3D &point1)
OPoint3D _origin
The origin point.
double norme() const
Computes the length of this vector.
Classe abstraite pour la gestion de l'interaction entre la vue graphique (2D ou 3D) et le clavier et ...
double _gridMagnStep
Pas de la grille magnétique de positionnement.
static void snapToGrid(float &x, float &y, float &z, float &gridMagnStep)
Methode utilitaire qui adapte les coordonnees d'un point pour que celui-ci soit aligne avec la grille...
void refreshProjectFrame()
Rafraichit l'arborescence du TYProjectFrame.
void updateText(QString msg="", int posX=0, int posY=0, bool show=true)
Mets a jour le texte informatif sur la vue 3D.
TYModelerFrame * _pModeler
Le modeler associe a cet editor.
void showText(bool show=true)
Affiche ou pas le texte informatif sur la vue 3D.
TYRenderWindowInteractor * _pInteractor
La vue graphique associee a cet editor.
void addAction(TYAction *pAction)
Ajoute une nouvelle action a l'historique.
Definit une action, necessaire pour la gestion de l'undo.
static void setIsSavedOk(const bool &toSave)
TYRenderWindowInteractor * getView()
TYActionManager * getActionManager()
bool askForResetResultat()
virtual void updateView(bool clipping=true, bool axesAndGrid=true)
void updateDisplayList(void)
void addOGLElement(OGLElement *pOGLElement)
void removeOGLElement(OGLElement *pOGLElement)
classe de definition d'un projet.
bool addMaillage(LPTYMaillageGeoNode pMaillageGeoNode)
Ajout d'un maillage.
bool updateAltiMaillage(TYMaillageGeoNode *pMaillageGeoNode, const TYAltimetrie *pAlti)
Met a niveau l'altimetrie d'un maillage.
LPTYSiteNode getSite()
Get du site.
void setSize(float sizeX, float sizeY)
virtual void slotMousePressed(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state)
bool _active
Indique si cet editor est actif.
~TYRectangularMaillageEditor()
virtual void slotMouseMoved(int x, int y, Qt::MouseButtons button, Qt::KeyboardModifiers state)
TYRectangularMaillageEditor(TYSiteModelerFrame *pModeler)
virtual void slotMouseReleased(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state)
OGLRectangleElement * _pOGLRectangleElement
Pour le dessin de construction.
virtual void slotViewTypeChanged(int view)
Classe de definition d'un maillage rectangulaire.
TYOpenGLRenderer * getRenderer()
Classe Modeler specialisee pour l'edition des sites.
LPTYAltimetrie getAltimetry() const