Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYAcousticSurfaceNode.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_ACOUSTICSURFACENODE__
21 #define __TY_ACOUSTICSURFACENODE__
22 
24 #include "TYAcousticInterface.h"
26 #include "TYAcousticSurface.h"
29 #include "TYAcousticCircle.h"
30 #include "TYAcousticSemiCircle.h"
31 #include "TYAcousticRectangle.h"
32 #include "TYAcousticVolume.h"
33 
38  public TYColorInterface,
39  public TYAcousticInterface,
40  public TYSurfaceInterface
41 {
44 
45  // Methodes
46 public:
58  virtual ~TYAcousticSurfaceNode();
59 
63  bool operator==(const TYAcousticSurfaceNode& other) const;
65  bool operator!=(const TYAcousticSurfaceNode& other) const;
66 
80  virtual bool deepCopy(const TYElement* pOther, bool copyId = true, bool pUseCopyTag = false);
81 
82  virtual std::string toString() const;
83 
84  virtual DOM_Element toXML(DOM_Element& domElement);
85  virtual int fromXML(DOM_Element domElement);
86 
87  virtual void setIsAcousticModified(bool isModified);
88 
89  virtual void getChilds(LPTYElementArray& childs, bool recursif = true);
90 
91  virtual void setDensiteSrcsH(double densite, bool recursif = true);
92  virtual void setDensiteSrcsV(double densite, bool recursif = true);
93 
94  // virtual int addRegime(const TYRegime& regime);
95  virtual int addRegime();
96  virtual void setRegime(TYSpectre& Spectre, int regime = -1, bool recursif = false);
97  virtual bool remRegime(int regime);
98  virtual void loadRegime(int regimeNb = -1);
99  virtual void setCurRegime(int regime);
100 
106  virtual void correctNbRegimes();
107 
108  virtual void propagateAtt(LPTYAttenuateur pAtt);
109  virtual TYTabSourcePonctuelleGeoNode getSrcs() const;
110  virtual TYSourcePonctuelle srcPonctEquiv() const;
111  virtual void distriSrcs();
112  virtual void remAllSrcs();
113  virtual bool setSrcsLw();
114  virtual bool updateAcoustic(const bool& force = false);
115  virtual void setIsRayonnant(bool rayonnant = true, bool recursif = true);
116 
117  virtual double surface() const;
118  virtual double activeSurface() const;
119  virtual OVector3D normal() const;
120  virtual OPlan plan() const;
121  virtual TYTabPoint getContour(int n = -1) const;
122  virtual TYTabPoint3D getOContour(int n = -1) const;
123  virtual int intersects(const TYSurfaceInterface* pSurf, OSegment3D& seg) const;
124  virtual int intersects(const OSegment3D& seg, OPoint3D& pt) const;
125  virtual int intersects(const OPoint3D& pt) const;
126  virtual void setUseAtt(bool state);
127 
131  virtual const OPlan& getPlan() const
132  {
133  return _pBoundingRect->getPlan();
134  }
135 
139  virtual double activeSurface();
140 
145  void purge();
146 
150  size_t getNbChild() const
151  {
152  return _tabAcousticSurf.size();
153  }
154 
159  {
160  return _tabAcousticSurf;
161  }
166  {
167  return _tabAcousticSurf;
168  }
173  {
174  _tabAcousticSurf = tab;
175  }
176 
181  {
182  return _pBoundingRect;
183  }
188  {
189  return _pBoundingRect;
190  }
191 
200  bool addAcousticSurf(LPTYAcousticSurfaceGeoNode pAccSurfGeoNode);
201 
211  bool addAcousticSurf(LPTYAcousticSurface pAccSurf, const TYRepere& repere);
212 
221  bool addAcousticSurf(LPTYAcousticSurface pAccSurf);
222 
231  virtual bool remAcousticSurf(const LPTYAcousticSurfaceGeoNode pAccSurfGeoNode);
232 
241  virtual bool remAcousticSurf(const LPTYAcousticSurface pAccSurf);
242 
252  virtual bool remAcousticSurf(QString idAccSurf);
253 
263 
272 
276  TYSpectre setGlobalLW(const TYSpectre& spectre, const double& surfGlobale, const int& regime = -1);
277 
281  virtual void setNextRegimeNb(const int& next);
282 
286  virtual void setRegimeName(const QString& name);
287 
289  virtual void exportCSV(std::ofstream& ofs);
290 
291  // Membres
292 protected:
295 
298 };
299 
305 typedef std::vector<LPTYAcousticSurfaceNodeGeoNode> TYTabAcousticSurfaceNodeGeoNode;
306 
307 #endif // __TY_ACOUSTICSURFACENODE__
QDomElement DOM_Element
Definition: QT2DOM.h:30
TYGeometryNode TYAcousticSurfaceNodeGeoNode
Noeud geometrique de type TYAcousticSurfaceNode.
SmartPtr< TYAcousticSurfaceNodeGeoNode > LPTYAcousticSurfaceNodeGeoNode
Smart Pointer sur TYAcousticSurfaceNodeGeoNode.
std::vector< LPTYAcousticSurfaceNodeGeoNode > TYTabAcousticSurfaceNodeGeoNode
Collection de noeuds geometriques de type TYAcousticSurfaceNode.
std::vector< LPTYAcousticSurfaceGeoNode > TYTabAcousticSurfaceGeoNode
Collection de noeuds geometriques de type TYAcousticSurface.
std::vector< TYPoint > TYTabPoint
Collection de TYPoint.
Definition: TYDefines.h:340
std::deque< OPoint3D > TYTabPoint3D
Collection de OPoint3D.
Definition: TYDefines.h:403
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.
Plan defined by its equation : ax+by+cz+d=0.
Definition: plan.h:31
The 3D point class.
Definition: 3d.h:487
Class to define a segment.
Definition: 3d.h:1089
The 3D vector class.
Definition: 3d.h:298
Spectrum class.
Definition: Spectre.h:25
virtual void setDensiteSrcsV(double densite, bool recursif=true)
virtual const OPlan & getPlan() const
virtual void setDensiteSrcsH(double densite, bool recursif=true)
virtual void exportCSV(std::ofstream &ofs)
Export au format csv sur un flux transmis.
TYSpectre setGlobalLW(const TYSpectre &spectre, const double &surfGlobale, const int &regime=-1)
virtual void setIsAcousticModified(bool isModified)
virtual void setNextRegimeNb(const int &next)
virtual double activeSurface() const
virtual int fromXML(DOM_Element domElement)
virtual void setCurRegime(int regime)
virtual bool remAcousticSurf(const LPTYAcousticSurfaceGeoNode pAccSurfGeoNode)
virtual void setIsRayonnant(bool rayonnant=true, bool recursif=true)
virtual OVector3D normal() const
virtual void propagateAtt(LPTYAttenuateur pAtt)
LPTYRectangle _pBoundingRect
Rectangle englobant.
TYAcousticSurfaceNode & operator=(const TYAcousticSurfaceNode &other)
Operateur =.
virtual void setRegimeName(const QString &name)
virtual OPlan plan() const
virtual TYTabPoint getContour(int n=-1) const
virtual int intersects(const TYSurfaceInterface *pSurf, OSegment3D &seg) const
virtual void loadRegime(int regimeNb=-1)
bool operator!=(const TYAcousticSurfaceNode &other) const
Operateur !=.
TYTabAcousticSurfaceGeoNode _tabAcousticSurf
Tableau des AcousticSurfaces.
virtual void getChilds(LPTYElementArray &childs, bool recursif=true)
const TYTabAcousticSurfaceGeoNode & getTabAcousticSurf() const
virtual double surface() const
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
virtual bool remRegime(int regime)
bool operator==(const TYAcousticSurfaceNode &other) const
Operateur ==.
LPTYAcousticSurfaceGeoNode findAcousticSurf(const LPTYAcousticSurface pAccSurf)
virtual std::string toString() const
virtual bool updateAcoustic(const bool &force=false)
virtual void setRegime(TYSpectre &Spectre, int regime=-1, bool recursif=false)
virtual TYTabPoint3D getOContour(int n=-1) const
virtual DOM_Element toXML(DOM_Element &domElement)
void setTabAcousticSurf(const TYTabAcousticSurfaceGeoNode &tab)
LPTYAcousticSurface getAcousticSurf(int index)
bool addAcousticSurf(LPTYAcousticSurfaceGeoNode pAccSurfGeoNode)
const LPTYRectangle getBoundingRect() const
TYTabAcousticSurfaceGeoNode & getTabAcousticSurf()
virtual void setUseAtt(bool state)
virtual TYSourcePonctuelle srcPonctEquiv() const
virtual TYTabSourcePonctuelleGeoNode getSrcs() const
virtual const OPlan & getPlan() const
Definition: TYRectangle.h:252