Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYAcousticVolumeNode.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_ACOUSTICVOLUMENODE__
21 #define __TY_ACOUSTICVOLUMENODE__
22 
23 #include "TYAcousticCylinder.h"
24 #include "TYAcousticSemiCylinder.h"
25 #include "TYAcousticBox.h"
26 
31  public TYColorInterface,
32  public TYAcousticInterface,
33  public TYVolumeInterface
34 {
37 
38  // Methodes
39 public:
51  virtual ~TYAcousticVolumeNode();
52 
56  bool operator==(const TYAcousticVolumeNode& other) const;
58  bool operator!=(const TYAcousticVolumeNode& other) const;
59 
73  virtual bool deepCopy(const TYElement* pOther, bool copyId = true, bool pUseCopyTag = false);
74 
75  virtual std::string toString() const;
76 
77  virtual DOM_Element toXML(DOM_Element& domElement);
78  virtual int fromXML(DOM_Element domElement);
79 
80  virtual void getChilds(LPTYElementArray& childs, bool recursif = true);
81 
82  virtual void setDensiteSrcsH(double densite, bool recursif = true);
83  virtual void setDensiteSrcsV(double densite, bool recursif = true);
84  virtual void propagateAtt(LPTYAttenuateur pAtt);
85 
86  virtual int addRegime();
87  virtual void setRegime(TYSpectre& Spectre, int regime = -1, bool recursif = false);
88  virtual bool remRegime(int regime);
89  virtual void loadRegime(int regimeNb = -1);
90  virtual void setCurRegime(int regime);
91  virtual void setRegimeName(const QString& name);
92 
98  virtual void correctNbRegimes();
99 
100  virtual TYTabSourcePonctuelleGeoNode getSrcs() const;
101  virtual TYSourcePonctuelle srcPonctEquiv() const;
102  virtual void distriSrcs();
103  virtual void remAllSrcs();
104  virtual bool setSrcsLw();
105  virtual bool updateAcoustic(const bool& force = false);
106  virtual void setIsRayonnant(bool rayonnant = true, bool recursif = true);
107 
108  virtual double volume() const;
109  virtual double surface() const;
110  virtual double activeSurface() const;
111  virtual double activeSurface();
112  virtual TYTabVector normals() const;
113  virtual TYTabPoint sommets() const;
114  virtual TYTabLPPolygon faces() const;
115  virtual TYBox volEnglob() const;
116  virtual TYPoint centreGravite() const;
117  virtual int intersects(const OSegment3D& seg, TYTabPoint& ptList) const;
118  virtual int isInside(const TYPoint& pt) const;
119 
124 
133 
138  void purge();
139 
143  size_t getNbChild() const
144  {
145  return _tabAcousticVol.size();
146  }
147 
152  {
153  return _tabAcousticVol;
154  }
159  {
160  return _tabAcousticVol;
161  }
166  {
167  _tabAcousticVol = tab;
168  }
169 
179  bool addAcousticVol(LPTYAcousticVolumeGeoNode pAccVolGeoNode, bool recursif = true);
180 
191  bool addAcousticVol(LPTYAcousticVolume pAccVol, const TYRepere& repere, bool recursif = true);
192 
202  bool addAcousticVol(LPTYAcousticVolume pAccVol, bool recursif = true);
203 
212  bool remAcousticVol(const LPTYAcousticVolumeGeoNode pAccVolGeoNode);
213 
222  bool remAcousticVol(const LPTYAcousticVolume pAccVol);
223 
233  bool remAcousticVol(QString idAccVol);
234 
244 
253 
255  virtual void exportCSV(std::ofstream& ofs);
256 
257  // Membres
258 protected:
261 };
262 
268 typedef std::vector<LPTYAcousticVolumeNodeGeoNode> TYTabAcousticVolumeNodeGeoNode;
269 
270 #endif // __TY_ACOUSTICVOLUMENODE__
QDomElement DOM_Element
Definition: QT2DOM.h:30
std::vector< LPTYAcousticFaceSetGeoNode > TYTabAcousticVolumeGeoNode
Collection de noeuds geometriques de type TYAcousticFaceSet.
std::vector< LPTYAcousticSurfaceGeoNode > TYTabAcousticSurfaceGeoNode
Collection de noeuds geometriques de type TYAcousticSurface.
SmartPtr< TYAcousticVolumeNodeGeoNode > LPTYAcousticVolumeNodeGeoNode
Smart Pointer sur TYAcousticVolumeNodeGeoNode.
TYGeometryNode TYAcousticVolumeNodeGeoNode
Noeud geometrique de type TYAcousticVolumeNode.
std::vector< LPTYAcousticVolumeNodeGeoNode > TYTabAcousticVolumeNodeGeoNode
Collection de noeuds geometriques de type TYAcousticVolumeNode.
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
std::vector< LPTYElement > LPTYElementArray
Definition: TYElement.h:345
#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.
Class to define a segment.
Definition: 3d.h:1089
Spectrum class.
Definition: Spectre.h:25
virtual TYTabAcousticSurfaceGeoNode acousticFaces()
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
virtual void exportCSV(std::ofstream &ofs)
Export au format csv sur un flux transmis.
virtual void setDensiteSrcsV(double densite, bool recursif=true)
virtual TYTabVector normals() const
virtual int fromXML(DOM_Element domElement)
virtual TYPoint centreGravite() const
void setTabAcousticVol(const TYTabAcousticVolumeGeoNode &tab)
bool addAcousticVol(LPTYAcousticVolumeGeoNode pAccVolGeoNode, bool recursif=true)
virtual void setRegime(TYSpectre &Spectre, int regime=-1, bool recursif=false)
virtual bool updateAcoustic(const bool &force=false)
virtual void setIsRayonnant(bool rayonnant=true, bool recursif=true)
virtual double activeSurface() const
TYTabAcousticVolumeGeoNode _tabAcousticVol
Tableau des AcousticVolumes.
virtual int isInside(const TYPoint &pt) const
virtual TYBox volEnglob() const
virtual void propagateAtt(LPTYAttenuateur pAtt)
const TYTabAcousticVolumeGeoNode & getTabAcousticVol() const
virtual TYTabPoint sommets() const
virtual TYTabSourcePonctuelleGeoNode getSrcs() const
virtual DOM_Element toXML(DOM_Element &domElement)
virtual LPTYSpectre getRealPowerSpectrum()
virtual std::string toString() const
LPTYAcousticVolume getAcousticVol(int index)
LPTYAcousticVolumeGeoNode findAcousticVol(const LPTYAcousticVolume pAccVol)
TYAcousticVolumeNode & operator=(const TYAcousticVolumeNode &other)
Operateur =.
virtual double surface() const
virtual void loadRegime(int regimeNb=-1)
virtual TYTabLPPolygon faces() const
bool remAcousticVol(const LPTYAcousticVolumeGeoNode pAccVolGeoNode)
virtual bool remRegime(int regime)
bool operator==(const TYAcousticVolumeNode &other) const
Operateur ==.
virtual double volume() const
virtual int intersects(const OSegment3D &seg, TYTabPoint &ptList) const
TYTabAcousticVolumeGeoNode & getTabAcousticVol()
virtual void setDensiteSrcsH(double densite, bool recursif=true)
bool operator!=(const TYAcousticVolumeNode &other) const
Operateur !=.
virtual void setCurRegime(int regime)
virtual void setRegimeName(const QString &name)
virtual void getChilds(LPTYElementArray &childs, bool recursif=true)
virtual TYSourcePonctuelle srcPonctEquiv() const
Definition: TYBox.h:34