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"));
130 pRootItem->setExpanded(
true);
148 pRootItem->setExpanded(
true);
162 pListSitesItem->setExpanded(
true);
173 pRootItem->setExpanded(
true);
182 pListPlanEauItem->sortChildren(0, Qt::AscendingOrder);
191 pListCoursEauItem->sortChildren(0, Qt::AscendingOrder);
200 pListCourbeNivItem->sortChildren(0, Qt::AscendingOrder);
211 pTerrainItem->setIcon(0, QPixmap(
IMG(
"id_icon_check")));
215 pTerrainItem->setIcon(0, QPixmap(
IMG(
"id_icon_no_check")));
218 pListTerrainItem->sortChildren(0, Qt::AscendingOrder);
229 pRootItem->setExpanded(
true);
234 for (i = 0; i < pElement->
getSrcs().size(); i++)
240 pListSourcesItem->sortChildren(0, Qt::AscendingOrder);
250 pListBatimentItem->sortChildren(0, Qt::AscendingOrder);
260 pListMachineItem->sortChildren(0, Qt::AscendingOrder);
270 pListResTranspItem->sortChildren(0, Qt::AscendingOrder);
276 for (i = 0; i < pElement->getListRoute().size(); i++)
280 pListRouteItem->sortChildren(0, Qt::AscendingOrder);
335 unsigned int i = 0, j = 0;
345 if (pEtage !=
nullptr)
355 pEtageItem =
new TYElementListItem(pRootItem, pEtage, NULL, QStringList(
TR(
"id_ecran_item")));
369 pEtageItem->sortChildren(0, Qt::AscendingOrder);
384 QPoint point =
_pListView->mapFrom(
this, e->pos());
385 QTreeWidgetItem* item =
_pListView->itemAt(point.x(), point.y() -
_pListView->header()->height());
389 QMenu* pMenu =
new QMenu(
this);
391 int editState = QDialog::Rejected;
393 QAction* prop = NULL;
394 QAction* showModeler = NULL;
395 QAction* calculer = NULL;
396 QAction* position = NULL;
397 QAction* rotation = NULL;
398 QAction* exportXML = NULL;
399 QAction* exportCSV = NULL;
400 QAction* exportLib = NULL;
401 QAction* importLib = NULL;
403 QAction* highlight = NULL;
404 QAction* selectAll = NULL;
405 QAction* unselectAll = NULL;
406 QAction* addMachineXML = NULL;
407 QAction* newMachine = NULL;
408 QAction* addSrcXML = NULL;
409 QAction* newSrc = NULL;
410 QAction* addBatimentXML = NULL;
411 QAction* newBatiment = NULL;
412 QAction* addSiteXML = NULL;
413 QAction* newSite = NULL;
414 QAction* resetDMax = NULL;
418 QMenu* pSubMenuAdd =
new QMenu(
this);
419 pSubMenuAdd->setIcon(QIcon(QPixmap(
IMG(
"id_icon_open"))));
420 pSubMenuAdd->setTitle(
TR(
"id_contextmenu_submenu_add"));
422 QMenu* pSubMenuExport =
new QMenu(
this);
423 pSubMenuExport->setIcon(QIcon(QPixmap(
IMG(
"id_icon_save"))));
424 pSubMenuExport->setTitle(
TR(
"id_contextmenu_submenu_export"));
426 pSubMenuExport->addAction(QIcon(QPixmap(
IMG(
"id_icon_export"))),
TR(
"id_contextmenu_export_lib"));
427 pSubMenuExport->addSeparator();
429 pSubMenuExport->addAction(QIcon(QPixmap(
IMG(
"id_icon_export"))),
TR(
"id_contextmenu_export_xml"));
430 pSubMenuExport->addSeparator();
432 pSubMenuExport->addAction(QIcon(QPixmap(
IMG(
"id_icon_export"))),
TR(
"id_contextmenu_export_csv"));
443 pGraphicObject = pElement->getGraphicObject();
446 prop = pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_editeelt"))),
TR(
"id_contextmenu_properties"));
447 pMenu->addSeparator();
450 if (pSiteNode !=
nullptr)
453 pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_modeler"))),
TR(
"id_contextmenu_modeler"));
455 bool bNotSiteRoot = (pSiteNode && !pSiteNode->
getRoot());
459 pMenu->addSeparator();
462 highlight = pMenu->addAction(
TR(
"id_contextmenu_highlight"));
463 highlight->setCheckable(
true);
465 pMenu->addSeparator();
467 position = pMenu->addAction(
TR(
"id_context_menu_position"));
468 rotation = pMenu->addAction(
TR(
"id_context_menu_rotation"));
469 pMenu->addSeparator();
473 addSiteXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_site_xml"));
474 newSite = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsite"));
475 pSubMenuAdd->addSeparator();
476 addBatimentXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addbatiment_xml"));
477 newBatiment = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newbatiment"));
478 pSubMenuAdd->addSeparator();
479 addMachineXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addmachine_xml"));
480 newMachine = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newmachine"));
481 pSubMenuAdd->addSeparator();
482 addSrcXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addsource_xml"));
483 newSrc = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsource"));
484 pSubMenuAdd->addSeparator();
485 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
486 TR(
"id_contextmenu_import_lib"));
488 pMenu->addMenu(pSubMenuAdd);
491 pMenu->addSeparator();
492 pMenu->addMenu(pSubMenuExport);
497 pMenu->addSeparator();
498 del = pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_del"))),
TR(
"id_contextmenu_delete"));
504 addBatimentXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addbatiment_xml"));
505 newBatiment = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newbatiment"));
506 pSubMenuAdd->addSeparator();
507 addMachineXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addmachine_xml"));
508 newMachine = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newmachine"));
509 pSubMenuAdd->addSeparator();
511 addSrcXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addsource_xml"));
512 newSrc = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsource"));
513 pSubMenuAdd->addSeparator();
515 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
516 TR(
"id_contextmenu_import_lib"));
518 pMenu->addMenu(pSubMenuAdd);
523 pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_modeler"))),
TR(
"id_contextmenu_modeler"));
524 pMenu->addSeparator();
527 highlight = pMenu->addAction(
TR(
"id_contextmenu_highlight"));
528 highlight->setCheckable(
true);
530 pMenu->addSeparator();
533 pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_calcul"))),
TR(
"id_contextmenu_calculer"));
534 pMenu->addSeparator();
535 position = pMenu->addAction(
TR(
"id_context_menu_position"));
536 rotation = pMenu->addAction(
TR(
"id_context_menu_rotation"));
537 pMenu->addSeparator();
538 pMenu->addMenu(pSubMenuExport);
539 pMenu->addSeparator();
540 del = pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_del"))),
TR(
"id_contextmenu_delete"));
542 else if (
dynamic_cast<TYEtage*
>(pElement) !=
nullptr)
546 addMachineXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addmachine_xml"));
547 newMachine = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newmachine"));
548 pSubMenuAdd->addSeparator();
549 addSrcXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addsource_xml"));
550 newSrc = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsource"));
551 pSubMenuAdd->addSeparator();
553 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
554 TR(
"id_contextmenu_import_lib"));
556 pMenu->addMenu(pSubMenuAdd);
562 highlight = pMenu->addAction(
TR(
"id_contextmenu_highlight"));
563 highlight->setCheckable(
true);
565 pMenu->addSeparator();
572 highlight = pMenu->addAction(
TR(
"id_contextmenu_highlight"));
573 highlight->setCheckable(
true);
575 pMenu->addSeparator();
578 pMenu->addMenu(pSubMenuExport);
580 pMenu->addSeparator();
581 del = pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_del"))),
TR(
"id_contextmenu_delete"));
586 del = pMenu->addAction(QIcon(QPixmap(
IMG(
"id_icon_del"))),
TR(
"id_contextmenu_delete"));
595 if ((item->text(0) ==
TR(
"id_list_sources_item")) ||
596 (item->text(0) ==
TR(
"id_list_batiments_item")) ||
597 (item->text(0) ==
TR(
"id_list_machines_item")) || (item->text(0) ==
TR(
"id_list_sites_item")))
599 selectAll = pMenu->addAction(
TR(
"id_contextmenu_selectall"));
600 unselectAll = pMenu->addAction(
TR(
"id_contextmenu_unselectall"));
601 pMenu->addSeparator();
604 if ((item->text(0) ==
TR(
"id_list_sites_item")))
607 addSiteXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_site_xml"));
608 pSubMenuAdd->addSeparator();
609 newSite = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsite"));
610 pSubMenuAdd->addSeparator();
611 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
612 TR(
"id_contextmenu_import_lib"));
614 pMenu->addMenu(pSubMenuAdd);
615 pMenu->addSeparator();
617 else if ((item->text(0) ==
TR(
"id_list_batiments_item")))
620 addBatimentXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addbatiment_xml"));
621 pSubMenuAdd->addSeparator();
622 newBatiment = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newbatiment"));
623 pSubMenuAdd->addSeparator();
624 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
625 TR(
"id_contextmenu_import_lib"));
627 pMenu->addMenu(pSubMenuAdd);
628 pMenu->addSeparator();
630 else if ((item->text(0) ==
TR(
"id_list_machines_item")))
633 addMachineXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addmachine_xml"));
634 pSubMenuAdd->addSeparator();
635 newMachine = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newmachine"));
636 pSubMenuAdd->addSeparator();
637 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
638 TR(
"id_contextmenu_import_lib"));
640 pMenu->addMenu(pSubMenuAdd);
641 pMenu->addSeparator();
643 else if ((item->text(0) ==
TR(
"id_list_sources_item")))
646 addSrcXML = pSubMenuAdd->addAction(
TR(
"id_contextmenu_addsource_xml"));
647 pSubMenuAdd->addSeparator();
648 newSrc = pSubMenuAdd->addAction(
TR(
"id_contextmenu_newsource"));
649 pSubMenuAdd->addSeparator();
650 importLib = pSubMenuAdd->addAction(QIcon(QPixmap(
IMG(
"id_icon_import_lib"))),
651 TR(
"id_contextmenu_import_lib"));
653 pMenu->addMenu(pSubMenuAdd);
654 pMenu->addSeparator();
656 else if ((item->text(0) ==
TR(
"id_list_courbes_item")) ||
657 (item->text(0) ==
TR(
"id_list_planeau_item")))
659 if (item->childCount() > 0)
662 pMenu->addAction(
TR(
"id_contextmenu_DMax"));
667 ret = pMenu->exec(
_pListView->mapToGlobal(point));
674 editState = pElement->edit(
this);
676 if (editState == QDialog::Accepted)
689 pProjet->updateGraphicTree();
694 pElement->updateGraphicTree();
697 else if (pElement && ret == showModeler)
700 if (
dynamic_cast<TYSiteNode*
>(pElement) !=
nullptr)
717 pElt->updateGraphicTree();
726 QMessageBox::warning(
this,
"Tympan",
TR(
"id_warning_notsuppr"));
741 pElt->updateGraphicTree();
750 QMessageBox::warning(
this,
"Tympan",
TR(
"id_warning_notsuppr"));
755 else if (ret == highlight)
759 else if (ret == calculer)
763 else if (ret == position)
767 else if (ret == rotation)
771 else if (ret == exportCSV)
775 else if (ret == exportXML)
779 else if (ret == exportLib)
785 else if (ret == importLib)
787 unsigned int filter = 0;
788 if (
dynamic_cast<TYSiteNode*
>(pElement) !=
nullptr)
796 else if (
dynamic_cast<TYBatiment*
>(pElement) !=
nullptr)
800 else if (
dynamic_cast<TYEtage*
>(pElement) !=
nullptr)
804 else if (
dynamic_cast<TYMachine*
>(pElement) !=
nullptr)
808 else if (
dynamic_cast<TYSource*
>(pElement) !=
nullptr)
815 else if (ret == addSiteXML)
819 else if (ret == newSite)
821 newElt(
"TYSiteNode", pElement);
823 else if (ret == addBatimentXML)
827 else if (ret == newBatiment)
829 newElt(
"TYBatiment", pElement);
831 else if (ret == addMachineXML)
835 else if (ret == newMachine)
837 newElt(
"TYMachine", pElement);
839 else if (ret == addSrcXML)
841 addEltXML(
"TYUserSourcePonctuelle", pElement);
843 else if (ret == newSrc)
845 newElt(
"TYUserSourcePonctuelle", pElement);
851 QMessageBox::warning(
this,
"Tympan",
TR(
"id_warning_notsuppr"));
854 else if (ret == selectAll)
858 else if (ret == unselectAll)
862 else if (ret == resetDMax)
877 const bool& checkable)
904 if (pInfraChild == infra)
906 if (strcmp(className,
"TYMachine") == 0)
910 else if (strcmp(className,
"TYBatiment") == 0)
915 else if (strcmp(className,
"TYRoute") == 0)
920 else if (strcmp(className,
"TYReseauTransport") == 0)
924 else if (strcmp(className,
"TYUserSourcePonctuelle") == 0)
953 if (pTopoChild == topo)
955 if (strcmp(className,
"TYCourbeNiveau") == 0)
959 else if (strcmp(className,
"TYCoursEau") == 0)
963 else if (strcmp(className,
"TYPlanEau") == 0)
967 else if (strcmp(className,
"TYTerrain") == 0)
975 res =
remInTopo(pSiteNode, item, className);
1014 if (strcmp(pParent->
getClassName(),
"TYSiteNode") == 0)
1020 TR(
"id_contextmenu_delete"));
1025 else if (strcmp(pParent->
getClassName(),
"TYInfrastructure") == 0)
1033 if (strcmp(className,
"TYMachine") == 0)
1037 else if (strcmp(className,
"TYBatiment") == 0)
1042 else if (strcmp(className,
"TYRoute") == 0)
1044 res = pInfra->remRoute((LPTYRoute&)pElement);
1047 else if (strcmp(className,
"TYReseauTransport") == 0)
1051 else if (strcmp(className,
"TYUserSourcePonctuelle") == 0)
1062 else if (strcmp(pParent->
getClassName(),
"TYTopographie") == 0)
1071 if (strcmp(className,
"TYCourbeNiveau") == 0)
1075 else if (strcmp(className,
"TYCoursEau") == 0)
1079 else if (strcmp(className,
"TYPlanEau") == 0)
1083 else if (strcmp(className,
"TYTerrain") == 0)
1094 else if (strcmp(pParent->
getClassName(),
"TYBatiment") == 0)
1106 else if (strcmp(pParent->
getClassName(),
"TYEtage") == 0)
1110 if (pEtage !=
nullptr)
1112 if (
dynamic_cast<TYMachine*
>(pElement) !=
nullptr)
1115 TR(
"id_contextmenu_delete"));
1118 else if (
dynamic_cast<TYSource*
>(pElement) !=
nullptr)
1121 TR(
"id_contextmenu_delete"));
1130 if (pAction && res && pModeler)
1179 QString fileName = QFileDialog::getSaveFileName(
this,
"",
getTYApp()->getCurrentDirName(),
"CSV (*.csv)");
1181 if (!fileName.isEmpty())
1183 if (!fileName.endsWith(
".csv"))
1189 ofs.open(fileName.toLatin1().constData(), std::ios_base::out);
1193 ofs.setf(std::ios::fixed, std::ios::floatfield);
1199 if (pVolNode !=
nullptr)
1206 if (pAcLine !=
nullptr)
1213 if (pSource !=
nullptr)
1220 if (pSite !=
nullptr)
1241 pTempNode->
deepCopy(pGeoNode,
true);
1244 if (pElement->
isA(
"TYSiteNode"))
1249 int ret = pDlg->exec();
1252 if ((ret == QDialog::Accepted) && !(
getTYApp()->getCalculManager()->askForResetResultat()))
1254 pGeoNode->
deepCopy(pTempNode,
true);
1264 if (pParent && pParent->
isA(
"TYEtage"))
1285 vec.
_x = oldTyMat.
_m[0][1];
1286 vec.
_y = oldTyMat.
_m[1][1];
1287 vec.
_z = oldTyMat.
_m[2][1];
1291 xv.
_x = oldTyMat.
_m[0][0];
1292 xv.
_y = oldTyMat.
_m[1][0];
1293 xv.
_z = oldTyMat.
_m[2][0];
1297 -atan2(-vec.
_x, vec.
_y));
1307 int ret = pDlg->exec();
1310 if (ret == QDialog::Accepted)
1312 if (
getTYApp()->getCalculManager()->askForResetResultat())
1323 double dRotateX = rot.
_x;
1324 double dRotateY = rot.
_y;
1325 double dRotateZ = rot.
_z;
1339 tyMat =
Repere.asMatrix();
1340 tyMatTmpConcat = tyMat;
1343 tyMat = tyMat * tyMatTmpZ * tyMatTmpY * tyMatTmpX * tyMatTmpConcat;
1358 if (pGraphicObject && pElement)
1360 bool bCenterOnLocate =
false;
1371 for (
int i = 0; i < int(windows.count()); ++i)
1373 QWidget* internal_window = windows.at(i)->widget();
1375 QString qClassName = internal_window->metaObject()->className();
1376 if (qClassName == QString(
"TYSiteModelerFrame"))
1394 QVector3D oBoxCenter = oBoxMin + ((oBoxMax - oBoxMin) / 2);
1395 QVector3D center = repereCenter + oBoxCenter;
1399 for (
int i = 0; i < int(windows.count()); ++i)
1401 QWidget* internal_window = windows.at(i)->widget();
1427 for (
int i = 0; i < int(windows.count()); ++i)
1429 QWidget* internal_window = windows.at(i)->widget();
1431 QString qClassName = internal_window->metaObject()->className();
1432 if (qClassName == QString(
"TYSiteModelerFrame"))
1447 if (
getTYApp()->getCalculManager()->askForResetResultat())
1453 TYElementGraphic* pGraphicObject = pElement->getGraphicObject().getRealPointer();
1456 localise(pElement, pGraphicObject);
1466 pElt->updateGraphicTree();
1482 localise(pElement, pGraphicObject);
1495 if (
getTYApp()->getCalculManager()->askForResetResultat())
1498 for (
unsigned int i = 0; i < elements.size(); ++i)
1510 if (
getTYApp()->getCalculManager()->askForResetResultat())
1512 std::vector<LPTYElement> tabElem;
1515 if (tabElem.size() > 0)
1518 for (
unsigned int i = 0; i < tabElem.size(); i++)
1521 if ((pElt != NULL) && (pElt->
isA(className)))
1539 bool reallyAdd =
true;
1543 if (
dynamic_cast<TYSiteNode*
>(pElt) !=
nullptr)
1560 pSiteNode->updateGraphicTree();
1563 else if (
dynamic_cast<TYBatiment*
>(pElt) !=
nullptr)
1567 if (
dynamic_cast<TYSiteNode*
>(pElement) !=
nullptr)
1584 else if (
dynamic_cast<TYMachine*
>(pElt) !=
nullptr)
1588 if (
dynamic_cast<TYEtage*
>(pElement) !=
nullptr)
1599 pEtage->updateGraphicTree();
1603 TR(
"id_contextmenu_newmachine"));
1608 if (
dynamic_cast<TYSiteNode*
>(pElement) !=
nullptr)
1622 TR(
"id_contextmenu_newmachine"));
1630 if (
dynamic_cast<TYEtage*
>(pElement) !=
nullptr)
1641 pEtage->updateGraphicTree();
1650 if (
dynamic_cast<TYSiteNode*
>(pElement) !=
nullptr)
1669 if (pAction && pModeler)
1693 assert(pSiteNode !=
nullptr);
1713 if ((
dynamic_cast<TYSiteNode*
>(pElt) !=
nullptr))
1751 pElement->updateGraphicTree();
1758 QMessageBox::warning(
this,
"Tympan",
TR(
"id_warning_notsuppr"));
1766 if (pElt->edit(
this) == QDialog::Accepted)
1778 if (
getTYApp()->getCalculManager()->askForResetResultat())
1798 for (
int i = 0; i < item->childCount(); i++)
1802 if (pElement->
isA(
"TYCourbeNiveau"))
1807 else if (pElement->
isA(
"TYPlanEau"))
1822 if (pBatimentParent)
1825 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.