Code_TYMPAN
4.4.0
Industrial site acoustic simulation
Tympan
gui
app
TYTerrainEditor.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 <qinputdialog.h>
22
23
#include "
Tympan/core/logging.h
"
24
#include "
Tympan/models/business/OLocalizator.h
"
25
#include "
Tympan/models/business/infrastructure/TYSiteNode.h
"
26
#include "
Tympan/models/business/material/TYSol.h
"
27
#include "
Tympan/models/business/topography/TYTerrain.h
"
28
#include "
Tympan/gui/widgets/TYSolWidget.h
"
29
#include "
Tympan/gui/app/TYActions.h
"
30
#include "
Tympan/gui/app/TYApplication.h
"
31
#include "
Tympan/gui/app/TYMainWindow.h
"
32
#include "
Tympan/gui/app/TYModelerFrame.h
"
33
#include "
Tympan/gui/app/TYSiteModelerFrame.h
"
34
#include "
TYTerrainEditor.h
"
35
36
#define TR(id) OLocalizator::getString("TYTerrainEditor"
, (id))
37
38
TYTerrainEditor::TYTerrainEditor
(
TYModelerFrame
* pModeler) :
TYPolyLineEditor
(pModeler)
39
{
40
QObject::connect(
this
, &
TYTerrainEditor::endedSavingPoints
,
this
, &
TYTerrainEditor::endTerrain
);
41
}
42
43
TYTerrainEditor::~TYTerrainEditor
() {}
44
45
void
TYTerrainEditor::endTerrain
()
46
{
47
if
(!(
getSavedPoints
().size() > 2) || (!
_pModeler
->
askForResetResultat
()))
48
{
49
return
;
50
}
51
52
LPTYTerrain
pTerrain =
new
TYTerrain
();
53
LPTYSol
pSol =
new
TYSol
();
54
pTerrain->setSol(pSol);
55
pTerrain->setListPoints(
getSavedPoints
());
56
57
if
(pTerrain->edit(
_pModeler
) == QDialog::Accepted)
58
{
59
TYSiteNode
* pSite = ((
TYSiteModelerFrame
*)
_pModeler
)->getSite();
60
61
// This hardly readable cascade of if is better than no reporting
62
// but should instead be handled with exceptions.
63
if
(pSite->
getTopographie
()->
addTerrain
(pTerrain))
64
{
65
TYAction
* pAction =
new
TYAddElementToTopoAction
((
LPTYElement
&)pTerrain, pSite->
getTopographie
(),
66
_pModeler
,
TR
(
"id_action_addsol"
));
67
_pModeler
->
getActionManager
()->
addAction
(pAction);
68
69
pSite->
getTopographie
()->updateGraphicTree();
70
updateSiteFrame
();
71
_pModeler
->
getView
()->
getRenderer
()->
invalidateScene
();
72
_pModeler
->
updateView
();
73
}
74
75
// repasse en mode camera selection
76
getTYMainWnd
()->
setDefaultCameraMode
();
77
}
78
}
OLocalizator.h
TYActions.h
fichier contenant differents types d'actions (fichier header)
getTYMainWnd
TYMainWindow * getTYMainWnd()
Retourne le pointeur sur la fenetre principale.
Definition:
TYApplication.cpp:63
TYApplication.h
pour l'application Tympan (fichier header)
TYMainWindow.h
Fenetre principale de l'application Tympan (fichier header)
TYModelerFrame.h
Classe generique pour une fenetre de modeleur (fichier header)
TYSiteModelerFrame.h
Classe Modeler specialisee pour l'edition des sites (fichier header)
TYSiteNode.h
TYSolWidget.h
outil IHM pour un sol (fichier header)
TYSol.h
TR
#define TR(id)
Definition:
TYTerrainEditor.cpp:36
TYTerrainEditor.h
Construit un sol a partir des points saisis (fichier header)
TYTerrain.h
SmartPtr
Definition:
smartptr.h:106
TYAbstractSceneEditor::updateSiteFrame
void updateSiteFrame()
Reconstruit l'arborescence du TYSiteFrame.
Definition:
TYAbstractSceneEditor.cpp:69
TYAbstractSceneEditor::_pModeler
TYModelerFrame * _pModeler
Le modeler associe a cet editor.
Definition:
TYAbstractSceneEditor.h:256
TYActionManager::addAction
void addAction(TYAction *pAction)
Ajoute une nouvelle action a l'historique.
Definition:
TYActionManager.cpp:38
TYAction
Definit une action, necessaire pour la gestion de l'undo.
Definition:
TYAction.h:37
TYAddElementToTopoAction
Ajout d'un element a la topographie.
Definition:
TYActions.h:337
TYMainWindow::setDefaultCameraMode
void setDefaultCameraMode()
Definition:
TYMainWindow.cpp:1114
TYModelerFrame
Generic class for a modeler window.
Definition:
TYModelerFrame.h:67
TYModelerFrame::getView
TYRenderWindowInteractor * getView()
Definition:
TYModelerFrame.h:119
TYModelerFrame::getActionManager
TYActionManager * getActionManager()
Definition:
TYModelerFrame.h:200
TYModelerFrame::askForResetResultat
bool askForResetResultat()
Definition:
TYModelerFrame.cpp:599
TYModelerFrame::updateView
virtual void updateView(bool clipping=true, bool axesAndGrid=true)
Definition:
TYModelerFrame.cpp:1344
TYOpenGLRenderer::invalidateScene
void invalidateScene(void)
Definition:
TYOpenGLRenderer.cpp:386
TYPolyLineEditor
gestion de l'edition d'une polyligne
Definition:
TYPolyLineEditor.h:41
TYPolyLineEditor::endedSavingPoints
void endedSavingPoints()
TYPolyLineEditor::getSavedPoints
TYTabPoint & getSavedPoints()
Definition:
TYPolyLineEditor.h:52
TYRenderWindow::getRenderer
TYOpenGLRenderer * getRenderer()
Definition:
TYRenderWindow.cpp:94
TYSiteModelerFrame
Classe Modeler specialisee pour l'edition des sites.
Definition:
TYSiteModelerFrame.h:39
TYSiteNode
Definition:
TYSiteNode.h:43
TYSiteNode::getTopographie
LPTYTopographie getTopographie()
Definition:
TYSiteNode.h:149
TYSol
Definition:
TYSol.h:25
TYTerrainEditor::TYTerrainEditor
TYTerrainEditor(TYModelerFrame *pModeler)
Definition:
TYTerrainEditor.cpp:38
TYTerrainEditor::~TYTerrainEditor
~TYTerrainEditor()
Definition:
TYTerrainEditor.cpp:43
TYTerrainEditor::endTerrain
void endTerrain()
Definition:
TYTerrainEditor.cpp:45
TYTerrain
Definition:
TYTerrain.h:32
TYTopographie::addTerrain
bool addTerrain(LPTYTerrainGeoNode pTerGeoNode)
Definition:
TYTopographie.cpp:772
logging.h
Generated on Thu Feb 19 2026 09:05:51 for Code_TYMPAN by
1.9.1