Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYAcousticSemiCylinder.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_ACOUSTICSEMICYLINDER__
21 #define __TY_ACOUSTICSEMICYLINDER__
22 
23 #include "TYAcousticSemiCircle.h"
25 #include "TYAcousticRectangle.h"
26 #include "TYAcousticVolume.h"
27 
32 {
36 
37  // Methodes
38 public:
50  virtual ~TYAcousticSemiCylinder();
51 
55  bool operator==(const TYAcousticSemiCylinder& other) const;
57  bool operator!=(const TYAcousticSemiCylinder& other) const;
58 
72  virtual bool deepCopy(const TYElement* pOther, bool copyId = true, bool pUseCopyTag = false);
73 
74  virtual std::string toString() const;
75 
76  virtual DOM_Element toXML(DOM_Element& domElement);
77  virtual int fromXML(DOM_Element domElement);
78 
79  virtual void getChilds(LPTYElementArray& childs, bool recursif = true);
80 
81  virtual void setDensiteSrcsH(double densite, bool recursif = true);
82  virtual void setDensiteSrcsV(double densite, bool recursif = true);
83 
84  // virtual int addRegime(const TYRegime& regime);
85  virtual int addRegime();
86  virtual void setRegime(TYSpectre& Spectre, int regime = -1, bool recursif = false);
87  virtual bool remRegime(int regime);
88  virtual void loadRegime(int regimeNb = -1);
89  virtual void setCurRegime(int regime);
90  virtual void propagateAtt(LPTYAttenuateur pAtt);
91  virtual TYTabSourcePonctuelleGeoNode getSrcs() const;
92  virtual TYSourcePonctuelle srcPonctEquiv() const;
93  virtual void distriSrcs();
94  virtual void remAllSrcs();
95  virtual bool setSrcsLw();
96  virtual void setIsRayonnant(bool rayonnant = true, bool recursif = true);
97 
98  virtual double volume() const;
99  virtual double surface() const;
100  virtual double activeSurface() const;
101  virtual double activeSurface();
102  virtual TYTabVector normals() const;
103  virtual TYTabPoint sommets() const;
104  virtual TYTabLPPolygon faces() const;
105  virtual TYBox volEnglob() const;
106  virtual TYPoint centreGravite() const;
107  virtual int intersects(const OSegment3D& seg, TYTabPoint& ptList) const;
108  virtual int isInside(const TYPoint& pt) const;
109 
111  virtual bool findAcousticSurface(const TYAcousticSurface* pAccSurf, OMatrix* pMatrix = 0);
112 
117 
123  double getDiameter() const;
129  void setDiameter(double diameter);
130 
137  double getHauteur() const;
145  void setHauteur(double hauteur);
146 
151  {
152  return _pEnveloppe->getSrcSurf();
153  }
158  {
159  return _pEnveloppe->getSrcSurf();
160  }
165  {
166  _pEnveloppe->setSrcSurf(pSrc);
167  }
168 
173  {
174  return _pAccRect;
175  }
180  {
181  return _pAccRect;
182  }
186  void setRect(const LPTYAcousticRectangle pRect)
187  {
188  _pAccRect = pRect;
189  _pAccRect->setParent(this);
190  setIsGeometryModified(true);
191  }
192 
197  {
198  return _pSemiCircTop;
199  }
204  {
205  return _pSemiCircTop;
206  }
211  {
212  _pSemiCircTop = pCirc;
213  _pSemiCircTop->setParent(this);
214  setIsGeometryModified(true);
215  }
216 
221  {
222  return _pSemiCircBottom;
223  }
228  {
229  return _pSemiCircBottom;
230  }
235  {
236  _pSemiCircBottom = pCirc;
238  setIsGeometryModified(true);
239  }
240 
249  {
250  _pEnveloppe = pEnv;
251  }
253  {
254  return _pEnveloppe;
255  }
257  {
258  return _pEnveloppe;
259  }
260 
270  TYTabRectangle getEnveloppe(int n = -1) const;
271 
277  TYPoint getCenter() const;
278 
282  bool updateAcoustic(const bool& force = false);
283 
287  virtual void setNextRegimeNb(const int& next);
288 
292  virtual void setRegimeName(const QString& name);
293 
297  void updateSurfEnveloppe();
298 
300  virtual void exportCSV(std::ofstream& ofs);
301 
302 protected:
307  void updateRect();
308 
309  // Membres
310 protected:
319 };
320 
326 typedef std::vector<LPTYAcousticSemiCylinderGeoNode> TYTabAcousticSemiCylinderGeoNode;
327 
328 #endif // __TY_ACOUSTICSEMICYLINDER__
QDomElement DOM_Element
Definition: QT2DOM.h:30
SmartPtr< TYAcousticSemiCylinderGeoNode > LPTYAcousticSemiCylinderGeoNode
Smart Pointer sur TYAcousticSemiCylinderGeoNode.
std::vector< LPTYAcousticSemiCylinderGeoNode > TYTabAcousticSemiCylinderGeoNode
Collection de noeuds geometriques de type TYAcousticSemiCylinder.
TYGeometryNode TYAcousticSemiCylinderGeoNode
Noeud geometrique de type TYAcousticSemiCylinder.
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
void setSemiCircBottom(const LPTYAcousticSemiCircle pCirc)
const LPTYAcousticRectangle getRect() const
virtual int fromXML(DOM_Element domElement)
virtual double surface() const
virtual TYSourcePonctuelle srcPonctEquiv() const
virtual void setRegime(TYSpectre &Spectre, int regime=-1, bool recursif=false)
TYTabRectangle getEnveloppe(int n=-1) const
virtual void setNextRegimeNb(const int &next)
bool operator!=(const TYAcousticSemiCylinder &other) const
Operateur !=.
virtual TYTabPoint sommets() const
virtual double activeSurface() const
virtual DOM_Element toXML(DOM_Element &domElement)
virtual TYTabAcousticSurfaceGeoNode acousticFaces()
virtual void setCurRegime(int regime)
void setSemiCircTop(const LPTYAcousticSemiCircle pCirc)
TYTabLPAcousticSurface getSubFace()
const LPTYAcousticSurface getAcEnveloppe() const
virtual void setRegimeName(const QString &name)
virtual void getChilds(LPTYElementArray &childs, bool recursif=true)
const LPTYSourceSurfacic getSrcSurf() const
virtual void setDensiteSrcsV(double densite, bool recursif=true)
virtual TYPoint centreGravite() const
virtual bool remRegime(int regime)
virtual int isInside(const TYPoint &pt) const
virtual void setDensiteSrcsH(double densite, bool recursif=true)
virtual TYBox volEnglob() const
virtual int intersects(const OSegment3D &seg, TYTabPoint &ptList) const
virtual void loadRegime(int regimeNb=-1)
bool updateAcoustic(const bool &force=false)
LPTYAcousticRectangle _pAccRect
Surface laterale.
virtual TYTabVector normals() const
LPTYAcousticSemiCircle getSemiCircTop()
LPTYAcousticSemiCircle _pSemiCircBottom
Surface de dessous.
void setAcEnveloppe(const LPTYAcousticSurface pEnv)
virtual void exportCSV(std::ofstream &ofs)
Export au format csv sur un flux transmis.
void setHauteur(double hauteur)
LPTYAcousticSemiCircle getSemiCircBottom()
LPTYAcousticRectangle getRect()
LPTYAcousticSemiCircle _pSemiCircTop
Surface de dessus.
const LPTYAcousticSemiCircle getSemiCircTop() const
void setRect(const LPTYAcousticRectangle pRect)
LPTYAcousticSurface getAcEnveloppe()
virtual void propagateAtt(LPTYAttenuateur pAtt)
void setDiameter(double diameter)
virtual double volume() const
TYAcousticSemiCylinder & operator=(const TYAcousticSemiCylinder &other)
Operateur =.
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
virtual std::string toString() const
const LPTYAcousticSemiCircle getSemiCircBottom() const
virtual void setIsRayonnant(bool rayonnant=true, bool recursif=true)
virtual bool findAcousticSurface(const TYAcousticSurface *pAccSurf, OMatrix *pMatrix=0)
virtual TYTabLPPolygon faces() const
LPTYAcousticSurface _pEnveloppe
Enveloppe.
virtual TYTabSourcePonctuelleGeoNode getSrcs() const
bool operator==(const TYAcousticSemiCylinder &other) const
Operateur ==.
LPTYSourceSurfacic getSrcSurf()
void setSrcSurf(const LPTYSourceSurfacic pSrc)
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