158 for (i = 0; i < pOtherLine->
getTabPoint().size(); i++)
195 return "TYAcousticLine";
246 bool largeurOk =
false;
247 bool nbPointsOk =
false;
248 bool useAttOk =
false;
249 bool isRayonnantOk =
false;
250 bool curRegimeOk =
false;
251 bool regimeFound =
false;
252 bool nextRegimeFound =
false;
266 QDomNodeList childs = domElement.childNodes();
267 for (
unsigned int i = 0; i < childs.length(); i++)
269 elemCur = childs.item(i).toElement();
311 if (!nextRegimeFound)
329 double distance = 0.0;
330 double x = 0.0, y = 0.0, z = 0.0;
343 for (i = 1; i < (int)
_tabPoint.size(); i++)
346 nbSources = (int)(distance * densite);
347 nbSources = (int)(nbSources > 0 ? nbSources : 1.0);
353 double deltaSourcesX = distanceX / nbSources;
354 double deltaSourcesY = distanceY / nbSources;
355 double deltaSourcesZ = distanceZ / nbSources;
358 x =
_tabPoint[i - 1]._x + deltaSourcesX / 2;
359 y =
_tabPoint[i - 1]._y + deltaSourcesY / 2;
360 z =
_tabPoint[i - 1]._z + deltaSourcesZ / 2;
364 for (is = 0; is < nbSources; is++)
376 pos->
_x += deltaSourcesX;
377 pos->
_y += deltaSourcesY;
378 pos->
_z += deltaSourcesZ;
397 for (
unsigned int i = 0; i < tab.size(); i++)
408 double deltaSources = 0.0;
414 unsigned int indexTab = 0;
415 int i = 0, nbSources = 0;
416 double distance = 0.0;
419 for (i = 1; i < (int)
_tabPoint.size(); i++)
425 nbSources = (int)(distance * densite);
426 nbSources = (int)(nbSources > 0 ? nbSources : 1.0);
429 deltaSources = distance / nbSources;
436 for (
unsigned int is = 0; is < nbSources; is++, indexTab++)
438 if (indexTab >= tabSrcs.size())
443 tabSrcs[indexTab]->setSpectre(
s);
479 TYTabRegimes::iterator it;
500 if (regimeNumber < 0)
528 regime.
setName(
"regime" + temp);
569 else if ((regimeNb < 0) || (regimeNb > (
int)
_tabRegimes.size() - 1))
630 ofs <<
getName().toLatin1().data() <<
'\n';
635 ofs <<
"Largeur : " <<
_largeur <<
" m\n";
646 ofs <<
"Attenuateur : OUI\n";
653 ofs <<
"ATTENUATEUR NON DEFINI !!!\n";
658 ofs <<
"Attenuateur : NON\n";
Representation graphique d'une ligne acoustique (fichier header)
TY_EXTENSION_INST(TYAcousticLine)
TY_EXT_GRAPHIC_INST(TYAcousticLine)
std::vector< LPTYSourcePonctuelle > TYTabLPSourcePonctuelle
Collection de pointeurs de TYSourcePonctuelle.
TYGeometryNode TYSourcePonctuelleGeoNode
Noeud geometrique de type TYSourcePonctuelle.
std::vector< LPTYSourcePonctuelleGeoNode > TYTabSourcePonctuelleGeoNode
Collection de noeuds geometriques de type TYSourcePonctuelle.
double _y
y coordinate of OCoord3D
double _z
z coordinate of OCoord3D
double _x
x coordinate of OCoord3D
virtual void set(double x, double y, double z)
virtual const char * getClassName() const
OSpectreAbstract & subst(const OSpectreAbstract &spectre) const
Arithmetic subtraction of two spectrums in one-third Octave.
OSpectreAbstract & toGPhy() const
Converts to physical quantity.
OSpectreAbstract & div(const OSpectreAbstract &spectre) const
Division of two spectrums.
TYTabPoint & getTabPoint()
bool _isRayonnant
Mise en fonctionnement.
virtual int addRegime(TYRegime regime)
TYRegime & getRegimeNb(const int &nb)
virtual void setCurRegime(int regimeNumber)
void setUseAtt(const bool &useAtt)
virtual std::string toString() const
TYTabRegimes _tabRegimes
Tableau des regimes.
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
bool _useAtt
Utilisation d'un attenuateur.
TYSpectre * getSpectre(int regime=-1) const
virtual void computeSpectre()
virtual int fromXML(DOM_Element domElement)
size_t getNbRegimes() const
LPTYSourceLineic _pSrcLineic
Source Lineique.
int _curRegime
Regime de fonctionnement courant.
bool operator==(const TYAcousticLine &other) const
Operateur ==.
virtual TYTabSourcePonctuelleGeoNode getSrcs() const
virtual void setRegime(TYSpectre &Spectre, int regime=-1, bool recursif=false)
virtual LPTYSpectre getRealPowerSpectrum()
virtual ~TYAcousticLine()
virtual TYRegime buildRegime()
virtual void updateCurrentRegime()
void setAtt(LPTYAttenuateur pAtt)
virtual bool updateAcoustic(const bool &force=false)
void setRegimeName(const QString &name)
void exportCSV(std::ofstream &ofs)
Export au format csv sur un flux transmis.
virtual void remAllSrcs()
bool operator!=(const TYAcousticLine &other) const
Operateur !=.
virtual bool remRegime(int regime)
virtual void loadRegime(int regimeNb=-1)
void setTypeDistribution(int typeDistri)
LPTYAttenuateur _pAtt
Attenuateur associe a l'element;.
bool _regimeChangeAble
Indique si on peut ajouter un regime a un element (cas des routes)
TYAcousticLine & operator=(const TYAcousticLine &other)
Operateur =.
int _typeDistribution
Indique le type de distribution a utiliser. pour l'etat courant.
int _nextRegime
Numero d'ordre du regime suivant.
virtual void distriSrcs()
virtual DOM_Element toXML(DOM_Element &domElement)
TYTabPoint _tabPoint
Tableau des points.
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
TYSpectre & getSpectreAtt()
virtual DOM_Element toXML(DOM_Element &domElement)
void setName(QString name)
QString _name
Nom courant de l'element.
TYElement & operator=(const TYElement &other)
bool callFromXMLIfEqual(DOM_Element &domElement, int *pRetVal=NULL)
virtual QString getName() const
void setParent(TYElement *pParent)
virtual void setIsAcousticModified(bool isModified)
QString generateName(const char *classname)
Retourne le nom de la classe associe a un nombre.
static TYNameManager * get()
Retourne l'instance singleton.
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
void setRegimeName(const QString &nom)
double getDensiteSrcs() const
bool addSrc(LPTYSourcePonctuelle pSrcPonct)
virtual DOM_Element toXML(DOM_Element &domElement)
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
TYTabLPSourcePonctuelle & getSrcs()
void setDirectivity(TYDirectivity *directivity_)
: Get/Set directivity to source
virtual int fromXML(DOM_Element domElement)
virtual void setSpectre(LPTYSpectre pSpectre)
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
virtual DOM_Element toXML(DOM_Element &domElement)
virtual void exportCSV(const std::string &filename)
Export du spectre au format csv en creant le fichier.