22 #include <qtreewidget.h>
25 #include <qtoolbutton.h>
28 #include <qfiledialog.h>
29 #include <qmessagebox.h>
31 #include <QVBoxLayout>
33 #include <QHeaderView>
35 #include <QMdiSubWindow>
53 #include "Tympan\gui\app\TYActions.h"
55 #define TR(id) OLocalizator::getString("TYSiteFrame", (id))
56 #define IMG(id) OLocalizator::getPicture("TYSiteFrame", (id))
61 QBoxLayout* pLayout =
new QVBoxLayout(
this);
62 pLayout->setContentsMargins(0, 0, 0, 0);
67 QStringList stringList;
68 stringList.append(
TR(
"id_column_site"));
125 pRootItem->setExpanded(
true);
141 pRootItem->setExpanded(
true);
155 pListSitesItem->setExpanded(
true);
166 pRootItem->setExpanded(
true);
201 pTerrainItem->setIcon(0, QPixmap(
IMG(
"id_icon_check")));
205 pTerrainItem->setIcon(0, QPixmap(
IMG(
"id_icon_no_check")));
218 pRootItem->setExpanded(
true);
223 for (i = 0; i < pElement->
getSrcs().size(); i++)
260 for (i = 0; i < pElement->getListRoute().size(); i++)
318 unsigned int i = 0, j = 0;
328 if (pEtage !=
nullptr)
338 pEtageItem =
new TYElementListItem(pRootItem, pEtage, NULL, QStringList(
TR(
"id_ecran_item")));
366 QPoint point =
_pListView->mapFrom(
this, e->pos());
367 QTreeWidgetItem* item =
_pListView->itemAt(point.x(), point.y() -
_pListView->header()->height());
371 QMenu* pMenu =
new QMenu(
this);
373 int editState = QDialog::Rejected;
375 QAction* prop = NULL;
376 QAction* showModeler = NULL;
377 QAction* calculer = NULL;
378 QAction* position = NULL;
379 QAction* rotation = NULL;
380 QAction* exportXML = NULL;
381 QAction* exportCSV = NULL;
382 QAction* exportLib = NULL;
383 QAction* importLib = NULL;
385 QAction* highlight = NULL;
386 QAction* selectAll = NULL;
387 QAction* unselectAll = NULL;
388 QAction* addMachineXML = NULL;
389 QAction* newMachine = NULL;
390 QAction* addSrcXML = NULL;
391 QAction* newSrc = NULL;
392 QAction* addBatimentXML = NULL;
393 QAction* newBatiment = NULL;
394 QAction* addSiteXML = NULL;
395 QAction* newSite = NULL;
396 QAction* resetDMax = NULL;
400 QMenu* pSubMenuAdd =
new QMenu(
this);
401 pSubMenuAdd->setIcon(QIcon(QPixmap(
IMG(
"id_icon_open"))));
402 pSubMenuAdd->setTitle(
TR(
"id_contextmenu_submenu_add"));
404 QMenu* pSubMenuExport =
new QMenu(
this);
405 pSubMenuExport->setIcon(QIcon(QPixmap(
IMG(
"id_icon_save"))));
406 pSubMenuExport->setTitle(
TR(
"id_contextmenu_submenu_export"));
408 pSubMenuExport->addAction(QIcon(QPixmap(
IMG(
"id_icon_export"))),
TR(
"id_contextmenu_export_lib"));
409 pSubMenuExport->addSeparator();
411 pSubMenuExport->addAction(QIcon(QPixmap(
IMG(
"id_icon_export"))),
TR(
"id_contextmenu_export_xml"));
412 pSubMenuExport->addSeparator();
414 pSubMenuExport->addAction(QIcon(QPixmap(
IMG(
"id_icon_export"))),
TR(
"id_contextmenu_export_csv"));
425 pGraphicObject = pElement->getGraphicObject();
428 prop = pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_editeelt"))),
TR(
"id_contextmenu_properties"));
429 pMenu->addSeparator();
432 if (pSiteNode !=
nullptr)
435 pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_modeler"))),
TR(
"id_contextmenu_modeler"));
437 bool bNotSiteRoot = (pSiteNode && !pSiteNode->
getRoot());
441 pMenu->addSeparator();
444 highlight = pMenu->addAction(
TR(
"id_contextmenu_highlight"));
445 highlight->setCheckable(
true);
447 pMenu->addSeparator();
449 position = pMenu->addAction(
TR(
"id_context_menu_position"));
450 rotation = pMenu->addAction(
TR(
"id_context_menu_rotation"));
451 pMenu->addSeparator();
455 addSiteXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_site_xml"));
456 newSite = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsite"));
457 pSubMenuAdd->addSeparator();
458 addBatimentXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addbatiment_xml"));
459 newBatiment = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newbatiment"));
460 pSubMenuAdd->addSeparator();
461 addMachineXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addmachine_xml"));
462 newMachine = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newmachine"));
463 pSubMenuAdd->addSeparator();
464 addSrcXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addsource_xml"));
465 newSrc = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsource"));
466 pSubMenuAdd->addSeparator();
467 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
468 TR(
"id_contextmenu_import_lib"));
470 pMenu->addMenu(pSubMenuAdd);
473 pMenu->addSeparator();
474 pMenu->addMenu(pSubMenuExport);
479 pMenu->addSeparator();
480 del = pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_del"))),
TR(
"id_contextmenu_delete"));
486 addBatimentXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addbatiment_xml"));
487 newBatiment = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newbatiment"));
488 pSubMenuAdd->addSeparator();
489 addMachineXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addmachine_xml"));
490 newMachine = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newmachine"));
491 pSubMenuAdd->addSeparator();
493 addSrcXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addsource_xml"));
494 newSrc = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsource"));
495 pSubMenuAdd->addSeparator();
497 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
498 TR(
"id_contextmenu_import_lib"));
500 pMenu->addMenu(pSubMenuAdd);
505 pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_modeler"))),
TR(
"id_contextmenu_modeler"));
506 pMenu->addSeparator();
509 highlight = pMenu->addAction(
TR(
"id_contextmenu_highlight"));
510 highlight->setCheckable(
true);
512 pMenu->addSeparator();
515 pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_calcul"))),
TR(
"id_contextmenu_calculer"));
516 pMenu->addSeparator();
517 position = pMenu->addAction(
TR(
"id_context_menu_position"));
518 rotation = pMenu->addAction(
TR(
"id_context_menu_rotation"));
519 pMenu->addSeparator();
520 pMenu->addMenu(pSubMenuExport);
521 pMenu->addSeparator();
522 del = pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_del"))),
TR(
"id_contextmenu_delete"));
524 else if (
dynamic_cast<TYEtage*
>(pElement) !=
nullptr)
528 addMachineXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addmachine_xml"));
529 newMachine = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newmachine"));
530 pSubMenuAdd->addSeparator();
531 addSrcXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addsource_xml"));
532 newSrc = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsource"));
533 pSubMenuAdd->addSeparator();
535 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
536 TR(
"id_contextmenu_import_lib"));
538 pMenu->addMenu(pSubMenuAdd);
544 highlight = pMenu->addAction(
TR(
"id_contextmenu_highlight"));
545 highlight->setCheckable(
true);
547 pMenu->addSeparator();
554 highlight = pMenu->addAction(
TR(
"id_contextmenu_highlight"));
555 highlight->setCheckable(
true);
557 pMenu->addSeparator();
560 pMenu->addMenu(pSubMenuExport);
562 pMenu->addSeparator();
563 del = pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_del"))),
TR(
"id_contextmenu_delete"));
568 del = pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_del"))),
TR(
"id_contextmenu_delete"));
577 if ((item->text(0) ==
TR(
"id_list_sources_item")) ||
578 (item->text(0) ==
TR(
"id_list_batiments_item")) ||
579 (item->text(0) ==
TR(
"id_list_machines_item")) || (item->text(0) ==
TR(
"id_list_sites_item")))
581 selectAll = pMenu->addAction(
TR(
"id_contextmenu_selectall"));
582 unselectAll = pMenu->addAction(
TR(
"id_contextmenu_unselectall"));
583 pMenu->addSeparator();
586 if ((item->text(0) ==
TR(
"id_list_sites_item")))
589 addSiteXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_site_xml"));
590 pSubMenuAdd->addSeparator();
591 newSite = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsite"));
592 pSubMenuAdd->addSeparator();
593 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
594 TR(
"id_contextmenu_import_lib"));
596 pMenu->addMenu(pSubMenuAdd);
597 pMenu->addSeparator();
599 else if ((item->text(0) ==
TR(
"id_list_batiments_item")))
602 addBatimentXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addbatiment_xml"));
603 pSubMenuAdd->addSeparator();
604 newBatiment = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newbatiment"));
605 pSubMenuAdd->addSeparator();
606 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
607 TR(
"id_contextmenu_import_lib"));
609 pMenu->addMenu(pSubMenuAdd);
610 pMenu->addSeparator();
612 else if ((item->text(0) ==
TR(
"id_list_machines_item")))
615 addMachineXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addmachine_xml"));
616 pSubMenuAdd->addSeparator();
617 newMachine = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newmachine"));
618 pSubMenuAdd->addSeparator();
619 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
620 TR(
"id_contextmenu_import_lib"));
622 pMenu->addMenu(pSubMenuAdd);
623 pMenu->addSeparator();
625 else if ((item->text(0) ==
TR(
"id_list_sources_item")))
628 addSrcXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addsource_xml"));
629 pSubMenuAdd->addSeparator();
630 newSrc = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsource"));
631 pSubMenuAdd->addSeparator();
632 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
633 TR(
"id_contextmenu_import_lib"));
635 pMenu->addMenu(pSubMenuAdd);
636 pMenu->addSeparator();
638 else if ((item->text(0) ==
TR(
"id_list_courbes_item")) ||
639 (item->text(0) ==
TR(
"id_list_planeau_item")))
641 if (item->childCount() > 0)
644 pMenu->addAction(
TR(
"id_contextmenu_DMax"));
649 ret = pMenu->exec(
_pListView->mapToGlobal(point));
656 editState = pElement->edit(
this);
658 if (editState == QDialog::Accepted)
671 pProjet->updateGraphicTree();
675 pElement->updateGraphicTree();
678 else if (pElement && ret == showModeler)
681 if (
dynamic_cast<TYSiteNode*
>(pElement) !=
nullptr)
698 pElt->updateGraphicTree();
707 QMessageBox::warning(
this,
"Tympan",
TR(
"id_warning_notsuppr"));
722 pElt->updateGraphicTree();
731 QMessageBox::warning(
this,
"Tympan",
TR(
"id_warning_notsuppr"));
736 else if (ret == highlight)
740 else if (ret == calculer)
744 else if (ret == position)
748 else if (ret == rotation)
752 else if (ret == exportCSV)
756 else if (ret == exportXML)
760 else if (ret == exportLib)
766 else if (ret == importLib)
768 unsigned int filter = 0;
769 if (
dynamic_cast<TYSiteNode*
>(pElement) !=
nullptr)
777 else if (
dynamic_cast<TYBatiment*
>(pElement) !=
nullptr)
781 else if (
dynamic_cast<TYEtage*
>(pElement) !=
nullptr)
785 else if (
dynamic_cast<TYMachine*
>(pElement) !=
nullptr)
789 else if (
dynamic_cast<TYSource*
>(pElement) !=
nullptr)
796 else if (ret == addSiteXML)
800 else if (ret == newSite)
802 newElt(
"TYSiteNode", pElement);
804 else if (ret == addBatimentXML)
808 else if (ret == newBatiment)
810 newElt(
"TYBatiment", pElement);
812 else if (ret == addMachineXML)
816 else if (ret == newMachine)
818 newElt(
"TYMachine", pElement);
820 else if (ret == addSrcXML)
822 addEltXML(
"TYUserSourcePonctuelle", pElement);
824 else if (ret == newSrc)
826 newElt(
"TYUserSourcePonctuelle", pElement);
832 QMessageBox::warning(
this,
"Tympan",
TR(
"id_warning_notsuppr"));
835 else if (ret == selectAll)
839 else if (ret == unselectAll)
843 else if (ret == resetDMax)
858 const bool& checkable)
885 if (pInfraChild == infra)
887 if (strcmp(className,
"TYMachine") == 0)
891 else if (strcmp(className,
"TYBatiment") == 0)
896 else if (strcmp(className,
"TYRoute") == 0)
901 else if (strcmp(className,
"TYReseauTransport") == 0)
905 else if (strcmp(className,
"TYUserSourcePonctuelle") == 0)
934 if (pTopoChild == topo)
936 if (strcmp(className,
"TYCourbeNiveau") == 0)
940 else if (strcmp(className,
"TYCoursEau") == 0)
944 else if (strcmp(className,
"TYPlanEau") == 0)
948 else if (strcmp(className,
"TYTerrain") == 0)
956 res =
remInTopo(pSiteNode, item, className);
1001 TR(
"id_contextmenu_delete"));
1006 else if (strcmp(pParent->
getClassName(),
"TYInfrastructure") == 0)
1014 if (strcmp(className,
"TYMachine") == 0)
1018 else if (strcmp(className,
"TYBatiment") == 0)
1023 else if (strcmp(className,
"TYRoute") == 0)
1025 res = pInfra->remRoute((LPTYRoute&)pElement);
1028 else if (strcmp(className,
"TYReseauTransport") == 0)
1032 else if (strcmp(className,
"TYUserSourcePonctuelle") == 0)
1043 else if (strcmp(pParent->
getClassName(),
"TYTopographie") == 0)
1052 if (strcmp(className,
"TYCourbeNiveau") == 0)
1056 else if (strcmp(className,
"TYCoursEau") == 0)
1060 else if (strcmp(className,
"TYPlanEau") == 0)
1064 else if (strcmp(className,
"TYTerrain") == 0)
1075 else if (strcmp(pParent->
getClassName(),
"TYBatiment") == 0)
1087 else if (strcmp(pParent->
getClassName(),
"TYEtage") == 0)
1091 if (pEtage !=
nullptr)
1093 if (
dynamic_cast<TYMachine*
>(pElement) !=
nullptr)
1096 TR(
"id_contextmenu_delete"));
1099 else if (
dynamic_cast<TYSource*
>(pElement) !=
nullptr)
1102 TR(
"id_contextmenu_delete"));
1160 QString fileName = QFileDialog::getSaveFileName(
this,
"",
getTYApp()->getCurrentDirName(),
"CSV (*.csv)");
1162 if (!fileName.isEmpty())
1164 if (!fileName.endsWith(
".csv"))
1170 ofs.open(fileName.toLatin1().constData(), std::ios_base::out);
1174 ofs.setf(std::ios::fixed, std::ios::floatfield);
1180 if (pVolNode !=
nullptr)
1187 if (pAcLine !=
nullptr)
1194 if (pSource !=
nullptr)
1201 if (pSite !=
nullptr)
1222 pTempNode->
deepCopy(pGeoNode,
true);
1225 if (pElement->
isA(
"TYSiteNode"))
1230 int ret = pDlg->exec();
1233 if ((ret == QDialog::Accepted) && !(
getTYApp()->getCalculManager()->askForResetResultat()))
1235 pGeoNode->
deepCopy(pTempNode,
true);
1245 if (pParent && pParent->
isA(
"TYEtage"))
1266 vec.
_x = oldTyMat.
_m[0][1];
1267 vec.
_y = oldTyMat.
_m[1][1];
1268 vec.
_z = oldTyMat.
_m[2][1];
1272 xv.
_x = oldTyMat.
_m[0][0];
1273 xv.
_y = oldTyMat.
_m[1][0];
1274 xv.
_z = oldTyMat.
_m[2][0];
1278 -atan2(-vec.
_x, vec.
_y));
1288 int ret = pDlg->exec();
1291 if (ret == QDialog::Accepted)
1293 if (
getTYApp()->getCalculManager()->askForResetResultat())
1304 double dRotateX = rot.
_x;
1305 double dRotateY = rot.
_y;
1306 double dRotateZ = rot.
_z;
1320 tyMat =
Repere.asMatrix();
1321 tyMatTmpConcat = tyMat;
1324 tyMat = tyMat * tyMatTmpZ * tyMatTmpY * tyMatTmpX * tyMatTmpConcat;
1339 if (pGraphicObject && pElement)
1341 bool bCenterOnLocate =
false;
1352 for (
int i = 0; i < int(windows.count()); ++i)
1354 QWidget* internal_window = windows.at(i)->widget();
1356 QString qClassName = internal_window->metaObject()->className();
1357 if (qClassName == QString(
"TYSiteModelerFrame"))
1376 NxVec3 oBoxCenter = oBoxMin + ((oBoxMax - oBoxMin) / 2);
1377 NxVec3 center = repereCenter + oBoxCenter;
1381 for (
int i = 0; i < int(windows.count()); ++i)
1383 QWidget* internal_window = windows.at(i)->widget();
1405 for (
int i = 0; i < int(windows.count()); ++i)
1407 QWidget* internal_window = windows.at(i)->widget();
1409 QString qClassName = internal_window->metaObject()->className();
1410 if (qClassName == QString(
"TYSiteModelerFrame"))
1425 if (
getTYApp()->getCalculManager()->askForResetResultat())
1431 TYElementGraphic* pGraphicObject = pElement->getGraphicObject().getRealPointer();
1434 localise(pElement, pGraphicObject);
1444 pElt->updateGraphicTree();
1460 localise(pElement, pGraphicObject);
1473 if (
getTYApp()->getCalculManager()->askForResetResultat())
1476 for (
unsigned int i = 0; i < elements.size(); ++i)
1488 if (
getTYApp()->getCalculManager()->askForResetResultat())
1490 vector<LPTYElement> tabElem;
1493 if (tabElem.size() > 0)
1496 for (
unsigned int i = 0; i < tabElem.size(); i++)
1499 if ((pElt != NULL) && (pElt->
isA(className)))
1517 bool reallyAdd =
true;
1521 if (
dynamic_cast<TYSiteNode*
>(pElt) !=
nullptr)
1536 pSiteNode->updateGraphicTree();
1539 else if (
dynamic_cast<TYBatiment*
>(pElt) !=
nullptr)
1543 if (
dynamic_cast<TYSiteNode*
>(pElement) !=
nullptr)
1560 else if (
dynamic_cast<TYMachine*
>(pElt) !=
nullptr)
1564 if (
dynamic_cast<TYEtage*
>(pElement) !=
nullptr)
1570 pEtage->updateGraphicTree();
1574 TR(
"id_contextmenu_newmachine"));
1579 if (
dynamic_cast<TYSiteNode*
>(pElement) !=
nullptr)
1593 TR(
"id_contextmenu_newmachine"));
1601 if (
dynamic_cast<TYEtage*
>(pElement) !=
nullptr)
1607 pEtage->updateGraphicTree();
1616 if (
dynamic_cast<TYSiteNode*
>(pElement) !=
nullptr)
1668 if ((
dynamic_cast<TYSiteNode*
>(pElt) !=
nullptr))
1706 pElement->updateGraphicTree();
1713 QMessageBox::warning(
this,
"Tympan",
TR(
"id_warning_notsuppr"));
1721 if (pElt->edit(
this) == QDialog::Accepted)
1733 if (
getTYApp()->getCalculManager()->askForResetResultat())
1753 for (
int i = 0; i < item->childCount(); i++)
1757 if (pElement->
isA(
"TYCourbeNiveau"))
1762 else if (pElement->
isA(
"TYPlanEau"))
double RADTODEG(double a)
Converts an angle from radians to degrees.
Boite de dialogue pour l'ajout d'un element dans la bibliotheque (fichier header)
TYApplication * getTYApp()
Retourne le pointeur sur l'application.
TYMainWindow * getTYMainWnd()
Retourne le pointeur sur la fenetre principale.
pour l'application Tympan (fichier header)
Frame pour les messages de retour (fichier header)
std::vector< LPTYElement > LPTYElementArray
#define TYDIRPREFERENCEMANAGER
Boite de dialogue pour la lecture d'un element dans la bibliotheque (fichier header)
Fenetre principale de l'application Tympan (fichier header)
Classe generique pour une fenetre de modeleur (fichier header)
boite de dialogue pour la gestion de la position selon les modes 'moving', 'rotation',...
Le role de cette classe est limite a emettre des signaux pouvant etre utilise pour interagir sur le r...
Boite de dialogue pour la saisie de la l'angle des objets (fichier header)
Frame pour la gestion de site (fichier header)
const NxReal * get() const
OPoint3D _min
Minimal coordinates of the OBox.
OPoint3D _max
Maximal coordinates of the OBox.
double _y
y coordinate of OCoord3D
double _z
z coordinate of OCoord3D
double _x
x coordinate of OCoord3D
int setRotationOz(double a)
Update a rotation matrix (Oz axis).
int setRotationOy(double a)
Update a rotation matrix (Oy axis).
int setRotationOx(double a)
Update a rotation matrix (Ox axis).
double _m[4][4]
The 4x4 matrix array.
virtual const char * getClassName() const
static OPrototype * safeDownCast(OPrototype *pObject)
static OPrototype * findAndClone(const char *className)
bool isA(const char *className) const
3D frame with a point and 3 vectors.
OPoint3D _origin
The origin point.
void set(vec3 _U, vec3 _V, vec3 _W, vec3 _O)
Set global coordinates of local axis U,V,W and origin O.
T * _pObj
The real pointer, must derived IRefCount.
void exportCSV(std::ofstream &ofs)
Export au format csv sur un flux transmis.
virtual void exportCSV(std::ofstream &ofs)
Export au format csv sur un flux transmis.
LPTYAcousticVolume getAcousticVol(int index)
bool remAcousticVol(const LPTYAcousticVolumeGeoNode pAccVolGeoNode)
TYTabAcousticVolumeGeoNode & getTabAcousticVol()
void addAction(TYAction *pAction)
Ajoute une nouvelle action a l'historique.
Definit une action, necessaire pour la gestion de l'undo.
ajout d'un element a un etage
Ajout d'un element a une infrastructure.
Boite de dialogue pour l'ajout d'un element dans la bibliotheque.
void setElement(LPTYElement element)
Acces a l'element.
ajout d'une machine a un etage
Action d'ajout d'un site a un ensemble de sites.
LPTYProjet getCurProjet()
Set/Get du projet courant.
TYMainWindow * getMainWnd()
Get de la fenetre principale.
TYCalculManager * getCalculManager()
Get du gestionnaire de calculs.
bool updateAcoustic(TYElement *pElement)
Appelle la methode de calcul acoustique du volume node passe.
void getCalculElements(LPTYSiteNode pSite)
Recover all the elements of the scene which take part in the calculation.
bool addToSelection(TYUUID id)
Adds the item to the selection of this Calculation.
void setIsDMaxDefault(const bool &etat)
classe graphique pour un element de base
virtual void computeBoundingBox()
void highlight(bool state=true)
Frame pour les messages de retour.
bool isElementItem()
Indique si un element est associe a cet item.
void updateContent()
Mets a jour le contenu des colonnes.
LPTYElement getElement()
Retourne l'element associe a cet item.
void remove()
Supprime l'item de la liste.
void setCheckState(int column, Qt::CheckState state)
Reimplementation.
TYElement * getParent() const
static void setIsSavedOk(const bool &toSave)
virtual void setIsAcousticModified(bool isModified)
virtual void setIsGeometryModified(bool isModified)
TYTabUserSourcePonctuelleGeoNode & getTabSources()
TYTabMachineGeoNode & getTabMachine()
LPTYUserSourcePonctuelle getSource(int index)
bool remSource(const LPTYUserSourcePonctuelleGeoNode pSourceGeoNode)
bool addSource(LPTYUserSourcePonctuelleGeoNode pSourceGeoNode)
LPTYMachine getMachine(int index)
bool addMachine(LPTYMachineGeoNode pMachineGeoNode)
bool remMachine(const LPTYMachineGeoNode pMachineGeoNode)
const ORepere3D & getORepere3D() const
TYElement * getElement() const
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
OMatrix getMatrix() const
static TYGeometryNode * GetGeoNode(TYElement *pElement)
void setRepere(const ORepere3D &repere)
Boite de dialogue pour la lecture d'un element dans la bibliotheque.
LPTYElementArray getElements()
TYTabBatimentGeoNode & getListBatiment()
bool remSrc(const LPTYUserSourcePonctuelle pSrc)
LPTYUserSourcePonctuelleGeoNode getSrc(int index)
LPTYMachineGeoNode getMachine(int index)
LPTYReseauTransport getResTrans(int index)
TYTabUserSourcePonctuelleGeoNode & getSrcs()
LPTYBatimentGeoNode getBatiment(int index)
TYTabReseauTransportGeoNode & getListResTrans()
bool addBatiment(LPTYBatimentGeoNode pBatimentGeoNode)
bool addMachine(LPTYMachineGeoNode pMachineGeoNode)
bool addSrc(LPTYUserSourcePonctuelle pSrc)
bool remResTrans(const LPTYReseauTransportGeoNode pResTransGeoNode)
bool remMachine(const LPTYMachine pMachine)
bool remBatiment(const LPTYBatimentGeoNode pBatimentGeoNode)
TYTabMachineGeoNode & getListMachine()
void makeSiteModeler(LPTYSiteNode pSite=NULL)
bool makeBatimentModeler(LPTYBatiment pBatiment=NULL)
bool makeModeler(TYElement *pElt)
void updateModelers(bool clipping=true, bool axesAndGrid=true, bool displayList=true)
bool makeMachineModeler(LPTYMachine pMachine=NULL)
QMdiArea * getWorkspace()
void closeModeler(const TYElement *pElement)
TYModelerFrame * getCurrentModeler()
TYSpectre & getSpectreAbso()
TYSpectre & getSpectreTransm()
Classe generique pour une fenetre de modeleur.
TYActionManager * getActionManager()
void removeSelectedElement(TYElement *pElement)
void updateDisplayListOverlay(TYGeometryNode *pElement, TYGeometryNode *pDansCeRepere)
OGLCamera * getActiveCamera()
void addSelectedElement(TYElement *pElement)
void setIsDMaxDefault(const bool &etat)
boite de dialogue pour la gestion de la position selon les modes 'moving', 'rotation',...
void setHauteurEnabled(const bool &enable)
Get/Set de l'etat de la zone de saisie des hauteurs.
classe de definition d'un projet.
LPTYSiteNode getSite()
Get du site.
suppression d'un element a un etage
Suppression d'un element a une infrastructure.
Suppression d'un element a la topographie.
suppression d'une machine a un etage
Action de suppression d'un site a un ensemble de sites.
Le role de cette classe est limite a emettre des signaux pouvant etre utilise pour interagir sur le r...
TYOpenGLRenderer * getRenderer()
Boite de dialogue pour la saisie de la l'angle des objets.
bool getConcatenateStatus()
Retourne l'etat du checkbox de concatenation des rotations.
void newElt(const char *className, TYElement *pElement)
void openModeler(QTreeWidgetItem *item, int column)
void changeRotation(TYElement *pElement)
bool remFromList(TYElementListItem *item)
TYSiteFrame(QWidget *parent=0, const char *name=0, Qt::WindowFlags f=QFlag(0))
void selectOrUnselectAll(TYElementListItem *item, const bool &bSelect)
void addEltXML(const char *className, TYElement *pElement)
LPTYCalcul _pCurrentCalcul
L'Id du calcul courant.
void setDMaxDefault(TYElementListItem *item)
void changePos(TYElement *pElement)
LPTYSiteNode _pSiteNodeRoot
Le site node root.
void localise(TYElement *pElement, TYElementGraphic *pGraphicObject)
void addElt(TYElement *pElement, TYElement *pElt)
bool supprime(TYElementListItem *eltItem)
void setSiteNodeRoot(LPTYSiteNode pSiteNode)
bool remFromSite(TYElement *pElement)
TYElementListItem * addToList(LPTYSiteNode pElement, TYElementListItem *parent=NULL)
void exportEXCEL(TYElement *pElement)
TYElementListItem * addEltToList(LPTYElement pElement, TYElementListItem *parent=NULL, const bool &chekable=false)
void importFromLib(const unsigned int &filter, TYElement *pElement)
virtual void contextMenuEvent(QContextMenuEvent *e)
bool remInTopo(LPTYSiteNode _siteNode, TYElementListItem *item, const char *className)
bool remInInfra(LPTYSiteNode _siteNode, TYElementListItem *item, const char *className)
void apply(QTreeWidgetItem *item, int col)
LPTYTopographie getTopographie()
virtual void setIsGeometryModified(bool isModified)
bool remSiteNode(const LPTYSiteNodeGeoNode pSiteNodeGeoNode)
LPTYInfrastructure getInfrastructure()
virtual void updateAcoustique(const bool &force=false)
void update(const bool &force=false)
TYTabSiteNodeGeoNode & getListSiteNode()
bool addSiteNode(LPTYSiteNodeGeoNode pSiteNodeGeoNode)
virtual void exportCSV(std::ofstream &ofs)
Export au format csv sur un flux transmis.
TYTerrain * getDefTerrain()
LPTYCourbeNiveau getCrbNiv(int index)
TYTabPlanEauGeoNode & getListPlanEau()
bool remCrbNiv(const LPTYCourbeNiveauGeoNode pCrbNivGeoNode)
LPTYCoursEau getCrsEau(int index)
bool remPlanEau(const LPTYPlanEauGeoNode pPlanEauGeoNode)
TYTabCoursEauGeoNode & getListCrsEau()
LPTYPlanEau getPlanEau(int index)
LPTYTerrain getTerrain(int index)
bool remCrsEau(const LPTYCoursEauGeoNode pCoursEauGeoNode)
TYTabCourbeNiveauGeoNode & getListCrbNiv()
TYTabTerrainGeoNode & getListTerrain()
bool remTerrain(const LPTYTerrainGeoNode pTerGeoNode)
void exportCSV(std::ofstream &ofs)
Export au format csv sur un flux transmis.
The base exception class for errors due to invalid data.