22 #include <qmessagebox.h>
23 #include <qpushbutton.h>
28 #include <QHBoxLayout>
30 #include <QGridLayout>
31 #include <QVBoxLayout>
50 #define TR(id) OLocalizator::getString("TYLinearMaillageEditor", (id))
118 Qt::KeyboardModifiers state)
120 if (
_active && (button == Qt::LeftButton))
122 if (
getTYApp()->getCurProjet() &&
getTYApp()->getCurProjet()->getCurrentCalcul())
137 QString msg(
TR(
"id_warning_no_curcalcul"));
139 QMessageBox::warning(
_pModeler,
"Tympan", msg, QMessageBox::Ok, QMessageBox::NoButton);
145 Qt::KeyboardModifiers state)
150 QPoint pos =
_pInteractor->mapFromGlobal(QCursor::pos());
163 double dist = point1.
distance(point2);
166 QString msg = QString(
TR(
"id_output_dist")).arg(dist, 0,
'f', 2);
179 Qt::KeyboardModifiers state)
186 float pt1[3], pt2[3];
217 pDlg->setWindowTitle(
TR(
"id_caption"));
219 QGridLayout* pLayout =
new QGridLayout();
220 pDlg->setLayout(pLayout);
222 QGridLayout* pEditLayout =
new QGridLayout();
223 pEditLayout->setContentsMargins(10, 10, 10, 10);
224 pLayout->addLayout(pEditLayout, 0, 0);
227 QLabel* pHauteurLabelName =
new QLabel(
TR(
"id_hauteur_label"));
229 pHauteurLineEdit->setFixedWidth(60);
230 pHauteurLineEdit->setText(QString().setNum(2.0,
'f', 2));
231 pEditLayout->addWidget(pHauteurLabelName, 0, 0);
232 pEditLayout->addWidget(pHauteurLineEdit, 0, 1);
235 QLabel* pDensiteLabelName =
new QLabel(
TR(
"id_densite_label"));
237 pDensiteLineEdit->setFixedWidth(60);
238 pDensiteLineEdit->setText(QString().setNum(TY_MAILLAGE_DEFAULT_DENSITE,
'f', 4));
239 pEditLayout->addWidget(pDensiteLabelName, 1, 0);
240 pEditLayout->addWidget(pDensiteLineEdit, 1, 1);
242 QBoxLayout* pBtnLayout =
new QHBoxLayout();
243 pLayout->addLayout(pBtnLayout, 1, 0);
245 pBtnLayout->addStretch(1);
247 QPushButton* pButtonOK =
new QPushButton(
TR(
"id_ok_btn"), pDlg);
248 pButtonOK->setDefault(
true);
249 QObject::connect(pButtonOK, &QPushButton::clicked, pDlg, &QDialog::accept);
250 pBtnLayout->addWidget(pButtonOK);
252 QPushButton* pButtonCancel =
new QPushButton(
TR(
"id_cancel_btn"), pDlg);
253 pButtonCancel->setShortcut(Qt::Key_Escape);
254 QObject::connect(pButtonCancel, &QPushButton::clicked, pDlg, &QDialog::reject);
255 pBtnLayout->addWidget(pButtonCancel);
258 int ret = pDlg->exec();
260 TYApplication::setOverrideCursor(Qt::WaitCursor);
263 if (ret == QDialog::Accepted)
276 pMaillage->setHauteur(pHauteurLineEdit->text().toDouble());
277 pMaillage->make(pSeg, pDensiteLineEdit->text().toDouble());
292 pMaillage->updateGraphicTree();
313 TYApplication::restoreOverrideCursor();
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)
Indique si cet editor est actif (fichier header)
TYGeometryNode TYLinearMaillageGeoNode
Noeud geometrique de type TYLinearMaillage.
Classe generique pour une fenetre de modeleur (fichier header)
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)
NxReal distance(const NxVec3 &) const
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 setPoint1(const OPoint3D &point1)
void setColor(const OColor &oColor)
void setPoint2(const OPoint3D &point2)
virtual void setFromOGL(double x, double y, double z)
virtual double longueur() const
Return the segment length.
OPoint3D _ptA
Point A of the segment.
OPoint3D _ptB
Point B of the segment.
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)
virtual void slotMouseMoved(int x, int y, Qt::MouseButtons button, Qt::KeyboardModifiers state)
virtual void slotMouseReleased(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state)
virtual void slotMousePressed(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state)
bool _noCalcul
Indique l'absence de calcul courant.
OGLLineElement * _pOGLLineElement
La ligne courante.
TYLinearMaillageEditor(TYSiteModelerFrame *pModeler)
virtual void slotKeyPressed(int key)
virtual void slotViewTypeChanged(int view)
bool _active
Indique si cet editor est actif.
virtual ~TYLinearMaillageEditor()
Classe de definition d'un maillage lineaire.
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.
TYOpenGLRenderer * getRenderer()
Classe Modeler specialisee pour l'edition des sites.
LPTYAltimetrie getAltimetry() const