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)
146 double dist = point1.distanceToPoint(point2);
149 QString msg = QString(
TR(
"id_size_info")).arg(dist, 0,
'f', 2);
159 Qt::KeyboardModifiers state)
166 float pt1[3], pt2[3];
197 pDlg->setWindowTitle(
TR(
"id_caption"));
199 QGridLayout* pLayout =
new QGridLayout();
200 pDlg->setLayout(pLayout);
202 QGridLayout* pEditLayout =
new QGridLayout();
203 pEditLayout->setContentsMargins(10, 10, 10, 10);
204 pLayout->addLayout(pEditLayout, 0, 0);
207 QLabel* pHauteurSolLabelName =
new QLabel(
TR(
"id_hauteursol_label"));
209 pHauteurSolLineEdit->setFixedWidth(60);
210 pHauteurSolLineEdit->setText(QString().setNum(2.0,
'f', 2));
211 pEditLayout->addWidget(pHauteurSolLabelName, 0, 0);
212 pEditLayout->addWidget(pHauteurSolLineEdit, 0, 1);
215 QLabel* pHauteurLabelName =
new QLabel(
TR(
"id_hauteur_label"));
217 pHauteurLineEdit->setFixedWidth(60);
218 pHauteurLineEdit->setText(QString().setNum(2.0,
'f', 2));
219 pEditLayout->addWidget(pHauteurLabelName, 1, 0);
220 pEditLayout->addWidget(pHauteurLineEdit, 1, 1);
223 QLabel* pDistanceXLabelName =
new QLabel(
TR(
"id_distancex_label"));
225 pDistanceXLineEdit->setFixedWidth(60);
226 pDistanceXLineEdit->setText(QString().setNum(1.0f / TY_MAILLAGE_DEFAULT_DENSITE,
'f', 2));
227 pEditLayout->addWidget(pDistanceXLabelName, 2, 0);
228 pEditLayout->addWidget(pDistanceXLineEdit, 2, 1);
231 QLabel* pDistanceYLabelName =
new QLabel(
TR(
"id_distancey_label"));
233 pDistanceYLineEdit->setFixedWidth(60);
234 pDistanceYLineEdit->setText(QString().setNum(1.0f / TY_MAILLAGE_DEFAULT_DENSITE,
'f', 2));
235 pEditLayout->addWidget(pDistanceYLabelName, 3, 0);
236 pEditLayout->addWidget(pDistanceYLineEdit, 3, 1);
238 QBoxLayout* pBtnLayout =
new QHBoxLayout();
239 pLayout->addLayout(pBtnLayout, 1, 0);
241 pBtnLayout->addStretch(1);
243 QPushButton* pButtonOK =
new QPushButton(
TR(
"id_ok_btn"), pDlg);
244 pButtonOK->setDefault(
true);
245 QObject::connect(pButtonOK, &QPushButton::clicked, pDlg, &QDialog::accept);
246 pBtnLayout->addWidget(pButtonOK);
248 QPushButton* pButtonCancel =
new QPushButton(
TR(
"id_cancel_btn"), pDlg);
249 pButtonCancel->setShortcut(Qt::Key_Escape);
250 QObject::connect(pButtonCancel, &QPushButton::clicked, pDlg, &QDialog::reject);
251 pBtnLayout->addWidget(pButtonCancel);
254 int ret = pDlg->exec();
256 TYApplication::setOverrideCursor(Qt::WaitCursor);
259 if (ret == QDialog::Accepted)
282 pRectangle->
setSize(pSeg->
longueur(), pHauteurLineEdit->text().toDouble());
293 pMaillage->setHauteur(pHauteurSolLineEdit->text().toDouble());
294 pMaillage->make(pRectangle, 1.0f / (pDistanceXLineEdit->text().toDouble()),
295 1.0f / (pDistanceYLineEdit->text().toDouble()));
298 pMaillage->setComputeAlti(
false);
312 pMaillage->updateGraphicTree();
330 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)
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.
void setVisibility(bool bVisible)
const QVector3D & getPoint1()
void setPoint2(const QVector3D &point2)
const QVector3D & getPoint2()
void setColor(const OColor &oColor)
void setPoint1(const QVector3D &point1)
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.
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()
virtual float getDefaultZCoord()
Returns default Z coordinate for editors This value will depend on the type of modeler and of the fix...
bool askForResetResultat()
virtual void updateView(bool clipping=true, bool axesAndGrid=true)
Super-class for editors performing object construction.
void addOGLElement(OGLElement *pOGLElement)
void invalidateScene(void)
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.
QVector3D displayToWorld(const QVector3D &display) const
const TYRenderViewport & getViewport() const
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)