Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYAcousticInterface.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 #ifndef __TY_ACOUSTICINTERFACE__
21 #define __TY_ACOUSTICINTERFACE__
22 
28 
33 {
34  // Methodes
35 public:
40 
52  virtual ~TYAcousticInterface();
53 
55 
60 
68  bool operator==(const TYAcousticInterface& other) const;
72  bool operator!=(const TYAcousticInterface& other) const;
73 
77  void deepCopy(const TYAcousticInterface* pOther, bool copyId = true, bool pUseCopyTag = false);
78 
80 
85 
94  DOM_Element toXML(DOM_Element& domElement);
95 
104  int fromXML(DOM_Element domElement);
105 
107 
112 
116  double getDensiteSrcsH() const
117  {
118  return _densiteSrcsH;
119  }
123  virtual void setDensiteSrcsH(double densite, bool recursif = true);
124 
128  double getDensiteSrcsV() const
129  {
130  return _densiteSrcsV;
131  }
135  virtual void setDensiteSrcsV(double densite, bool recursif = true);
136 
140  double getDensiteSrcs() const;
144  virtual void setDensiteSrcs(double densite, bool recursif = true);
145 
150  {
151  return _isRayonnant;
152  }
153 
157  virtual void setIsRayonnant(bool rayonnant = true, bool recursif = true);
158 
163  {
164  return _typeDistribution;
165  }
169  void setTypeDistribution(int typeDistri);
170 
174  bool getUseAtt() const
175  {
176  return _useAtt;
177  }
181  virtual void setUseAtt(bool state);
182 
187  {
188  return _pAtt;
189  }
193  const LPTYAttenuateur getAtt() const
194  {
195  return _pAtt;
196  }
200  void setAtt(LPTYAttenuateur pAtt);
201 
203 
208 
213  {
214  return _pCurrentSpectre;
215  }
216 
224  virtual void setRegime(TYSpectre& Spectre, int regime = -1, bool recursif = false);
225 
229  virtual int addRegime(const TYRegime& regime);
230 
234  virtual int addRegime();
235 
244  virtual bool remRegime(int regime);
245 
249  virtual void loadRegime(int regimeNb = -1);
250 
254  size_t getNbRegimes() const
255  {
256  return _tabRegimes.size();
257  }
258 
262  void setNbRegimes(unsigned int nb)
263  {
264  _tabRegimes.resize(nb);
265  }
266 
270  TYRegime& getRegimeNb(const int& nb, bool& status);
271  const TYRegime& getRegimeNb(const int& nb, bool& status) const;
272 
276  int getCurRegime() const
277  {
278  return _curRegime;
279  }
280 
284  virtual void setCurRegime(int regimeNumber);
285 
291  virtual void propagateRegime();
292 
294 
299 
306  virtual void propagateAtt(LPTYAttenuateur pAtt);
307 
317 
324  virtual TYSourcePonctuelle srcPonctEquiv() const = 0;
325 
330  virtual void distriSrcs() = 0;
331 
335  virtual void remAllSrcs() = 0;
336 
344  virtual bool setSrcsLw() = 0;
345 
350  virtual bool updateAcoustic(const bool& force = false) = 0;
351 
360  virtual TYSpectre setGlobalLW(const TYSpectre& spectre, const double& surfGlobale,
361  const int& regime = -1);
362 
366  virtual TYRegime buildRegime();
367 
371  virtual void updateCurrentRegime();
372 
377  {
378  return _regimeChangeAble;
379  }
380 
382 
386  virtual int getNextRegimeNb()
387  {
388  return _nextRegime;
389  }
390  virtual const int getNextRegimeNb() const
391  {
392  return _nextRegime;
393  }
394  virtual void setNextRegimeNb(const int& next)
395  {
396  _nextRegime = next;
397  }
398 
402  virtual QString getRegimeName();
403  virtual const QString getRegimeName() const;
404  virtual void setRegimeName(const QString& name);
405 
407  virtual void exportCSV(std::ofstream& ofs);
408 
413  {
417  };
418 
419  // Membres
420 protected:
425 
428 
431 
434 
437 
440 
443 
444  // Spectre de l'etat courant
446 
448  bool _useAtt;
449 
452 
455 };
456 
457 #endif // __TY_ACOUSTICINTERFACE__
QDomElement DOM_Element
Definition: QT2DOM.h:30
std::vector< TYRegime > TYTabRegimes
Tableau de regimes.
Definition: TYRegime.h:206
const char * name
std::vector< LPTYSourcePonctuelleGeoNode > TYTabSourcePonctuelleGeoNode
Collection de noeuds geometriques de type TYSourcePonctuelle.
Spectrum class.
Definition: Spectre.h:25
bool _useAtt
Indique l'utilisation d'un attenuateur pour l'etat courant.
double _densiteSrcsV
Densite verticale de sources.
virtual void updateCurrentRegime()
double getDensiteSrcsH() const
virtual const int getNextRegimeNb() const
virtual void setDensiteSrcsH(double densite, bool recursif=true)
LPTYAttenuateur getAtt()
virtual void setNextRegimeNb(const int &next)
TYRegime & getRegimeNb(const int &nb, bool &status)
size_t getNbRegimes() const
virtual void distriSrcs()=0
double getDensiteSrcsV() const
LPTYAttenuateur _pAtt
Attenuateur de l'etat courant.
virtual TYSourcePonctuelle srcPonctEquiv() const =0
int _curRegime
Numero du regime de fonctionnement courant.
int _typeDistribution
Indique le type de distribution a utiliser. pour l'etat courant.
double _offsetSources
Offset de decalage des sources ponctuelles sur les surfaces.
virtual void loadRegime(int regimeNb=-1)
virtual TYTabSourcePonctuelleGeoNode getSrcs() const =0
TYSpectre & getCurrentSpectre()
void setAtt(LPTYAttenuateur pAtt)
bool operator!=(const TYAcousticInterface &other) const
void setTypeDistribution(int typeDistri)
virtual void setUseAtt(bool state)
TYTabRegimes _tabRegimes
Tableau des regimes de fonctionnement.
virtual void setDensiteSrcsV(double densite, bool recursif=true)
DOM_Element toXML(DOM_Element &domElement)
virtual void exportCSV(std::ofstream &ofs)
Export au format csv sur un flux transmis.
virtual TYSpectre setGlobalLW(const TYSpectre &spectre, const double &surfGlobale, const int &regime=-1)
TYAcousticInterface & operator=(const TYAcousticInterface &other)
void setNbRegimes(unsigned int nb)
virtual void remAllSrcs()=0
virtual QString getRegimeName()
virtual TYRegime buildRegime()
virtual void setRegime(TYSpectre &Spectre, int regime=-1, bool recursif=false)
virtual void setIsRayonnant(bool rayonnant=true, bool recursif=true)
virtual void setCurRegime(int regimeNumber)
const LPTYAttenuateur getAtt() const
int _nextRegime
Numero d'ordre du regime suivant.
int fromXML(DOM_Element domElement)
virtual bool setSrcsLw()=0
virtual void setDensiteSrcs(double densite, bool recursif=true)
bool _regimeChangeAble
Indique si un element peux changer de regime de lui meme.
virtual bool updateAcoustic(const bool &force=false)=0
virtual int getNextRegimeNb()
void deepCopy(const TYAcousticInterface *pOther, bool copyId=true, bool pUseCopyTag=false)
bool operator==(const TYAcousticInterface &other) const
virtual void propagateRegime()
virtual void propagateAtt(LPTYAttenuateur pAtt)
double _densiteSrcsH
Densite horizontale de sources.
virtual bool remRegime(int regime)
virtual void setRegimeName(const QString &name)
bool _isRayonnant
Etat courant de l'element (rayonnant ou non rayonnant)