19 #include "Tympan/core/config.h"
116 if (TYElement::operator!=(other))
120 if (OSpectre::operator!=(other))
181 DOM_Element freqTabElem = domDoc.createElement(
"freqTab");
182 domNewElem.appendChild(freqTabElem);
185 freqTabElem.setAttribute(
"form",
_form);
188 std::ostringstream oss;
189 for (
unsigned int i = 0; i < TY_SPECTRE_DEFAULT_NB_ELMT - 1; ++i)
197 QDomText data = domDoc.createTextNode(tab);
199 freqTabElem.appendChild(data);
214 bool fDomain =
false;
222 QDomNodeList childs = domElement.childNodes();
224 for (
unsigned int i = 0; i < childs.length(); i++)
226 elemCur = childs.item(i).toElement();
238 if (fMinOk && fMaxOk && !fDomain)
244 if (elemCur.nodeName() ==
"freqTab")
251 std::istringstream iss(tab.toLatin1().data());
259 for (
unsigned int i = 0; i < TY_SPECTRE_DEFAULT_NB_ELMT; ++i)
273 if (elemCur.nodeName() ==
"freqCplx")
287 QString fileName = QString(sFilePath.c_str());
288 int i = fileName.lastIndexOf(
'/');
289 QDir fileDirectory = QDir(fileName.mid(0, i));
290 if (!fileDirectory.exists())
292 fileDirectory.mkdir(fileName.mid(0, i));
295 if (!fileName.isEmpty())
297 if (!fileName.endsWith(
".xml"))
309 xmlManager.
createDoc(TY_PRODUCT_XMLTAG_, TY_PRODUCT_VERSION_);
312 if (xmlManager.
save(fileName) == 0)
324 QString fileName = QString(sFilePath.c_str());
326 if (fileName.isEmpty())
333 if (xmlManager.
load(fileName, elements))
335 if (elements.size() == 1)
354 xmlManager.
createDoc(TY_PRODUCT_XMLTAG_, TY_PRODUCT_VERSION_);
359 return retString.toStdString();
368 if (xmlManager.
loadFromString(QString(sXMLString.c_str()), elements))
370 if (elements.size() == 1)
388 ofs.open(filename.c_str(), std::ios_base::out);
400 ofs.setf(std::ios::fixed, std::ios::floatfield);
406 for (
int i = 0; i < TY_SPECTRE_DEFAULT_NB_ELMT; i++)
411 ofs <<
"Global (Lin)"
424 short nbOfVal = TY_SPECTRE_DEFAULT_NB_ELMT;
433 for (
short i = 0; i < nbOfVal; i++)
443 if ((freqIndex >= 0) && (freqIndex < TY_SPECTRE_DEFAULT_NB_ELMT))
QDomDocument DOM_Document
std::vector< LPTYElement > LPTYElementArray
const std::vector< double > tabFreq
TY_EXTENSION_INST(TYSpectre)
OTabFreq TYTabFreq
Collection des frequences.
virtual const char * getClassName() const
Store acoustic power values for different frequencies.
bool _valid
Spectrum validity.
double valGlobDBA() const
Compute the global value dB[A] of a one-third Octave spectrum.
double valGlobDBLin() const
Compute the global value dB[Lin] of a one-third Octave spectrum.
TYSpectreForm _form
Representation of the spectrum: one-third Octave, Octave, constant delta f, unstructured.
void setDefaultValue(const double &valeur=TY_SPECTRE_DEFAULT_VALUE)
TYSpectreType _type
Spectrum type.
OSpectre & operator=(const OSpectre &other)
operator=
static OSpectre getLambda(const double &c)
void setValue(const double &freq, const double &reel=0.0)
double _module[TY_SPECTRE_DEFAULT_NB_ELMT]
Real values array for module.
static double _fMin
Minimal frequency.
static OSpectre getEmptyLinSpectre(const double &valInit=1.0E-20)
Create a physical quantity spectrum.
double * getTabValReel() override
static const double _freqNorm[]
Array of center frequencies (Hz) normalized in one-third Octave.
static OSpectre pondC()
Build a weighted spectrum C.
static OSpectre pondB()
Build a weighted spectrum B.
static OSpectre pondA()
Build a weighted spectrum A.
static double _fMax
Maximal frequency.
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
virtual DOM_Element toXML(DOM_Element &domElement)
QString _name
Nom courant de l'element.
TYElement & operator=(const TYElement &other)
virtual int fromXML(DOM_Element domElement)
QString generateName(const char *classname)
Retourne le nom de la classe associe a un nombre.
static TYNameManager * get()
Retourne l'instance singleton.
virtual bool fromXMLString(const std::string &sXMLString)
QString _remarque
Remarques.
static TYSpectre pondA()
Construit un spectre de ponderation A.
static TYSpectre pondB()
Construit un spectre de ponderation B.
virtual void exportCSV(const std::string &filename)
Export du spectre au format csv en creant le fichier.
virtual bool operator!=(const TYSpectre &otehr) const
Operateur d'inegalite.
virtual DOM_Element toXML(DOM_Element &domElement)
virtual TYSpectre & operator=(const TYSpectre &other)
Operateur d'affectation.
virtual std::string toString() const
static int _XMLprecision
Precision de stockage des resultats.
TYSpectre(const double &defaultValue=TY_SPECTRE_DEFAULT_VALUE)
static const float getFreqNorm(int freqIndex)
bool _isReadOnly
Indique si la widget du spectre est read-only.
virtual TYSpectreForm getForm()
Set/Get de la forme du spectre.
virtual std::string toXMLString()
static TYSpectre getEmptyLinSpectre(const double &valInit=1.0E-20)
Cree un spectre en lin.
virtual bool operator==(const TYSpectre &other) const
Operateur d'egalite.
static TYSpectre getLambda(const double &c)
virtual int fromXML(DOM_Element domElement)
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
static const TYTabFreq getTabFreqNorm(TYSpectreForm form=SPECTRE_FORM_TIERS)
static TYSpectre pondC()
Construit un spectre de ponderation C.
int save(QString fileName)
int load(const QString &fileName, LPTYElementArray &eltCollection)
void createDoc(QString docName, QString version)
int addElement(TYElement *pElt)
int loadFromString(const QString &xmlString, LPTYElementArray &eltCollection)
std::string doubleToStrPre(double val, int precision=2)
TYSpectreForm
Spectrum representation.
TYSpectreType
Spectrum type.