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>
36 #include <qvector3d.h>
57 #define TR(id) OLocalizator::getString("TYSiteFrame", (id))
58 #define IMG(id) OLocalizator::getPicture("TYSiteFrame", (id))
63 QBoxLayout* pLayout =
new QVBoxLayout(
this);
64 pLayout->setContentsMargins(0, 0, 0, 0);
69 QStringList stringList;
70 stringList.append(
TR(
"id_column_site"));
135 pRootItem->setExpanded(
true);
153 pRootItem->setExpanded(
true);
167 pListSitesItem->setExpanded(
true);
178 pRootItem->setExpanded(
true);
188 pListPlanEauItem->sortChildren(0, Qt::AscendingOrder);
197 pListCoursEauItem->sortChildren(0, Qt::AscendingOrder);
207 pListCourbeNivItem->sortChildren(0, Qt::AscendingOrder);
218 pTerrainItem->setIcon(0, QPixmap(
IMG(
"id_icon_check")));
222 pTerrainItem->setIcon(0, QPixmap(
IMG(
"id_icon_no_check")));
225 pListTerrainItem->sortChildren(0, Qt::AscendingOrder);
236 pRootItem->setExpanded(
true);
241 for (i = 0; i < pElement->
getSrcs().size(); i++)
247 pListSourcesItem->sortChildren(0, Qt::AscendingOrder);
257 pListBatimentItem->sortChildren(0, Qt::AscendingOrder);
267 pListMachineItem->sortChildren(0, Qt::AscendingOrder);
277 pListResTranspItem->sortChildren(0, Qt::AscendingOrder);
283 for (i = 0; i < pElement->getListRoute().size(); i++)
287 pListRouteItem->sortChildren(0, Qt::AscendingOrder);
342 unsigned int i = 0, j = 0;
352 if (pEtage !=
nullptr)
362 pEtageItem =
new TYElementListItem(pRootItem, pEtage, NULL, QStringList(
TR(
"id_ecran_item")));
376 pEtageItem->sortChildren(0, Qt::AscendingOrder);
391 QPoint point =
_pListView->mapFrom(
this, e->pos());
392 QTreeWidgetItem* item =
_pListView->itemAt(point.x(), point.y() -
_pListView->header()->height());
396 QMenu* pMenu =
new QMenu(
this);
398 int editState = QDialog::Rejected;
400 QAction* prop = NULL;
401 QAction* showModeler = NULL;
402 QAction* calculer = NULL;
403 QAction* position = NULL;
404 QAction* rotation = NULL;
405 QAction* exportXML = NULL;
406 QAction* exportCSV = NULL;
407 QAction* exportLib = NULL;
408 QAction* importLib = NULL;
410 QAction* highlight = NULL;
411 QAction* selectAll = NULL;
412 QAction* unselectAll = NULL;
413 QAction* addMachineXML = NULL;
414 QAction* newMachine = NULL;
415 QAction* addSrcXML = NULL;
416 QAction* newSrc = NULL;
417 QAction* addBatimentXML = NULL;
418 QAction* newBatiment = NULL;
419 QAction* addSiteXML = NULL;
420 QAction* newSite = NULL;
421 QAction* resetDMax = NULL;
425 QMenu* pSubMenuAdd =
new QMenu(
this);
426 pSubMenuAdd->setIcon(QIcon(QPixmap(
IMG(
"id_icon_open"))));
427 pSubMenuAdd->setTitle(
TR(
"id_contextmenu_submenu_add"));
429 QMenu* pSubMenuExport =
new QMenu(
this);
430 pSubMenuExport->setIcon(QIcon(QPixmap(
IMG(
"id_icon_save"))));
431 pSubMenuExport->setTitle(
TR(
"id_contextmenu_submenu_export"));
433 pSubMenuExport->addAction(QIcon(QPixmap(
IMG(
"id_icon_export"))),
TR(
"id_contextmenu_export_lib"));
434 pSubMenuExport->addSeparator();
436 pSubMenuExport->addAction(QIcon(QPixmap(
IMG(
"id_icon_export"))),
TR(
"id_contextmenu_export_xml"));
437 pSubMenuExport->addSeparator();
439 pSubMenuExport->addAction(QIcon(QPixmap(
IMG(
"id_icon_export"))),
TR(
"id_contextmenu_export_csv"));
450 pGraphicObject = pElement->getGraphicObject();
453 prop = pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_editeelt"))),
TR(
"id_contextmenu_properties"));
454 pMenu->addSeparator();
457 if (pSiteNode !=
nullptr)
460 pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_modeler"))),
TR(
"id_contextmenu_modeler"));
462 bool bNotSiteRoot = (pSiteNode && !pSiteNode->
getRoot());
466 pMenu->addSeparator();
469 highlight = pMenu->addAction(
TR(
"id_contextmenu_highlight"));
470 highlight->setCheckable(
true);
472 pMenu->addSeparator();
474 position = pMenu->addAction(
TR(
"id_context_menu_position"));
475 rotation = pMenu->addAction(
TR(
"id_context_menu_rotation"));
476 pMenu->addSeparator();
480 addSiteXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_site_xml"));
481 newSite = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsite"));
482 pSubMenuAdd->addSeparator();
483 addBatimentXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addbatiment_xml"));
484 newBatiment = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newbatiment"));
485 pSubMenuAdd->addSeparator();
486 addMachineXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addmachine_xml"));
487 newMachine = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newmachine"));
488 pSubMenuAdd->addSeparator();
489 addSrcXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addsource_xml"));
490 newSrc = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsource"));
491 pSubMenuAdd->addSeparator();
492 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
493 TR(
"id_contextmenu_import_lib"));
495 pMenu->addMenu(pSubMenuAdd);
498 pMenu->addSeparator();
499 pMenu->addMenu(pSubMenuExport);
504 pMenu->addSeparator();
505 del = pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_del"))),
TR(
"id_contextmenu_delete"));
511 addBatimentXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addbatiment_xml"));
512 newBatiment = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newbatiment"));
513 pSubMenuAdd->addSeparator();
514 addMachineXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addmachine_xml"));
515 newMachine = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newmachine"));
516 pSubMenuAdd->addSeparator();
518 addSrcXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addsource_xml"));
519 newSrc = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsource"));
520 pSubMenuAdd->addSeparator();
522 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
523 TR(
"id_contextmenu_import_lib"));
525 pMenu->addMenu(pSubMenuAdd);
530 pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_modeler"))),
TR(
"id_contextmenu_modeler"));
531 pMenu->addSeparator();
534 highlight = pMenu->addAction(
TR(
"id_contextmenu_highlight"));
535 highlight->setCheckable(
true);
537 pMenu->addSeparator();
540 pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_calcul"))),
TR(
"id_contextmenu_calculer"));
541 pMenu->addSeparator();
542 position = pMenu->addAction(
TR(
"id_context_menu_position"));
543 rotation = pMenu->addAction(
TR(
"id_context_menu_rotation"));
544 pMenu->addSeparator();
545 pMenu->addMenu(pSubMenuExport);
546 pMenu->addSeparator();
547 del = pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_del"))),
TR(
"id_contextmenu_delete"));
549 else if (
dynamic_cast<TYEtage*
>(pElement) !=
nullptr)
553 addMachineXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addmachine_xml"));
554 newMachine = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newmachine"));
555 pSubMenuAdd->addSeparator();
556 addSrcXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addsource_xml"));
557 newSrc = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsource"));
558 pSubMenuAdd->addSeparator();
560 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
561 TR(
"id_contextmenu_import_lib"));
563 pMenu->addMenu(pSubMenuAdd);
569 highlight = pMenu->addAction(
TR(
"id_contextmenu_highlight"));
570 highlight->setCheckable(
true);
572 pMenu->addSeparator();
579 highlight = pMenu->addAction(
TR(
"id_contextmenu_highlight"));
580 highlight->setCheckable(
true);
582 pMenu->addSeparator();
585 pMenu->addMenu(pSubMenuExport);
587 pMenu->addSeparator();
588 del = pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_del"))),
TR(
"id_contextmenu_delete"));
593 del = pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_del"))),
TR(
"id_contextmenu_delete"));
602 if ((item->text(0) ==
TR(
"id_list_sources_item")) ||
603 (item->text(0) ==
TR(
"id_list_batiments_item")) ||
604 (item->text(0) ==
TR(
"id_list_machines_item")) ||
605 (item->text(0) ==
TR(
"id_list_sites_item")) ||
606 (item->text(0) ==
TR(
"id_list_courbes_item")) ||
607 (item->text(0) ==
TR(
"id_list_planeau_item")))
609 selectAll = pMenu->addAction(
TR(
"id_contextmenu_selectall"));
610 unselectAll = pMenu->addAction(
TR(
"id_contextmenu_unselectall"));
611 pMenu->addSeparator();
614 if ((item->text(0) ==
TR(
"id_list_sites_item")))
617 addSiteXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_site_xml"));
618 pSubMenuAdd->addSeparator();
619 newSite = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsite"));
620 pSubMenuAdd->addSeparator();
621 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
622 TR(
"id_contextmenu_import_lib"));
624 pMenu->addMenu(pSubMenuAdd);
625 pMenu->addSeparator();
627 else if ((item->text(0) ==
TR(
"id_list_batiments_item")))
630 addBatimentXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addbatiment_xml"));
631 pSubMenuAdd->addSeparator();
632 newBatiment = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newbatiment"));
633 pSubMenuAdd->addSeparator();
634 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
635 TR(
"id_contextmenu_import_lib"));
637 pMenu->addMenu(pSubMenuAdd);
638 pMenu->addSeparator();
640 else if ((item->text(0) ==
TR(
"id_list_machines_item")))
643 addMachineXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addmachine_xml"));
644 pSubMenuAdd->addSeparator();
645 newMachine = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newmachine"));
646 pSubMenuAdd->addSeparator();
647 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
648 TR(
"id_contextmenu_import_lib"));
650 pMenu->addMenu(pSubMenuAdd);
651 pMenu->addSeparator();
653 else if ((item->text(0) ==
TR(
"id_list_sources_item")))
656 addSrcXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addsource_xml"));
657 pSubMenuAdd->addSeparator();
658 newSrc = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsource"));
659 pSubMenuAdd->addSeparator();
660 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
661 TR(
"id_contextmenu_import_lib"));
663 pMenu->addMenu(pSubMenuAdd);
664 pMenu->addSeparator();
666 else if ((item->text(0) ==
TR(
"id_list_courbes_item")) ||
667 (item->text(0) ==
TR(
"id_list_planeau_item")))
669 if (item->childCount() > 0)
672 pMenu->addAction(
TR(
"id_contextmenu_DMax"));
677 ret = pMenu->exec(
_pListView->mapToGlobal(point));
684 editState = pElement->edit(
this);
686 if (editState == QDialog::Accepted)
699 pProjet->updateGraphicTree();
704 pElement->updateGraphicTree();
707 else if (pElement && ret == showModeler)
710 if (
dynamic_cast<TYSiteNode*
>(pElement) !=
nullptr)
727 pElt->updateGraphicTree();
736 QMessageBox::warning(
this,
"Tympan",
TR(
"id_warning_notsuppr"));
751 pElt->updateGraphicTree();
760 QMessageBox::warning(
this,
"Tympan",
TR(
"id_warning_notsuppr"));
765 else if (ret == highlight)
769 else if (ret == calculer)
773 else if (ret == position)
777 else if (ret == rotation)
781 else if (ret == exportCSV)
785 else if (ret == exportXML)
789 else if (ret == exportLib)
795 else if (ret == importLib)
797 unsigned int filter = 0;
798 if (
dynamic_cast<TYSiteNode*
>(pElement) !=
nullptr)
806 else if (
dynamic_cast<TYBatiment*
>(pElement) !=
nullptr)
810 else if (
dynamic_cast<TYEtage*
>(pElement) !=
nullptr)
814 else if (
dynamic_cast<TYMachine*
>(pElement) !=
nullptr)
818 else if (
dynamic_cast<TYSource*
>(pElement) !=
nullptr)
825 else if (ret == addSiteXML)
829 else if (ret == newSite)
831 newElt(
"TYSiteNode", pElement);
833 else if (ret == addBatimentXML)
837 else if (ret == newBatiment)
839 newElt(
"TYBatiment", pElement);
841 else if (ret == addMachineXML)
845 else if (ret == newMachine)
847 newElt(
"TYMachine", pElement);
849 else if (ret == addSrcXML)
851 addEltXML(
"TYUserSourcePonctuelle", pElement);
853 else if (ret == newSrc)
855 newElt(
"TYUserSourcePonctuelle", pElement);
861 QMessageBox::warning(
this,
"Tympan",
TR(
"id_warning_notsuppr"));
864 else if (ret == selectAll)
868 else if (ret == unselectAll)
872 else if (ret == resetDMax)
887 const bool& checkable)
914 if (pInfraChild == infra)
916 if (strcmp(className,
"TYMachine") == 0)
920 else if (strcmp(className,
"TYBatiment") == 0)
925 else if (strcmp(className,
"TYRoute") == 0)
930 else if (strcmp(className,
"TYReseauTransport") == 0)
934 else if (strcmp(className,
"TYUserSourcePonctuelle") == 0)
963 if (pTopoChild == topo)
965 if (strcmp(className,
"TYCourbeNiveau") == 0)
969 else if (strcmp(className,
"TYCoursEau") == 0)
973 else if (strcmp(className,
"TYPlanEau") == 0)
977 else if (strcmp(className,
"TYTerrain") == 0)
985 res =
remInTopo(pSiteNode, item, className);
1024 if (strcmp(pParent->
getClassName(),
"TYSiteNode") == 0)
1030 TR(
"id_contextmenu_delete"));
1035 else if (strcmp(pParent->
getClassName(),
"TYInfrastructure") == 0)
1043 if (strcmp(className,
"TYMachine") == 0)
1047 else if (strcmp(className,
"TYBatiment") == 0)
1052 else if (strcmp(className,
"TYRoute") == 0)
1054 res = pInfra->remRoute((LPTYRoute&)pElement);
1057 else if (strcmp(className,
"TYReseauTransport") == 0)
1061 else if (strcmp(className,
"TYUserSourcePonctuelle") == 0)
1072 else if (strcmp(pParent->
getClassName(),
"TYTopographie") == 0)
1081 if (strcmp(className,
"TYCourbeNiveau") == 0)
1085 else if (strcmp(className,
"TYCoursEau") == 0)
1089 else if (strcmp(className,
"TYPlanEau") == 0)
1093 else if (strcmp(className,
"TYTerrain") == 0)
1104 else if (strcmp(pParent->
getClassName(),
"TYBatiment") == 0)
1116 else if (strcmp(pParent->
getClassName(),
"TYEtage") == 0)
1120 if (pEtage !=
nullptr)
1122 if (
dynamic_cast<TYMachine*
>(pElement) !=
nullptr)
1125 TR(
"id_contextmenu_delete"));
1128 else if (
dynamic_cast<TYSource*
>(pElement) !=
nullptr)
1131 TR(
"id_contextmenu_delete"));
1140 if (pAction && res && pModeler)
1189 QString fileName = QFileDialog::getSaveFileName(
this,
"",
getTYApp()->getCurrentDirName(),
"CSV (*.csv)");
1191 if (!fileName.isEmpty())
1193 if (!fileName.endsWith(
".csv"))
1199 ofs.open(fileName.toLatin1().constData(), std::ios_base::out);
1203 ofs.setf(std::ios::fixed, std::ios::floatfield);
1209 if (pVolNode !=
nullptr)
1216 if (pAcLine !=
nullptr)
1223 if (pSource !=
nullptr)
1230 if (pSite !=
nullptr)
1251 pTempNode->
deepCopy(pGeoNode,
true);
1254 if (pElement->
isA(
"TYSiteNode"))
1259 int ret = pDlg->exec();
1262 if ((ret == QDialog::Accepted) && !(
getTYApp()->getCalculManager()->askForResetResultat()))
1264 pGeoNode->
deepCopy(pTempNode,
true);
1274 if (pParent && pParent->
isA(
"TYEtage"))
1295 vec.
_x = oldTyMat.
_m[0][1];
1296 vec.
_y = oldTyMat.
_m[1][1];
1297 vec.
_z = oldTyMat.
_m[2][1];
1301 xv.
_x = oldTyMat.
_m[0][0];
1302 xv.
_y = oldTyMat.
_m[1][0];
1303 xv.
_z = oldTyMat.
_m[2][0];
1307 -atan2(-vec.
_x, vec.
_y));
1317 int ret = pDlg->exec();
1320 if (ret == QDialog::Accepted)
1322 if (
getTYApp()->getCalculManager()->askForResetResultat())
1333 double dRotateX = rot.
_x;
1334 double dRotateY = rot.
_y;
1335 double dRotateZ = rot.
_z;
1349 tyMat =
Repere.asMatrix();
1350 tyMatTmpConcat = tyMat;
1353 tyMat = tyMat * tyMatTmpZ * tyMatTmpY * tyMatTmpX * tyMatTmpConcat;
1368 if (pGraphicObject && pElement)
1370 bool bCenterOnLocate =
false;
1381 for (
int i = 0; i < int(windows.count()); ++i)
1383 QWidget* internal_window = windows.at(i)->widget();
1385 QString qClassName = internal_window->metaObject()->className();
1386 if (qClassName == QString(
"TYSiteModelerFrame"))
1404 QVector3D oBoxCenter = oBoxMin + ((oBoxMax - oBoxMin) / 2);
1405 QVector3D center = repereCenter + oBoxCenter;
1409 for (
int i = 0; i < int(windows.count()); ++i)
1411 QWidget* internal_window = windows.at(i)->widget();
1437 for (
int i = 0; i < int(windows.count()); ++i)
1439 QWidget* internal_window = windows.at(i)->widget();
1441 QString qClassName = internal_window->metaObject()->className();
1442 if (qClassName == QString(
"TYSiteModelerFrame"))
1457 if (
getTYApp()->getCalculManager()->askForResetResultat())
1463 TYElementGraphic* pGraphicObject = pElement->getGraphicObject().getRealPointer();
1466 localise(pElement, pGraphicObject);
1476 pElt->updateGraphicTree();
1492 localise(pElement, pGraphicObject);
1505 if (
getTYApp()->getCalculManager()->askForResetResultat())
1508 for (
unsigned int i = 0; i < elements.size(); ++i)
1520 if (
getTYApp()->getCalculManager()->askForResetResultat())
1522 std::vector<LPTYElement> tabElem;
1525 if (tabElem.size() > 0)
1528 for (
unsigned int i = 0; i < tabElem.size(); i++)
1531 if ((pElt != NULL) && (pElt->
isA(className)))
1549 bool reallyAdd =
true;
1553 if (
dynamic_cast<TYSiteNode*
>(pElt) !=
nullptr)
1570 pSiteNode->updateGraphicTree();
1573 else if (
dynamic_cast<TYBatiment*
>(pElt) !=
nullptr)
1577 if (
dynamic_cast<TYSiteNode*
>(pElement) !=
nullptr)
1594 else if (
dynamic_cast<TYMachine*
>(pElt) !=
nullptr)
1598 if (
dynamic_cast<TYEtage*
>(pElement) !=
nullptr)
1609 pEtage->updateGraphicTree();
1613 TR(
"id_contextmenu_newmachine"));
1618 if (
dynamic_cast<TYSiteNode*
>(pElement) !=
nullptr)
1632 TR(
"id_contextmenu_newmachine"));
1640 if (
dynamic_cast<TYEtage*
>(pElement) !=
nullptr)
1651 pEtage->updateGraphicTree();
1660 if (
dynamic_cast<TYSiteNode*
>(pElement) !=
nullptr)
1679 if (pAction && pModeler)
1703 assert(pSiteNode !=
nullptr);
1723 if ((
dynamic_cast<TYSiteNode*
>(pElt) !=
nullptr))
1761 pElement->updateGraphicTree();
1768 QMessageBox::warning(
this,
"Tympan",
TR(
"id_warning_notsuppr"));
1776 if (pElt->edit(
this) == QDialog::Accepted)
1788 if (
getTYApp()->getCalculManager()->askForResetResultat())
1808 for (
int i = 0; i < item->childCount(); i++)
1812 if (pElement->
isA(
"TYCourbeNiveau"))
1817 else if (pElement->
isA(
"TYPlanEau"))
1832 if (pBatimentParent)
1835 mapEtat[pBatimentParent] =
true;
double RADTODEG(double a)
Converts an angle from radians to degrees.
fichier contenant differents types d'actions (fichier header)
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)
std::map< TYElement *, bool > TYMapPtrElementBool
Etat d'utilisation des elements (utilise par les calculs)
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',...
@ Display
The current render is intended to be displayed on screen.
@ Overlay
The current render pass is for overlay elements.
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)
Helper pour la gestion des arbres Site et Projet (fichier header)
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
void setTo(const QVector3D &_to)
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.
virtual void setIsRayonnant(bool rayonnant=true, bool recursif=true)
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.
TYMapPtrElementBool & getEmitAcVolNode()
Get array containing the state of each volumeNode in transmission.
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
void setBoundingBoxVisible(bool state=true)
bool isBoundingBoxVisible() const
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()
Generic class for a modeler window.
TYRenderWindowInteractor * getView()
TYActionManager * getActionManager()
void removeSelectedElement(TYElement *pElement)
void updateDisplayListOverlay(TYRenderContext &renderContext, TYGeometryNode *pElement, TYGeometryNode *pDansCeRepere)
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...
const TYRenderViewport & getViewport() const
TYOpenGLRenderer * getRenderer()
OGLCamera * getActiveCamera()
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)
void setBatimentParentEmissive(const TYEtage *pEtage)
Rend émissif, dans l'état du calcul courant, le bâtiment parent de l'étage passé en paramètre.
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.
TYRepere getDefaultRepere(TYInfrastructure *pInfra)
Returns default repere with z coordinate corresponding to site altitude This method is used when addi...
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)
const double getAltiEmprise() const
void setAltiEmprise(const double &altiEmprise)
Get/Set de l'altitude associee a la courbe de niveau.
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)
static void capture(QTreeWidget *tree, TYTreeViewState &outState)
Capture l'état complet (expansions + scroll) du QTreeWidget.
static void apply(QTreeWidget *tree, const TYTreeViewState &state)
Applique l'état complet (expansions + scroll) au QTreeWidget.
void exportCSV(std::ofstream &ofs)
Export au format csv sur un flux transmis.
The base exception class for errors due to invalid data.