Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYSiteModelerFrame.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) <2012-2024> <EDF-DTG> <FRANCE>
3  * This file is part of Code_TYMPAN (R).
4  * Code_TYMPAN (R) is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  * Code_TYMPAN (R) is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11  * See the GNU General Public License for more details.
12  * You should have received a copy of the GNU General Public License along
13  * with Code_TYMPAN (R). If not, see <https://www.gnu.org/licenses/>.
14  */
15 
21 #include <qmessagebox.h>
22 #include <qtooltip.h>
23 #include <qcombobox.h>
24 #include <qlayout.h>
25 #include <qcursor.h>
26 #include <qtoolbutton.h>
27 #include <qpixmap.h>
28 
45 #if WITH_NMPB
47 #endif
59 #include "TYSiteModelerFrame.h"
60 
61 #define TR(id) OLocalizator::getString("TYSiteModelerFrame", (id))
62 #define IMG(id) OLocalizator::getPicture("TYSiteModelerFrame", (id))
63 
65 
66 TYSiteModelerFrame::TYSiteModelerFrame(QWidget* parent, const char* name, Qt::WindowFlags f)
67  : TYModelerFrame(parent, name, f)
68 {
69  init();
70  setProjet(new TYProjet());
71  setSelectMaillageBox(TR("id_none_select_maillage"));
74 }
75 
76 TYSiteModelerFrame::TYSiteModelerFrame(LPTYProjet pProjet, QWidget* parent, const char* name,
77  Qt::WindowFlags f)
78  : TYModelerFrame(parent, name, f)
79 {
80  init();
81 
82  assert(pProjet);
83  setProjet(pProjet);
84  setSelectMaillageBox(TR("id_none_select_maillage"));
87 }
88 
89 TYSiteModelerFrame::TYSiteModelerFrame(LPTYSiteNode pSite, QWidget* parent, const char* name,
90  Qt::WindowFlags f)
91  : TYModelerFrame(parent, name, f)
92 {
93  init();
94 
95  assert(pSite);
96  setSite(pSite);
97  setSelectMaillageBox(TR("id_none_select_maillage"));
100 }
101 
103 {
104  _nbInstance++;
105  setWindowTitle(TR("id_caption") + " " + QString("%1").arg(_nbInstance));
106 
107  // Btn Show CrbNiv
108  _showCrbNiv = true;
109  _pShowCrbNivBtn = new QToolButton(this);
110  _pShowCrbNivBtn->setIcon(QPixmap(IMG("id_icon_crbniv")));
111  _pShowCrbNivBtn->setText(TR("id_show_crbniv_btn"));
112  _pShowCrbNivBtn->setToolTip(TR("id_show_crbniv_btn"));
113  _pShowCrbNivBtn->setCheckable(true);
114  _pShowCrbNivBtn->setChecked(_showCrbNiv);
115  _pShowCrbNivBtn->setFixedSize(24, 24);
116  _pCtrlLayout->addWidget(_pShowCrbNivBtn, 0);
117  connect(_pShowCrbNivBtn, &QToolButton::toggled, this, &TYSiteModelerFrame::showCrbNiv);
118 
119  // Btn Show Altimetrie
120  _showAltimetrie = false;
121  _pShowAltimetrieBtn = new QToolButton(this);
122  _pShowAltimetrieBtn->setIcon(QPixmap(IMG("id_icon_altimetrie")));
123  _pShowAltimetrieBtn->setText(TR("id_show_altimetrie_btn"));
124  _pShowAltimetrieBtn->setToolTip(TR("id_show_altimetrie_btn"));
125  _pShowAltimetrieBtn->setCheckable(true);
127  _pShowAltimetrieBtn->setFixedSize(24, 24);
128  _pCtrlLayout->addWidget(_pShowAltimetrieBtn, 0);
129  connect(_pShowAltimetrieBtn, &QToolButton::toggled, this, &TYSiteModelerFrame::showAltimetrie);
130 
131  // Btn Show ImageSite
132  _showImageSite = true;
133  _pShowImageSiteBtn = new QToolButton(this);
134  _pShowImageSiteBtn->setIcon(QPixmap(IMG("id_icon_imagesite")));
135  _pShowImageSiteBtn->setText(TR("id_show_imagesite_btn"));
136  _pShowImageSiteBtn->setToolTip(TR("id_show_imagesite_btn"));
137  _pShowImageSiteBtn->setCheckable(true);
138  _pShowImageSiteBtn->setChecked(_showImageSite);
139  _pShowImageSiteBtn->setFixedSize(24, 24);
140  _pCtrlLayout->addWidget(_pShowImageSiteBtn, 0);
141  connect(_pShowImageSiteBtn, &QToolButton::toggled, this, &TYSiteModelerFrame::showImageSite);
142 
143  // Editors
144  _pEchelleEditor = new TYEchelleEditor(this);
147  _pEmpriseEditor = new TYEmpriseEditor(this);
149  _pPlanEauEditor = new TYPlanEauEditor(this);
150  _pTerrainEditor = new TYTerrainEditor(this);
151 #if WITH_NMPB
152  _pRouteEditor = new TYRouteEditor(this);
153 #endif
155  _pEtageEditor = new TYEtageEditor(this);
156  _pSilosEditor = new TYSilosEditor(this);
158  _pSourceEditor = new TYSourceEditor(this);
164 
165  _pCtrlLayout->addSpacing(10);
166 
167  // Disambiguate the overloaded signal QComboBox::activated
168  void (QComboBox::*_qComboBox_activated_int)(int) = &QComboBox::activated;
169  void (QComboBox::*_qComboBox_activated_str)(const QString&) = &QComboBox::textActivated;
170 
171  // Combo box mode de Rendu
172  _pMaillageRenderModeBox = new QComboBox(this);
173  _pCtrlLayout->addWidget(_pMaillageRenderModeBox, 0);
174  _pMaillageRenderModeBox->setToolTip(TR("id_render_maillage_mode"));
175  _pMaillageRenderModeBox->insertItem(Surface, TR("id_surface_maillage_mode"));
176  _pMaillageRenderModeBox->insertItem(Lines, TR("id_lines_maillage_mode"));
177  _pMaillageRenderModeBox->insertItem(Mixed, TR("id_mixed_maillage_mode"));
178  connect(_pMaillageRenderModeBox, &QComboBox::activated, this,
180 
181  _pCtrlLayout->addSpacing(10);
182 
183  _pSelectMaillageBox = new QComboBox(this);
184  _pCtrlLayout->addWidget(_pSelectMaillageBox, 0);
185  _pSelectMaillageBox->setToolTip(TR("id_select_maillage"));
186  connect(_pSelectMaillageBox, _qComboBox_activated_str, this, &TYSiteModelerFrame::setSelectMaillageBox);
187 
188  _pCtrlLayout->addSpacing(10);
189 
191  _pCtrlLayout->addStretch(1);
192 
193  // Vue de dessus
195 
197 }
198 
200 {
201  _nbInstance--;
202 
203  if (_pSite)
204  {
205  _pSite->drawGraphic(false);
206  }
207 
208  delete _pEchelleEditor;
209  delete _pPointRefEditor;
210  delete _pOrientationEditor;
211  delete _pEmpriseEditor;
212  delete _pCourbeNiveauEditor;
213  delete _pPlanEauEditor;
214  delete _pTerrainEditor;
215 #if WITH_NMPB
216  delete _pRouteEditor;
217 #endif
219  delete _pEtageEditor;
220  delete _pSilosEditor;
221  delete _pCoursEauEditor;
222  delete _pSourceEditor;
223  delete _pPointCalculEditor;
225  delete _pLinearMaillageEditor;
228 }
229 
231 {
232  return TYModelerFrame::close();
233 }
234 
236 {
237  // If window title is empty, then create it
238  QString windowTitle = this->windowTitle();
239  if (windowTitle.isEmpty())
240  {
241  QString caption(TR("id_caption") + " " + QString("%1").arg(_nbInstance));
242  setWindowTitle(caption);
243  }
244 
245  // Hide previous site, unless it's the same (fix issue #148)
246  if ((_pSite) && (_pSite != pSite))
247  {
248  _pSite->drawGraphic(false);
249  }
250 
251  if (pSite)
252  {
253  _pSite = pSite;
254  _pElement = pSite;
255 
257 
258  if (_pProjet)
259  {
261  }
262 
263  if (!_pElement->getName().isEmpty())
264  {
265  windowTitle += QString(" : %1").arg(_pElement->getName());
266  }
267 
268  // On affiche le site dans ce renderer
269  _pElement->drawGraphic();
270  }
271 
273 
274  updateView();
275 }
276 
278 {
279  if (_pProjet)
280  {
281  _pProjet->drawGraphic(false);
282  }
283 
284  if (pProjet)
285  {
286  _pProjet = pProjet;
287  }
288 
289  setSite(pProjet->getSite());
290 }
291 
293 {
295 }
296 
298 {
299  int mode = _pMaillageRenderModeBox->currentIndex();
300  if ((mode < 0) || (mode >= NbOfRenderMaillageMode))
301  {
302  return;
303  } // sanity check
304 
305  bool updateNeeded = false;
306 
307  // Les maillages ont leur propre type d'interpolation
308  if (getProjet() && getProjet()->getCurrentCalcul())
309  {
310  // Pour chaque maillage
311  for (unsigned int i = 0; i < getProjet()->getMaillages().size(); i++)
312  {
313  // Recuperation de l'objet graphique du maillage
314  TYMaillage* pMaillage = getProjet()->getMaillage(i);
315  LPTYElementGraphic pMGraphic = pMaillage->getGraphicObject();
316 
317  if (TYRectangularMaillageGraphic* pRectGraphic =
318  dynamic_cast<TYRectangularMaillageGraphic*>(pMGraphic.getRealPointer()))
319  {
320  switch (mode)
321  {
322  case Surface:
323  pRectGraphic->setRendering(TYRectangularMaillageGraphic::RENDER_SURF);
324  break;
325  case Lines:
326  pRectGraphic->setRendering(TYRectangularMaillageGraphic::RENDER_LINES);
327  break;
328  case Mixed:
329  pRectGraphic->setRendering(TYRectangularMaillageGraphic::RENDER_MIXED);
330  break;
331  }
332 
333  pMaillage->updateGraphic();
334  updateNeeded = true;
335  }
336  else if (TYBoundaryNoiseMapGraphic* pBoundGraphic =
337  dynamic_cast<TYBoundaryNoiseMapGraphic*>(pMGraphic.getRealPointer()))
338  {
339  switch (mode)
340  {
341  case Surface:
342  pBoundGraphic->setRendering(TYBoundaryNoiseMapGraphic::RENDER_SURF);
343  break;
344  case Lines:
345  pBoundGraphic->setRendering(TYBoundaryNoiseMapGraphic::RENDER_LINES);
346  break;
347  case Mixed:
348  pBoundGraphic->setRendering(TYBoundaryNoiseMapGraphic::RENDER_MIXED);
349  break;
350  }
351 
352  pMaillage->updateGraphic();
353  updateNeeded = true;
354  }
355  }
356 
357  if (updateNeeded)
358  {
360  updateView();
361  }
362  }
363 }
364 
366 {
367  if (!_editorModeAccepted)
368  {
369  getPickEditor()->usePopup(true);
370  getPickEditor()->useHighlight(false);
371 
372  if (_pCurrentEditor)
373  {
376  }
377 
378  _editorModeAccepted = true;
379 
380  switch (mode)
381  {
382  case EchelleMode:
384  break;
385  case PointRefMode:
387  break;
388  case OrientationMode:
390  break;
391  case EmpriseMode:
393  break;
394  case CourbeNiveauMode:
396  break;
397  case TerrainMode:
399  break;
400  case PlanEauMode:
402  break;
403  case CoursEauMode:
405  break;
406  case SrcPonctMode:
408  break;
409  case RecepteurMode:
411  break;
412 #if WITH_NMPB
413  case RouteMode:
414  _pCurrentEditor = _pRouteEditor;
415  break;
416 #endif
417  case ReseauTransportMode:
419  break;
420  case EtageMode:
422  break;
423  case SilosMode:
425  break;
426  case MaillageRectMode:
428  break;
429  case MaillageLinearMode:
431  break;
434  break;
437  break;
438  case PointsCtrlMode:
440  break;
441  default:
442  _editorModeAccepted = false;
443  }
444  }
445 
447 }
448 
449 void TYSiteModelerFrame::updateView(bool clipping /*=true*/, bool axesAndGrid /*=true*/)
450 {
451  // Appel de la methode parent
453  TYModelerFrame::updateView(clipping, axesAndGrid);
454 }
455 
457 {
458  if (_showCrbNiv == show)
459  {
460  return;
461  }
462 
463  _showCrbNiv = show;
464 
467  updateView();
468 
469  _pShowCrbNivBtn->setChecked(_showCrbNiv);
470 }
471 
473 {
474  _pShowAltimetrieBtn->setEnabled(enable);
475 }
476 
478 {
479  if (_showAltimetrie == show)
480  {
481  return;
482  }
483 
484  _showAltimetrie = show;
485 
488  updateView();
489 
491 }
492 
494 {
495  _showImageSite = show;
496 
499  updateView();
500 
501  _pShowImageSiteBtn->setChecked(_showImageSite);
502 }
503 
505 {
506  if (!_pSite)
507  {
508  return;
509  }
510 
511  TYTabCourbeNiveauGeoNode* pTabCrbNivGeoNode = NULL;
512  TYTabTerrainGeoNode* pTabTerrainGeoNode = NULL;
513  TYTabPlanEauGeoNode* pTabPlanEauGeoNode = NULL;
514 
515  // Collecte les site nodes de facon recursive
516  TYTabSiteNodeGeoNode sites;
517 
518  // On collecte l'ensemble des sites
519  sites = _pSite->collectSites();
520 
521  // Pour chaque site
522  for (unsigned int i = 0; i < sites.size(); i++)
523  {
524  // Collecte des courbes
525  pTabCrbNivGeoNode =
526  &(TYSiteNode::safeDownCast(sites[i]->getElement())->getTopographie()->getListCrbNiv());
527 
528  // On recupere tous les actors constituant les courbes de niveau
529  for (unsigned int j = 0; j < pTabCrbNivGeoNode->size(); j++)
530  {
531  pTabCrbNivGeoNode->at(j)->getElement()->getGraphicObject()->setVisible(_showCrbNiv);
532  }
533 
534  // Collecte des terrains et des plans d'eau
535  pTabTerrainGeoNode =
536  &(TYSiteNode::safeDownCast(sites[i]->getElement())->getTopographie()->getListTerrain());
537  for (unsigned int j = 0; j < pTabTerrainGeoNode->size(); j++)
538  {
539  pTabTerrainGeoNode->at(j)->getElement()->getGraphicObject()->setVisible(_showCrbNiv);
540  }
541 
542  pTabPlanEauGeoNode =
543  &(TYSiteNode::safeDownCast(sites[i]->getElement())->getTopographie()->getListPlanEau());
544  for (unsigned int j = 0; j < pTabPlanEauGeoNode->size(); j++)
545  {
546  pTabPlanEauGeoNode->at(j)->getElement()->getGraphicObject()->setVisible(_showCrbNiv);
547  }
548  sites[i]->getElement()->getGraphicObject()->setVisible(_showImageSite);
549  }
550 
551  // Pour l'altimetrie (seul le site root a une alti)
552  _pSite->getAltimetry()->getGraphicObject()->setVisible(_showAltimetrie);
553 
554  // Mise a jour de la transparence de l'altimetrie
556 }
557 
559 {
560  if (!_pSite)
561  {
562  return;
563  }
564 }
565 
567 {
568  float ret = 0.0f;
569  // If the site has a landtake with an altitude defined, then take it as default Z coordinate for site
570  // modeler and its editors.
571  if (_pSite != nullptr)
572  {
573  ret = _pSite->getAltiEmprise();
574  }
575  _defaultZCoord = ret;
576  return ret;
577 }
578 
580 {
581  // Grille
582  _gridDimX = 4000.0f;
583  if (TYPreferenceManager::exists(TYDIRPREFERENCEMANAGER, "GridDimXSite"))
584  {
585  _gridDimX = TYPreferenceManager::getFloat(TYDIRPREFERENCEMANAGER, "GridDimXSite");
586  }
587  else
588  {
589  TYPreferenceManager::setFloat(TYDIRPREFERENCEMANAGER, "GridDimXSite", _gridDimX);
590  }
591 
592  _gridDimY = 4000.0f;
593  if (TYPreferenceManager::exists(TYDIRPREFERENCEMANAGER, "GridDimYSite"))
594  {
595  _gridDimY = TYPreferenceManager::getFloat(TYDIRPREFERENCEMANAGER, "GridDimYSite");
596  }
597  else
598  {
599  TYPreferenceManager::setFloat(TYDIRPREFERENCEMANAGER, "GridDimYSite", _gridDimY);
600  }
601 
602  _gridStep = 500.0f;
603  if (TYPreferenceManager::exists(TYDIRPREFERENCEMANAGER, "GridStepSite"))
604  {
605  _gridStep = TYPreferenceManager::getFloat(TYDIRPREFERENCEMANAGER, "GridStepSite");
606  }
607  else
608  {
609  TYPreferenceManager::setFloat(TYDIRPREFERENCEMANAGER, "GridStepSite", _gridStep);
610  }
611 
612  _gridMagnStep = 5.0f;
613  if (TYPreferenceManager::exists(TYDIRPREFERENCEMANAGER, "GridMagnStepSite"))
614  {
615  _gridMagnStep = TYPreferenceManager::getFloat(TYDIRPREFERENCEMANAGER, "GridMagnStepSite");
616  }
617  else
618  {
619  TYPreferenceManager::setFloat(TYDIRPREFERENCEMANAGER, "GridMagnStepSite", _gridMagnStep);
620  }
621 
629 #if WITH_NMPB
630  _pRouteEditor->setGridMagnStep(_gridMagnStep);
631 #endif
642  resizeGrid();
645  (_curViewType == LeftView));
646 
648 }
649 
651 {
652  _pSelectMaillageBox->clear();
653 
654  // Compteur
655  unsigned int counter = 0;
656 
657  // Pas d'element clicke
658  bool isNull = true;
659 
660  // Premier element vide
661  _pSelectMaillageBox->insertItem(counter++, TR("id_none_select_maillage"));
662 
663  // Les maillages ont leur propre type d'interpolation
664  if (getProjet() && getProjet()->getCurrentCalcul())
665  {
666  // Pour chaque maillage
667  for (unsigned int i = 0; i < getProjet()->getMaillages().size(); ++i)
668  {
669  // Recuperation du maillage
670  TYMaillage* pMaillage = getProjet()->getMaillage(i);
671 
672  // Si il est actif, on le fait apparaitre dans la liste
673  if (pMaillage->etat() == true)
674  {
675  _pSelectMaillageBox->insertItem(counter++, pMaillage->getName());
676  }
677 
678  // Si l'element est picke, on le selectionne dans la liste
679  if (pMaillage->getGraphicObject()->isBoundingBoxVisible())
680  {
681  _pSelectMaillageBox->setCurrentIndex(counter - 1);
682  isNull = false;
683  }
684  }
685 
686  if (isNull)
687  {
688  setSelectMaillageBox(TR("id_none_select_maillage"));
689  }
690  }
691 }
692 
694 {
695  bool isNull = false;
696  if (name == TR("id_none_select_maillage"))
697  {
698  isNull = true;
699  }
700 
701  if (getProjet() && getProjet()->getCurrentCalcul())
702  {
703  // Pour chaque maillage
704  for (unsigned int i = 0; i < getProjet()->getMaillages().size(); i++)
705  {
706  // Recuperation de l'objet graphique du maillage
707  TYMaillage* pMaillage = getProjet()->getMaillage(i);
708 
709  if (isNull)
710  {
711  if (pMaillage->etat() == true)
712  {
713  pMaillage->getGraphicObject()->setVisible(true);
714  if (pMaillage->getGraphicObject()->isBoundingBoxVisible())
715  {
716  getPickEditor()->getPicker()->reset();
717  pMaillage->getGraphicObject()->setBoundingBoxVisible(false);
719  }
720  }
721  }
722  else if (pMaillage->getName() == name)
723  {
724  pMaillage->getGraphicObject()->setVisible(true);
725  getPickEditor()->getPicker()->highlightElement(pMaillage);
727  }
728  else
729  {
730  if (pMaillage->etat() == true)
731  {
732  pMaillage->getGraphicObject()->setVisible(false);
734  }
735  }
736  }
737  }
738 }
739 
741 {
742  return _pMaillageRenderModeBox->currentIndex();
743 }
gestion de l'interaction entre la vue graphique (2D ou 3D) et le clavier et la souris (fichier header...
pour l'application Tympan (fichier header)
Creation of a TYBoundaryNoiseMap (header file)
Graphical representation of the BoundaryNoiseMap entity (header file)
Construit une courbe de niveau a partir des points saisis (fichier header)
std::vector< LPTYCourbeNiveauGeoNode > TYTabCourbeNiveauGeoNode
Collection de noeuds geometriques de type TYCourbeNiveau.
Construit un CoursEau a partir des points saisis (fichier header)
gestion de l'edition de l'echelle (fichier header)
#define TYDIRPREFERENCEMANAGER
Definition: TYElement.h:51
Construit l'emprise a partir des points saisis (fichier header)
Construit un etage a partir des points saisis (fichier header)
Indique si cet editor est actif (fichier header)
edition de l'orientation (fichier header)
gestion de l'element actionne par picking (fichier header)
Construit un plan d'eau a partir des points saisis (fichier header)
std::vector< LPTYPlanEauGeoNode > TYTabPlanEauGeoNode
Collection de noeuds geometriques de type TYPlanEau.
Definition: TYPlanEau.h:202
gestion de l'edition d'un point de calcul (fichier header)
gestion de l'edition des points de reference pour le placement des images de fond (fichier header)
gestion de l'edition d'un maillage rectangulaire (fichier header)
Representation graphique d'un maillage rectangulaire (fichier header)
Construit un reseau de transport a partir des points saisis (fichier header)
Construit une route a partir des points saisis (fichier header)
const char * name
gestion de l'edition d'un silo (fichier header)
#define IMG(id)
#define TR(id)
Classe Modeler specialisee pour l'edition des sites (fichier header)
std::vector< LPTYSiteNodeGeoNode > TYTabSiteNodeGeoNode
Collection de noeuds geometriques de type TYSiteNode.
Definition: TYSiteNode.h:40
gestion de l'edition d'une source (fichier header)
Construit un sol a partir des points saisis (fichier header)
std::vector< LPTYTerrainGeoNode > TYTabTerrainGeoNode
Collection de noeuds geometriques de type TYTerrain.
Definition: TYTerrain.h:181
gestion de l'edition d'un maillage verticale (fichier header)
static OPrototype * safeDownCast(OPrototype *pObject)
Definition: TYElement.cpp:71
T * getRealPointer()
Definition: smartptr.h:291
virtual void close()
Appeler apres l'utilisation de l'editor.
virtual void disconnect()
Deconnecte cet editor a l'interactor associe.
void setGridMagnStep(float gridMagnStep=1.0)
Met Ã&#160; jour le pas de la grille magnétique.
Creation of a TYBoundaryNoiseMap.
Rendering class for the BoundaryNoiseMap entity.
Construit une courbe de niveau a partir des points saisis.
Construit un CoursEau a partir des points saisis.
gestion de l'edition de l'echelle
void reset()
Retourne dans son etat initial.
void highlightElement(TYElement *pElt)
Dessine la boite englobante de l'element passe.
TYElement * getParent() const
Definition: TYElement.h:706
virtual QString getName() const
Definition: TYElement.h:691
Construit l'emprise a partir des points saisis.
Construit un etage a partir des points saisis.
Definition: TYEtageEditor.h:51
Indique si cet editor est actif.
Classe de definition d'un maillage.
Definition: TYMaillage.h:51
virtual bool etat()
Definition: TYMaillage.cpp:616
Generic class for a modeler window.
int _curViewType
The type of the current view.
LPTYElement getElement()
bool _editorModeAccepted
Indicates if the editing mode has been processed.
LPTYElement _pElement
A pointer to the element to edit.
TYRenderWindowInteractor * getView()
TYAbstractSceneEditor * _pCurrentEditor
The current editor.
void setGridLinesActorsVisibility(bool showGridXY, bool showGridXZ, bool showGridZY)
QBoxLayout * _pCtrlLayout
The layout where buttons, etc., are located.
virtual void setViewType(int view)
TYRenderWindowInteractor * _pView
The graphics window.
virtual bool close()
float _gridDimX
Grid dimension in X.
float _gridDimY
Grid dimension in Y.
float _gridStep
Grid step.
virtual void updatePreferences()
float _gridMagnStep
Magnetic grid step.
TYPickEditor * getPickEditor()
virtual void setEditorMode(int mode)
virtual void updateView(bool clipping=true, bool axesAndGrid=true)
float _defaultZCoord
Default Z coordinate for editors.
void invalidateScene(void)
edition de l'orientation
void usePopup(bool state)
Definition: TYPickEditor.h:104
TYElementPicker * getPicker()
Methode qui retourne le picker.
Definition: TYPickEditor.h:51
void useHighlight(bool state)
Definition: TYPickEditor.h:97
Construit un plan d'eau a partir des points saisis.
gestion de l'edition d'un point de calcul
gestion de l'edition des points de reference pour le placement des images de fond
classe de definition d'un projet.
Definition: TYProjet.h:45
TYTabMaillageGeoNode & getMaillages()
Get de la collection de maillages.
Definition: TYProjet.h:261
LPTYSiteNode getSite()
Get du site.
Definition: TYProjet.h:169
LPTYMaillage getMaillage(int index)
Retourne un maillage a partir de son index.
Definition: TYProjet.h:318
gestion de l'edition d'un maillage rectangulaire
classe graphique pour un maillage rectangulaire
TYOpenGLRenderer * getRenderer()
Construit un reseau de transport a partir des points saisis.
Construit une route a partir des points saisis.
Definition: TYRouteEditor.h:34
gestion de l'edition d'un silo
Definition: TYSilosEditor.h:36
TYPointRefEditor * _pPointRefEditor
static int _nbInstance
Nombre d'instance de type TYSiteModelerFrame.
TYPlanEauEditor * _pPlanEauEditor
TYBoundaryNoiseMapEditor * _pBoundaryNoiseMapEditor
TYVerticalMaillageEditor * _pVerticalMaillageEditor
TYCourbeNiveauEditor * _pCourbeNiveauEditor
QComboBox * _pMaillageRenderModeBox
Combo box pour le mode de rendu.
QToolButton * _pShowImageSiteBtn
Bouton pour l'affichage de l'image de site.
virtual void updatePreferences()
TYSilosEditor * _pSilosEditor
virtual void setEditorMode(int mode)
bool _showAltimetrie
Indique si on affiche ou masque l'altimetrie.
virtual void setSelectMaillageBox(const QString &name)
TYSiteModelerFrame(QWidget *parent=0, const char *name=0, Qt::WindowFlags f=Qt::SubWindow)
void setProjet(LPTYProjet pProjet)
LPTYProjet _pProjet
Un pointeur sur le projet a editer.
TYEchelleEditor * _pEchelleEditor
QToolButton * _pShowAltimetrieBtn
Bouton pour l'affichage de l'altimetrie.
TYPointCalculEditor * _pPointCalculEditor
virtual void setMaillageRenderModeSlot()
TYEtageEditor * _pEtageEditor
TYOrientationEditor * _pOrientationEditor
TYEmpriseEditor * _pEmpriseEditor
virtual void setViewType(int view)
TYCoursEauEditor * _pCoursEauEditor
LPTYSiteNode _pSite
Un pointeur sur le site a editer.
bool _showImageSite
Indique si on affiche ou masque l'image de site.
bool _showCrbNiv
Indique si on affiche ou masque les courbes de niveau.
QToolButton * _pShowCrbNivBtn
Bouton pour l'affichage des courbes de niveau.
TYRectangularMaillageEditor * _pRectangularMaillageEditor
void updateAltiOpacity(int view=-1)
void showAltimetrie(bool show)
void showImageSite(bool show)
void setSite(LPTYSiteNode pSite)
TYReseauTransportEditor * _pReseauTransportEditor
QComboBox * _pSelectMaillageBox
Combo box pour le choix du maillage.
TYTerrainEditor * _pTerrainEditor
virtual float getDefaultZCoord()
Returns default Z coordinate for editors This value will depend on the type of modeler and of the fix...
TYLinearMaillageEditor * _pLinearMaillageEditor
void showCrbNiv(bool show)
TYSourceEditor * _pSourceEditor
void enableAltimetrieButton(bool enable)
virtual void updateView(bool clipping=true, bool axesAndGrid=true)
TYTabSiteNodeGeoNode collectSites(bool include=true) const
const double getAltiEmprise() const
Definition: TYSiteNode.h:141
LPTYAltimetrie getAltimetry() const
gestion de l'edition d'une source
Gestion de l'edition d'un maillage verticale.