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> <EDF-R&D> <FRANCE>
3
* This program is free software; you can redistribute it and/or modify
4
* it under the terms of the GNU General Public License as published by
5
* the Free Software Foundation; either version 2 of the License, or
6
* (at your option) any later version.
7
* This program is distributed in the hope that it will be useful,
8
* but WITHOUT ANY WARRANTY; without even the implied warranty of
9
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10
* See the GNU General Public License for more details.
11
* You should have received a copy of the GNU General Public License along
12
* with this program; if not, write to the Free Software Foundation, Inc.,
13
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
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
()->
updateDisplayList
();
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:62
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:66
TYAbstractSceneEditor::_pModeler
TYModelerFrame * _pModeler
Le modeler associe a cet editor.
Definition:
TYAbstractSceneEditor.h:248
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:336
TYMainWindow::setDefaultCameraMode
void setDefaultCameraMode()
Definition:
TYMainWindow.cpp:964
TYModelerFrame
Classe generique pour une fenetre de modeleur.
Definition:
TYModelerFrame.h:65
TYModelerFrame::getView
TYRenderWindowInteractor * getView()
Definition:
TYModelerFrame.h:128
TYModelerFrame::getActionManager
TYActionManager * getActionManager()
Definition:
TYModelerFrame.h:209
TYModelerFrame::askForResetResultat
bool askForResetResultat()
Definition:
TYModelerFrame.cpp:593
TYModelerFrame::updateView
virtual void updateView(bool clipping=true, bool axesAndGrid=true)
Definition:
TYModelerFrame.cpp:1354
TYOpenGLRenderer::updateDisplayList
void updateDisplayList(void)
Definition:
TYOpenGLRenderer.cpp:129
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:80
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:148
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:773
logging.h
Generated on Mon Nov 27 2023 07:56:32 for Code_TYMPAN by
1.9.1