Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYAcousticCylinder.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_ACOUSTICCYLINDER__
21 #define __TY_ACOUSTICCYLINDER__
22 
23 #include "TYAcousticCircle.h"
25 #include "TYAcousticVolume.h"
26 
31 {
35 
36  // Methodes
37 public:
49  virtual ~TYAcousticCylinder();
50 
54  bool operator==(const TYAcousticCylinder& other) const;
56  bool operator!=(const TYAcousticCylinder& other) const;
57 
71  virtual bool deepCopy(const TYElement* pOther, bool copyId = true, bool pUseCopyTag = false);
72 
73  virtual std::string toString() const;
74 
75  virtual DOM_Element toXML(DOM_Element& domElement);
76  virtual int fromXML(DOM_Element domElement);
77 
78  virtual void getChilds(LPTYElementArray& childs, bool recursif = true);
79 
80  virtual void setDensiteSrcsH(double densite, bool recursif = true);
81  virtual void setDensiteSrcsV(double densite, bool recursif = true);
82 
83  // virtual int addRegime(const TYRegime& regime);
84  virtual int addRegime();
85  virtual void setRegime(TYSpectre& Spectre, int regime = -1, bool recursif = false);
86  virtual bool remRegime(int regime);
87  virtual void loadRegime(int regimeNb = -1);
88  virtual void setCurRegime(int regime);
89  virtual void propagateAtt(LPTYAttenuateur pAtt);
90  virtual TYTabSourcePonctuelleGeoNode getSrcs() const;
91  virtual TYSourcePonctuelle srcPonctEquiv() const;
92  virtual void distriSrcs();
93  virtual void remAllSrcs();
94  virtual bool setSrcsLw();
95  virtual void setIsRayonnant(bool rayonnant = true, bool recursif = true);
96 
97  virtual double volume() const;
98  virtual double surface() const;
99  virtual double activeSurface() const;
100  virtual double activeSurface();
101  virtual TYTabVector normals() const;
102  virtual TYTabPoint sommets() const;
103  virtual TYTabLPPolygon faces() const;
104  virtual TYBox volEnglob() const;
105  virtual TYPoint centreGravite() const;
106  virtual int intersects(const OSegment3D& seg, TYTabPoint& ptList) const;
107  virtual int isInside(const TYPoint& pt) const;
108 
110  virtual bool findAcousticSurface(const TYAcousticSurface* pAccSurf, OMatrix* pMatrix = 0);
111 
115  bool updateAcoustic(const bool& force = false);
116 
121 
127  double getDiameter() const;
133  void setDiameter(double diameter);
134 
141  double getHauteur() const;
149  void setHauteur(double hauteur);
150 
155  {
156  return _pEnveloppe->getSrcSurf();
157  }
162  {
163  return _pEnveloppe->getSrcSurf();
164  }
169  {
170  _pEnveloppe->setSrcSurf(pSrc);
171  }
172 
177  {
178  return _pCircTop;
179  }
184  {
185  return _pCircTop;
186  }
190  void setCircTop(const LPTYAcousticCircle pCirc)
191  {
192  _pCircTop = pCirc;
193  _pCircTop->setParent(this);
194  setIsGeometryModified(true);
195  }
196 
201  {
202  return _pCircBottom;
203  }
208  {
209  return _pCircBottom;
210  }
215  {
216  _pCircBottom = pCirc;
217  _pCircBottom->setParent(this);
218  setIsGeometryModified(true);
219  }
220 
229  {
230  _pEnveloppe = pEnv;
231  }
233  {
234  return _pEnveloppe;
235  }
237  {
238  return _pEnveloppe;
239  }
240 
249  virtual TYTabRectangle getEnveloppe(int n = -1) const;
250 
256  virtual TYPoint getCenter() const;
257 
261  virtual void setNextRegimeNb(const int& next);
262 
266  virtual void setRegimeName(const QString& name);
267 
271  void updateSurfEnveloppe();
272 
274  virtual void exportCSV(std::ofstream& ofs);
275 
276  // Membres
277 protected:
284 };
285 
291 typedef std::vector<LPTYAcousticCylinderGeoNode> TYTabAcousticCylinderGeoNode;
292 
293 #endif // __TY_ACOUSTICCYLINDER__
QDomElement DOM_Element
Definition: QT2DOM.h:30
TYGeometryNode TYAcousticCylinderGeoNode
Noeud geometrique de type TYAcousticCylinder.
std::vector< LPTYAcousticCylinderGeoNode > TYTabAcousticCylinderGeoNode
Collection de noeuds geometriques de type TYAcousticCylinder.
SmartPtr< TYAcousticCylinderGeoNode > LPTYAcousticCylinderGeoNode
Smart Pointer sur TYAcousticCylinderGeoNode.
std::vector< LPTYAcousticSurface > TYTabLPAcousticSurface
Tableau de TYAcousticSurfaces.
std::vector< LPTYAcousticSurfaceGeoNode > TYTabAcousticSurfaceGeoNode
Collection de noeuds geometriques de type TYAcousticSurface.
std::vector< TYRectangle > TYTabRectangle
Collection de TYRectangle.
Definition: TYDefines.h:346
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 TY_EXT_GRAPHIC_DECL_ONLY(classname)
Definition: TYElement.h:432
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.
The 4x4 matrix class.
Definition: 3d.h:625
Class to define a segment.
Definition: 3d.h:1089
Spectrum class.
Definition: Spectre.h:25
virtual TYTabPoint sommets() const
bool operator==(const TYAcousticCylinder &other) const
Operateur ==.
virtual void getChilds(LPTYElementArray &childs, bool recursif=true)
TYTabLPAcousticSurface getSubFace()
const LPTYAcousticCircle getCircBottom() const
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
virtual int isInside(const TYPoint &pt) const
virtual std::string toString() const
LPTYAcousticCircle _pCircBottom
Surface de dessous.
void setCircBottom(const LPTYAcousticCircle pCirc)
bool operator!=(const TYAcousticCylinder &other) const
Operateur !=.
void setSrcSurf(const LPTYSourceSurfacic pSrc)
virtual void setDensiteSrcsV(double densite, bool recursif=true)
const LPTYAcousticCircle getCircTop() const
virtual TYPoint getCenter() const
virtual double surface() const
virtual bool remRegime(int regime)
virtual void setCurRegime(int regime)
virtual TYTabVector normals() const
virtual void setIsRayonnant(bool rayonnant=true, bool recursif=true)
virtual int intersects(const OSegment3D &seg, TYTabPoint &ptList) const
virtual TYSourcePonctuelle srcPonctEquiv() const
void setHauteur(double hauteur)
void setCircTop(const LPTYAcousticCircle pCirc)
virtual TYPoint centreGravite() const
LPTYAcousticSurface getAcEnveloppe()
void setAcEnveloppe(const LPTYAcousticSurface pEnv)
virtual int fromXML(DOM_Element domElement)
virtual void setDensiteSrcsH(double densite, bool recursif=true)
virtual void setRegime(TYSpectre &Spectre, int regime=-1, bool recursif=false)
virtual void exportCSV(std::ofstream &ofs)
Export au format csv sur un flux transmis.
LPTYAcousticSurface _pEnveloppe
Enveloppe.
virtual void propagateAtt(LPTYAttenuateur pAtt)
const LPTYAcousticSurface getAcEnveloppe() const
LPTYAcousticCircle getCircBottom()
LPTYSourceSurfacic getSrcSurf()
virtual TYTabLPPolygon faces() const
void setDiameter(double diameter)
virtual void loadRegime(int regimeNb=-1)
virtual void setNextRegimeNb(const int &next)
virtual TYTabRectangle getEnveloppe(int n=-1) const
virtual double volume() const
virtual double activeSurface() const
bool updateAcoustic(const bool &force=false)
double getDiameter() const
virtual DOM_Element toXML(DOM_Element &domElement)
virtual bool findAcousticSurface(const TYAcousticSurface *pAccSurf, OMatrix *pMatrix=0)
virtual void setRegimeName(const QString &name)
virtual TYTabAcousticSurfaceGeoNode acousticFaces()
LPTYAcousticCircle _pCircTop
Surface de dessus.
virtual TYBox volEnglob() const
TYAcousticCylinder & operator=(const TYAcousticCylinder &other)
Operateur =.
virtual TYTabSourcePonctuelleGeoNode getSrcs() const
const LPTYSourceSurfacic getSrcSurf() const
LPTYAcousticCircle getCircTop()
LPTYSourceSurfacic getSrcSurf()
void setSrcSurf(const LPTYSourceSurfacic pSrcSurf)
Definition: TYBox.h:34
void setParent(TYElement *pParent)
Definition: TYElement.h:692
virtual void setIsGeometryModified(bool isModified)
Definition: TYElement.cpp:253