Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYResultat.h
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 
16 /*
17  *
18  *
19  *
20  *
21  */
22 
23 #ifndef __TY_RESULTAT__
24 #define __TY_RESULTAT__
25 
26 #include <cstddef>
27 
30 #include "TYPointCalcul.h"
31 
32 class TYTrajet;
33 
35 typedef std::map<TYElement*, int> TYMapElementIndex;
36 
47 class TYResultat : public TYElement
48 {
52 
53  // Methodes
54 public:
60  TYResultat();
61 
67  TYResultat(const TYResultat& other);
68 
74  virtual ~TYResultat();
75 
77  TYResultat& operator=(const TYResultat& other);
78 
80  bool operator==(const TYResultat& other) const;
81 
83  bool operator!=(const TYResultat& other) const;
84 
85  virtual std::string toString() const;
86 
87  virtual DOM_Element toXML(DOM_Element& domElement);
88 
89  virtual int fromXML(DOM_Element domElement);
90 
95  void purge();
96 
102  size_t getNbOfSources() const
103  {
104  return _sources.size();
105  }
106 
112  size_t getInitialNbOfSources() const
113  {
114  return _backupSources.size();
115  }
116 
122  size_t getNbOfRecepteurs() const
123  {
124  return _recepteurs.size();
125  }
126 
131  void addSource(TYElement* pSource);
132 
137  bool addRecepteur(TYElement* pRecepteur);
138 
143  bool remRecepteur(TYPointCalcul* pRecepteur);
144 
149  void buildSources(const TYTabSourcePonctuelleGeoNode& sources);
150 
155  void buildRecepteurs(const TYTabPointCalculGeoNode& sources);
156 
161  void buildMatrix();
162 
169  {
170  return _recepteurs[pRecepteur];
171  }
172 
177  bool setSpectre(TYElement* pRecepteur, TYElement* pSource, OSpectre& Spectre);
178 
183  bool setSpectre(int indexRecepteur, int indexSource, OSpectre& Spectre);
184 
189  static bool setSpectre(int indexRecepteur, int indexSource, OSpectre& Spectre,
190  tympan::SpectrumMatrix& matrix);
191 
196  OSpectre getSpectre(TYElement* pRecepteur, TYElement* pSource);
197 
202  const OSpectre& getSpectre(int indexRecepteur, int indexSource) const;
203 
208  const OSpectre& getElementSpectre(int indexRecepteur, int indexSource) const;
209 
216 
222  OTabSpectre getSpectres(const int& indexRecepteur) const;
223 
228  void remSpectres(TYPointCalcul* pRecepteur);
229 
234  LPTYElement getSource(const int& indexSource);
235 
240  LPTYElement getElementSource(const int& indexSource);
241 
246  LPTYPointCalcul getRecepteur(const int& indexRecepteur);
247 
254  {
255  return _mapEmetteurSources;
256  }
257 
262  std::vector<LPTYElement> getSources();
263 
268  std::vector<LPTYElement> getReceptors();
269 
274  void saveSpectre(const QString& filename, TYCalcul* pSubstCalcul = NULL);
275 
280  void saveValue(const QString& filename, const int& affichage, double freq = 100);
281 
287  void setPartialState(const bool& bPartial);
288  bool getPartialState() const
289  {
290  return _bPartial;
291  }
292 
298  OSpectre getEmergence(OSpectre& spectre, OSpectre& substSpectre);
299 
305  double getEmergence(const double& val1, const double& val2);
306 
312  OSpectre getAmbiant(OSpectre& spectre, OSpectre& substSpectre);
313 
319  double getAmbiant(const double& val1, const double& val2);
320 
325  void buildMapSourceSpectre();
326 
332  std::map<TYElement*, LPTYSpectre>& getMapElementSpectre()
333  {
334  return _mapElementSpectre;
335  }
336 
338  {
339  _matrix = matrix;
340  }
342  {
343  return _matrix;
344  }
346  {
347  _sources = sources;
348  }
349 
350  void setHideLW(bool isHidden = false)
351  {
352  _hideLW = isHidden;
353  }
354  bool isLWHidden() const
355  {
356  return _hideLW;
357  }
358 
359 private:
363  void saveParamValue(QTextStream& ofs, TYCalcul* pCalcul);
364 
365  // Membres
366 protected:
369 
371  bool _bPartial;
374 
377 
380 
382  std::map<TYElement*, LPTYSpectre> _mapElementSpectre;
383 
386 
388  bool _hideLW;
389 };
390 
391 #endif // __TY_RESULTAT__
QDomElement DOM_Element
Definition: QT2DOM.h:30
#define TY_EXT_GRAPHIC_DECL_ONLY(classname)
Definition: TYElement.h:432
#define OPROTODECL(classname)
Definition: TYElement.h:65
#define TY_EXTENSION_DECL_ONLY(classname)
Definition: TYElement.h:386
std::vector< LPTYPointCalculGeoNode > TYTabPointCalculGeoNode
Collection de noeuds geometriques de type TYPointCalcul.
std::map< TYElement *, int > TYMapElementIndex
Map ptrElement-index.
Definition: TYResultat.h:32
std::map< TYElement *, TYTabSourcePonctuelleGeoNode > TYMapElementTabSources
std::vector< LPTYSourcePonctuelleGeoNode > TYTabSourcePonctuelleGeoNode
Collection de noeuds geometriques de type TYSourcePonctuelle.
Spectrum class.
Definition: Spectre.h:25
Calculation program.
Definition: TYCalcul.h:50
Classe de definition d'un point de calcul.C'est une classe derivee a TYPoint avec en plus un spectrep...
Definition: TYPointCalcul.h:33
Classe qui Permet de centraliser les resultats d'un calcul acoustique.
Definition: TYResultat.h:48
std::vector< LPTYElement > getSources()
return the list of all sources (business sources)
Definition: TYResultat.cpp:348
tympan::SpectrumMatrix & getResultMatrix()
Definition: TYResultat.h:341
void buildMatrix()
Construit la matrice resultat a partir des sources et recepteurs entres.
Definition: TYResultat.cpp:427
std::map< TYElement *, LPTYSpectre > _mapElementSpectre
Les spectres de puissance associe a chaque source.
Definition: TYResultat.h:382
void addSource(TYElement *pSource)
Ajoute une source.
Definition: TYResultat.cpp:330
LPTYPointCalcul getRecepteur(const int &indexRecepteur)
Retourne le recepteur corresponadnt a l'indice passe.
Definition: TYResultat.cpp:546
virtual ~TYResultat()
Destructeur. Le destructeur de la classe TYResultat .
Definition: TYResultat.cpp:48
bool isLWHidden() const
Definition: TYResultat.h:354
virtual DOM_Element toXML(DOM_Element &domElement)
Definition: TYResultat.cpp:91
int getIndexRecepteur(TYPointCalcul *pRecepteur)
Retourne l'index d'un recepteur.
Definition: TYResultat.h:168
void buildSources(const TYTabSourcePonctuelleGeoNode &sources)
Construit la liste des sources.
Definition: TYResultat.cpp:338
bool remRecepteur(TYPointCalcul *pRecepteur)
Supprime un recepteur du tableau et indique s'il faut reconstruire la matrice.
Definition: TYResultat.cpp:405
void setPartialState(const bool &bPartial)
Get/Set du parametre de conservation de la matrice brut _bPartial.
Definition: TYResultat.cpp:850
size_t getNbOfRecepteurs() const
Retourne le nombre de recepteurs.
Definition: TYResultat.h:122
tympan::SpectrumMatrix _matrix
La matrice de resultat.
Definition: TYResultat.h:368
bool _bPartial
Sauvegarde de la matrice brute.
Definition: TYResultat.h:371
void saveValue(const QString &filename, const int &affichage, double freq=100)
Sauvegarde des valeurs dans un fichier affichage : false -> dBA et true -> dBLin.
Definition: TYResultat.cpp:699
bool operator==(const TYResultat &other) const
Operateur ==.
Definition: TYResultat.cpp:64
void buildMapSourceSpectre()
Build and store powerSpectrum of all sources in calcul.
Definition: TYResultat.cpp:857
LPTYElement getSource(const int &indexSource)
Retourne la source correspondant a l'indice passe.
Definition: TYResultat.cpp:504
void saveSpectre(const QString &filename, TYCalcul *pSubstCalcul=NULL)
Sauvegarde des spectres dans un fichier.
Definition: TYResultat.cpp:567
void purge()
Reinitialise la matrice resultat.
Definition: TYResultat.cpp:317
OSpectre getEmergence(OSpectre &spectre, OSpectre &substSpectre)
Renvoit la difference entre 2 resultats de calcul (spectre)
Definition: TYResultat.cpp:667
void setSources(TYMapElementIndex sources)
Definition: TYResultat.h:345
bool setSpectre(TYElement *pRecepteur, TYElement *pSource, OSpectre &Spectre)
Assigne un spectre a un couple S-R.
Definition: TYResultat.cpp:432
std::map< TYElement *, LPTYSpectre > & getMapElementSpectre()
access the map of sources with power spectrum
Definition: TYResultat.h:332
void setHideLW(bool isHidden=false)
Definition: TYResultat.h:350
bool addRecepteur(TYElement *pRecepteur)
Ajoute un recepteur et indique s'il faut reconstruire la matrice.
Definition: TYResultat.cpp:384
size_t getInitialNbOfSources() const
Retourne le nombre de sources initialement utilisees par le calcul.
Definition: TYResultat.h:112
TYResultat()
Constructeur. Le constructeur de la classe TYResultat.
Definition: TYResultat.cpp:36
TYMapElementIndex _recepteurs
Les recepteurs contenus dans la matrice resultat.
Definition: TYResultat.h:379
bool getPartialState() const
Definition: TYResultat.h:288
bool operator!=(const TYResultat &other) const
Operateur !=.
Definition: TYResultat.cpp:81
LPTYElement getElementSource(const int &indexSource)
Retourne la source elementaire correspondant a l'indice passe.
Definition: TYResultat.cpp:525
tympan::SpectrumMatrix _backupMatrix
Definition: TYResultat.h:372
OSpectre getAmbiant(OSpectre &spectre, OSpectre &substSpectre)
Renvoi du bruit ambiant.
Definition: TYResultat.cpp:678
TYMapElementIndex _backupSources
Definition: TYResultat.h:373
TYMapElementTabSources _mapEmetteurSources
Tableau associatif "emetteur"/liste des sources de l'emetteur.
Definition: TYResultat.h:385
void remSpectres(TYPointCalcul *pRecepteur)
Efface les spectres d'un recepteur donne.
Definition: TYResultat.cpp:497
void buildRecepteurs(const TYTabPointCalculGeoNode &sources)
Construit la liste des sources.
Definition: TYResultat.cpp:374
TYMapElementIndex _sources
Les sources contenues dans la matrice resultat.
Definition: TYResultat.h:376
void setResultMatrix(tympan::SpectrumMatrix matrix)
Definition: TYResultat.h:337
bool _hideLW
Show / hide power spectrum in result matrix.
Definition: TYResultat.h:388
TYMapElementTabSources & getMapEmetteurSrcs()
Retourne le tableau associatif "emetteur/Liste de sources".
Definition: TYResultat.h:253
void saveParamValue(QTextStream &ofs, TYCalcul *pCalcul)
Definition: TYResultat.cpp:655
virtual std::string toString() const
Definition: TYResultat.cpp:86
std::vector< LPTYElement > getReceptors()
return the list of all sources (business sources)
Definition: TYResultat.cpp:361
TYResultat & operator=(const TYResultat &other)
Operateur =.
Definition: TYResultat.cpp:53
OTabSpectre getSpectres(TYPointCalcul *pRecepteur)
Retourne les spectres pour un recepteur donne.
Definition: TYResultat.cpp:485
OSpectre getSpectre(TYElement *pRecepteur, TYElement *pSource)
Retourne un spectre pour un couple S-R.
Definition: TYResultat.cpp:458
const OSpectre & getElementSpectre(int indexRecepteur, int indexSource) const
Retourne le spectre de la matrice brute (avant condensation)pour un couple S-R (S = Source elementair...
Definition: TYResultat.cpp:480
size_t getNbOfSources() const
Retourne le nombre de sources.
Definition: TYResultat.h:102
virtual int fromXML(DOM_Element domElement)
Definition: TYResultat.cpp:167
This class TYTrajet (journey) links a couple Source-Receptor and a collection of paths,...
Definition: TYTrajet.h:35
Spectrum matrix N*M used to store results. N is the number of receptors. M is the number of sources.
std::vector< OSpectre > OTabSpectre
Spectrums vector.
Definition: spectre.h:472