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("TYVerticalMaillageEditor", (id))
108 Qt::KeyboardModifiers state)
110 if (
_active && (button == Qt::LeftButton))
112 if (
getTYApp()->getCurProjet() &&
getTYApp()->getCurProjet()->getCurrentCalcul())
127 QString msg(
TR(
"id_warning_no_curcalcul"));
129 QMessageBox::warning(
_pModeler,
"Tympan", msg, QMessageBox::Ok, QMessageBox::NoButton);
135 Qt::KeyboardModifiers state)
140 QPoint pos =
_pInteractor->mapFromGlobal(QCursor::pos());
153 double dist = point1.
distance(point2);
156 QString msg = QString(
TR(
"id_size_info")).arg(dist, 0,
'f', 2);
169 Qt::KeyboardModifiers state)
176 float pt1[3], pt2[3];
207 pDlg->setWindowTitle(
TR(
"id_caption"));
209 QGridLayout* pLayout =
new QGridLayout();
210 pDlg->setLayout(pLayout);
212 QGridLayout* pEditLayout =
new QGridLayout();
213 pEditLayout->setContentsMargins(10, 10, 10, 10);
214 pLayout->addLayout(pEditLayout, 0, 0);
217 QLabel* pHauteurSolLabelName =
new QLabel(
TR(
"id_hauteursol_label"));
219 pHauteurSolLineEdit->setFixedWidth(60);
220 pHauteurSolLineEdit->setText(QString().setNum(2.0,
'f', 2));
221 pEditLayout->addWidget(pHauteurSolLabelName, 0, 0);
222 pEditLayout->addWidget(pHauteurSolLineEdit, 0, 1);
225 QLabel* pHauteurLabelName =
new QLabel(
TR(
"id_hauteur_label"));
227 pHauteurLineEdit->setFixedWidth(60);
228 pHauteurLineEdit->setText(QString().setNum(2.0,
'f', 2));
229 pEditLayout->addWidget(pHauteurLabelName, 1, 0);
230 pEditLayout->addWidget(pHauteurLineEdit, 1, 1);
233 QLabel* pDensiteXLabelName =
new QLabel(
TR(
"id_densitex_label"));
235 pDensiteXLineEdit->setFixedWidth(60);
236 pDensiteXLineEdit->setText(QString().setNum(TY_MAILLAGE_DEFAULT_DENSITE,
'f', 4));
237 pEditLayout->addWidget(pDensiteXLabelName, 2, 0);
238 pEditLayout->addWidget(pDensiteXLineEdit, 2, 1);
241 QLabel* pDensiteYLabelName =
new QLabel(
TR(
"id_densitey_label"));
243 pDensiteYLineEdit->setFixedWidth(60);
244 pDensiteYLineEdit->setText(QString().setNum(TY_MAILLAGE_DEFAULT_DENSITE,
'f', 4));
245 pEditLayout->addWidget(pDensiteYLabelName, 3, 0);
246 pEditLayout->addWidget(pDensiteYLineEdit, 3, 1);
248 QBoxLayout* pBtnLayout =
new QHBoxLayout();
249 pLayout->addLayout(pBtnLayout, 1, 0);
251 pBtnLayout->addStretch(1);
253 QPushButton* pButtonOK =
new QPushButton(
TR(
"id_ok_btn"), pDlg);
254 pButtonOK->setDefault(
true);
255 QObject::connect(pButtonOK, &QPushButton::clicked, pDlg, &QDialog::accept);
256 pBtnLayout->addWidget(pButtonOK);
258 QPushButton* pButtonCancel =
new QPushButton(
TR(
"id_cancel_btn"), pDlg);
259 pButtonCancel->setShortcut(Qt::Key_Escape);
260 QObject::connect(pButtonCancel, &QPushButton::clicked, pDlg, &QDialog::reject);
261 pBtnLayout->addWidget(pButtonCancel);
264 int ret = pDlg->exec();
266 TYApplication::setOverrideCursor(Qt::WaitCursor);
269 if (ret == QDialog::Accepted)
292 pRectangle->
setSize(pSeg->
longueur(), pHauteurLineEdit->text().toDouble());
303 pMaillage->setHauteur(pHauteurSolLineEdit->text().toDouble());
304 pMaillage->make(pRectangle, pDensiteXLineEdit->text().toDouble(),
305 pDensiteYLineEdit->text().toDouble());
308 pMaillage->setComputeAlti(
false);
322 pMaillage->updateGraphicTree();
340 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)
Classe generique pour une fenetre de modeleur (fichier header)
Representation graphique d'un point (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)
gestion de l'edition d'un maillage verticale (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
void setCoords(double x, double y, double z)
Sets the coordinates as an array of double.
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)
OVector3D _vecK
Vector K for the Z axis.
OVector3D _vecJ
Vector J for the Y axis.
OVector3D _vecI
Vector I for the X axis.
OPoint3D _origin
The origin point.
virtual double longueur() const
Return the segment length.
virtual OPoint3D centreOf() const
Return the position of the segment middle.
OPoint3D _ptA
Point A of the segment.
virtual OVector3D toVector3D() const
Build a OVector3D from a segment used for the direction of the sources.
OPoint3D _ptB
Point B of the segment.
void normalize()
Normalizes this vector.
OVector3D cross(const OVector3D &vector) const
Cross product.
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)
Classe de definition d'un maillage rectangulaire.
TYOpenGLRenderer * getRenderer()
Classe Modeler specialisee pour l'edition des sites.
LPTYAltimetrie getAltimetry() const
virtual void slotMousePressed(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state)
bool _active
Indique si cet editor est actif.
OGLLineElement * _pOGLLineElement
La ligne courante.
virtual void slotMouseMoved(int x, int y, Qt::MouseButtons button, Qt::KeyboardModifiers state)
virtual void slotViewTypeChanged(int view)
TYVerticalMaillageEditor(TYSiteModelerFrame *pModeler)
~TYVerticalMaillageEditor()
bool _noCalcul
Indique l'absence de calcul courant.
virtual void slotMouseReleased(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state)