Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYAcousticVolume.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_ACOUSTICVOLUME__
21 #define __TY_ACOUSTICVOLUME__
22 
23 #include "TYAcousticSurface.h"
29 
33 class TYAcousticVolume : public TYElement,
34  public TYColorInterface,
35  public TYAcousticInterface,
36  public TYVolumeInterface
37 {
40 
41  // Methodes
42 public:
50  TYAcousticVolume(const TYAcousticVolume& other);
54  virtual ~TYAcousticVolume();
55 
59  bool operator==(const TYAcousticVolume& other) const;
61  bool operator!=(const TYAcousticVolume& other) const;
62 
76  virtual bool deepCopy(const TYElement* pOther, bool copyId = true, bool pUseCopyTag = false);
77 
78  virtual std::string toString() const;
79 
80  virtual DOM_Element toXML(DOM_Element& domElement);
81  virtual int fromXML(DOM_Element domElement);
82 
83  virtual void setIsAcousticModified(bool isModified);
84 
85  virtual void propagateRegime();
86  virtual void propagateAtt(LPTYAttenuateur pAtt);
87  virtual TYTabSourcePonctuelleGeoNode getSrcs() const;
88  virtual TYSourcePonctuelle srcPonctEquiv() const;
89  virtual void distriSrcs();
90  virtual void remAllSrcs();
91  virtual bool setSrcsLw();
92  virtual bool updateAcoustic(const bool& force = false);
93 
94  virtual double volume() const;
95  virtual double surface() const;
96  virtual double activeSurface() const;
97  virtual double activeSurface();
98  virtual TYTabVector normals() const;
99  virtual TYTabPoint sommets() const;
100  virtual TYTabLPPolygon faces() const;
101  virtual TYBox volEnglob() const;
102  virtual TYPoint centreGravite() const;
103  virtual int intersects(const TYSegment& seg, TYTabPoint& ptList) const;
104  virtual int isInside(const TYPoint& pt) const;
105  virtual void setIsRayonnant(bool rayonnant = true, bool recursif = true);
106 
111 
120 
132  virtual bool findAcousticSurface(const TYAcousticSurface* pAccSurf, OMatrix* pMatrix = 0);
133 
142  virtual TYSpectre setGlobalLW(const TYSpectre& spectre, const double& surfGlobale,
143  const int& regime = -1);
144 
149  {
150  return _pMateriau._pObj;
151  }
152 
157 
161  virtual void setNextRegimeNb(const int& next)
162  {
163  _nextRegime = next;
164  }
165 
169  virtual void setRegimeName(const QString& name);
170 
174  virtual void inverseNormales();
175 
180  {
182  }
183 
189  virtual void correctNbRegimes();
190 
191  // Membres
192 protected:
195 
198 };
199 
205 typedef std::vector<LPTYAcousticVolumeGeoNode> TYTabAcousticVolumeGeoNode;
206 
207 #endif // __TY_ACOUSTICVOLUME__
QDomElement DOM_Element
Definition: QT2DOM.h:30
std::vector< LPTYAcousticSurface > TYTabLPAcousticSurface
Tableau de TYAcousticSurfaces.
std::vector< LPTYAcousticSurfaceGeoNode > TYTabAcousticSurfaceGeoNode
Collection de noeuds geometriques de type TYAcousticSurface.
std::vector< LPTYAcousticVolumeGeoNode > TYTabAcousticVolumeGeoNode
Collection de noeuds geometriques de type TYAcousticVolume.
SmartPtr< TYAcousticVolumeGeoNode > LPTYAcousticVolumeGeoNode
Smart Pointer sur TYAcousticVolumeGeoNode.
TYGeometryNode TYAcousticVolumeGeoNode
Noeud geometrique de type TYAcousticVolume.
std::vector< TYPoint > TYTabPoint
Collection de TYPoint.
Definition: TYDefines.h:340
std::vector< OVector3D > TYTabVector
Collection de OVector3D.
Definition: TYDefines.h:398
std::vector< LPTYPolygon > TYTabLPPolygon
Collection de pointeurs de TYPolygon.
Definition: TYDefines.h:349
#define OPROTODECL(classname)
Definition: TYElement.h:65
#define TY_EXTENSION_DECL_ONLY(classname)
Definition: TYElement.h:386
const char * name
std::vector< LPTYSourcePonctuelleGeoNode > TYTabSourcePonctuelleGeoNode
Collection de noeuds geometriques de type TYSourcePonctuelle.
The 4x4 matrix class.
Definition: 3d.h:625
T * _pObj
The real pointer, must derived IRefCount.
Definition: smartptr.h:307
int _nextRegime
Numero d'ordre du regime suivant.
virtual TYTabLPAcousticSurface getSubFace()
virtual void setNextRegimeNb(const int &next)
virtual void setRegimeName(const QString &name)
virtual TYPoint centreGravite() const
virtual int isInside(const TYPoint &pt) const
virtual TYTabAcousticSurfaceGeoNode acousticFaces()
virtual void remAllSrcs()
bool operator!=(const TYAcousticVolume &other) const
Operateur !=.
LPTYMateriauConstruction _pMateriau
Materiau de contruction pour les faces de ce Volume.
virtual void propagateRegime()
TYMateriauConstruction * getMateriau() const
virtual TYTabSourcePonctuelleGeoNode getSrcs() const
virtual bool findAcousticSurface(const TYAcousticSurface *pAccSurf, OMatrix *pMatrix=0)
virtual int intersects(const TYSegment &seg, TYTabPoint &ptList) const
TYAcousticVolume & operator=(const TYAcousticVolume &other)
Operateur =.
virtual double activeSurface() const
virtual double surface() const
virtual DOM_Element toXML(DOM_Element &domElement)
virtual TYSourcePonctuelle srcPonctEquiv() const
virtual TYTabLPPolygon faces() const
virtual void distriSrcs()
virtual int fromXML(DOM_Element domElement)
virtual TYSpectre setGlobalLW(const TYSpectre &spectre, const double &surfGlobale, const int &regime=-1)
virtual std::string toString() const
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
virtual double volume() const
virtual void propagateAtt(LPTYAttenuateur pAtt)
virtual void correctNbRegimes()
virtual void setIsAcousticModified(bool isModified)
virtual TYTabPoint sommets() const
virtual TYBox volEnglob() const
bool operator==(const TYAcousticVolume &other) const
Operateur ==.
bool _forceNormales
Persistence du forcage des normales.
virtual bool setSrcsLw()
virtual TYTabVector normals() const
void setMateriau(LPTYMateriauConstruction pMat)
virtual ~TYAcousticVolume()
virtual void setIsRayonnant(bool rayonnant=true, bool recursif=true)
virtual void inverseNormales()
virtual bool updateAcoustic(const bool &force=false)
Definition: TYBox.h:34