105 if (TYAcousticVolume::operator!=(other))
173 std::map<TYElement*, TYElement*> elementOriginToDest;
176 for (i = 0; i < pOtherEtage->
_tabMur.size(); i++)
179 pMurGeoNode->deepCopy(pOtherEtage->
_tabMur[i], copyId);
180 pMurGeoNode->getElement()->setParent(
this);
181 pMurGeoNode->setParent(
this);
182 _tabMur.push_back(pMurGeoNode);
188 for (i = 0; i < pOtherEtage->
_tabSources.size(); i++)
191 pSourceGeoNode->deepCopy(pOtherEtage->
_tabSources[i], copyId);
192 pSourceGeoNode->getElement()->setParent(
this);
193 pSourceGeoNode->setParent(
this);
194 userSourcePontuelleOrigin =
198 elementOriginToDest[userSourcePontuelleOrigin] = userSourcePontuelleDest;
205 for (i = 0; i < pOtherEtage->
_tabMachine.size(); i++)
213 elementOriginToDest[machineOrigin] = machineDest;
228 for (
const auto& pair : myMap)
230 elementOrigin = pair.first;
231 int value = pair.second;
234 elementDest = elementOriginToDest[elementOrigin];
235 mapSources[elementDest] = value;
245 for (
const auto& pair : myMap)
247 elementOrigin = pair.first;
248 bool value = pair.second;
252 elementDest = elementOriginToDest[elementOrigin];
253 mapEtats[elementDest] = value;
285 DOM_Element listMurNode = domDoc.createElement(
"ListMur");
286 domNewElem.appendChild(listMurNode);
287 for (i = 0; i <
_tabMur.size(); i++)
290 _tabMur[i]->toXML(listMurNode);
297 DOM_Element listMachineNode = domDoc.createElement(
"ListMachine");
298 domNewElem.appendChild(listMachineNode);
310 DOM_Element listSourceNode = domDoc.createElement(
"ListSource");
311 domNewElem.appendChild(listSourceNode);
319 DOM_Element listEtatNode = domDoc.createElement(
"TabEtatElement");
320 domNewElem.appendChild(listEtatNode);
330 DOM_Element tmpNode = domDoc.createElement(
"Regime");
331 listEtatNode.appendChild(tmpNode);
333 tmpNode.setAttribute(
"num",
intToStr(i).data());
335 TYMapPtrElementBool::iterator iter;
338 DOM_Element itemNode = domDoc.createElement(
"Element");
339 tmpNode.appendChild(itemNode);
340 itemNode.setAttribute(
"accVolNodeId", (*iter).first->getID().toString());
341 itemNode.setAttribute(
"state",
intToStr((*iter).second).c_str());
346 DOM_Element listRegimeNode = domDoc.createElement(
"TabRegimeElement");
347 domNewElem.appendChild(listRegimeNode);
357 DOM_Element tmpNode = domDoc.createElement(
"Regime");
358 listRegimeNode.appendChild(tmpNode);
360 tmpNode.setAttribute(
"num",
intToStr(i).data());
362 TYMapPtrElementInt::iterator iter;
365 DOM_Element itemNode = domDoc.createElement(
"Element");
366 tmpNode.appendChild(itemNode);
367 itemNode.setAttribute(
"accVolNodeId", (*iter).first->getID().toString());
368 itemNode.setAttribute(
"regime",
intToStr((*iter).second).c_str());
386 bool closedOk =
false;
387 bool solFound =
false;
388 bool plafondFound =
false;
389 bool tabEtatElemFound =
false;
390 bool tabRegimeElemFound =
false;
396 unsigned int i = 0, j = 0;
400 std::map<TYUUID, TYUUID> mapDoublons;
402 bool bDoublon =
false;
404 QDomNodeList childs = domElement.childNodes();
405 for (i = 0; i < childs.length(); i++)
407 elemCur = childs.item(i).toElement();
412 if (elemCur.nodeName() ==
"ListMur")
415 QDomNodeList childs2 = elemCur.childNodes();
417 for (j = 0; j < childs2.length(); j++)
419 elemCur2 = childs2.item(j).toElement();
420 if (pMurGeoNode->callFromXMLIfEqual(elemCur2, &retVal))
424 _tabMur.push_back(pMurGeoNode);
435 else if (!plafondFound)
440 if (elemCur.nodeName() ==
"ListMachine")
443 QDomNodeList childs2 = elemCur.childNodes();
450 for (j = 0; j < childs2.length(); j++)
452 elemCur2 = childs2.item(j).toElement();
467 mapDoublons[idOld] = idNew;
481 if (elemCur.nodeName() ==
"ListSource")
484 QDomNodeList childs2 = elemCur.childNodes();
491 for (j = 0; j < childs2.length(); j++)
493 elemCur2 = childs2.item(j).toElement();
495 if (pSourceGeoNode->callFromXMLIfEqual(elemCur2, &retVal))
500 if (pSourceGeoNode->getElement()->isA(
"TYSourcePonctuelle"))
505 pSourceGeoNode->setElement((
TYElement*)pUSP);
509 TYElement* pElem = pSourceGeoNode->getElement();
517 mapDoublons[idOld] = idNew;
522 pSourceGeoNode->getElement()->setParent(
this);
533 if (elemCur.nodeName() ==
"TabEtatElement")
535 tabEtatElemFound =
true;
537 QDomNodeList childs3 = elemCur.childNodes();
539 for (j = 0; j < childs3.length(); j++)
541 elemCur3 = childs3.item(j).toElement();
543 bool regimeMachineOk =
false;
545 if (elemCur3.nodeName() ==
"Regime")
554 QDomNodeList childs4 = elemCur3.childNodes();
557 for (
unsigned int k = 0; k < childs4.length(); k++)
563 elemCur4 = childs4.item(k).toElement();
565 if (elemCur4.nodeName() ==
"Element")
576 id2 = mapDoublons[id2];
590 mapEtatRegime[pElement] = etat;
600 if (elemCur.nodeName() ==
"TabRegimeElement")
602 tabRegimeElemFound =
true;
606 QDomNodeList childs3 = elemCur.childNodes();
609 for (j = 0; j < childs3.length(); j++)
611 elemCur3 = childs3.item(j).toElement();
613 bool regimeMachineOk =
false;
614 if (elemCur3.nodeName() ==
"Regime")
623 QDomNodeList childs4 = elemCur3.childNodes();
625 for (
unsigned int k = 0; k < childs4.length(); k++)
627 elemCur4 = childs4.item(k).toElement();
631 int regimeMachine = 0;
633 if (elemCur4.nodeName() ==
"Element")
644 id2 = mapDoublons[id2];
658 mapRegimeMachine[pElement] = regimeMachine;
669 if (!(tabEtatElemFound && tabRegimeElemFound))
710 for (
unsigned int j = 0; j <
_tabSources.size(); j++)
715 if (pSource ==
nullptr)
720 std::map<TYElement*, bool>::iterator itEtat;
722 for (itEtat = mapEtatRegime.begin(); itEtat != mapEtatRegime.end(); itEtat++)
724 if (itEtat->first == pElement)
733 mapEtatRegime[pElement] =
false;
734 mapRegimeMachine[pElement] = 0;
738 for (
unsigned int j = 0; j <
_tabMachine.size(); j++)
742 if (!pElement->
isA(
"TYMachine"))
747 std::map<TYElement*, bool>::iterator itEtat;
749 for (itEtat = mapEtatRegime.begin(); itEtat != mapEtatRegime.end(); itEtat++)
751 if (itEtat->first == pElement)
760 mapEtatRegime[pElement] =
false;
761 mapRegimeMachine[pElement] = 0;
770 ofs <<
_name.toStdString() <<
'\n';
775 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
794 for (i = 0; i <
_tabMur.size(); i++)
796 childs.push_back(
_tabMur[i]->getElement());
799 childs.push_back(
_pSol);
804 for (i = 0; i <
_tabMur.size(); i++)
806 _tabMur[i]->getChilds(childs, recursif);
828 pMur->setParent(
this);
845 TYTabMurGeoNode::iterator ite;
868 TYTabMurGeoNode::iterator ite;
872 if ((*ite)->getElement()->getID().toString() == idMur)
900 size_t count = tabPts.size();
903 if ((count == 0) || (hauteur <= 0.0))
912 if (tabPts.size() > 1)
923 if (tabPts[0].isEqual(tabPts[count - 1]))
935 for (
int i = 0; i < count; i++)
938 pt0 = tabPts[(i + 1) % tabPts.size()];
946 pMur->setParent(
this);
948 pMur->setSize(vec01.
norme(), hauteur);
956 repMur.
_vecI = vec01;
961 pMurGeoNode->setRepere(repMur);
963 _tabMur.push_back(pMurGeoNode);
987 for (i = 0; i < nbPts; i++)
993 pt =
_tabMur[i]->getMatrix() * pt;
1006 pt =
_tabMur[i - 1]->getMatrix() * pt;
1017 size_t nbPts =
_tabMur.size();
1024 for (
size_t i = 0; i < nbPts; i++)
1032 _tabMur[i]->setRepere(repere3D);
1055 assert(pMachineGeoNode);
1068 for (
unsigned int i = 0; i <
_tabRegimes.size(); i++)
1094 assert(pMachineGeoNode);
1096 TYTabMachineGeoNode::iterator ite;
1100 if ((*ite) == pMachineGeoNode)
1110 TYMapPtrElementInt::iterator iter;
1111 TYMapPtrElementBool::iterator itb;
1112 for (
unsigned int i = 0; i <
_tabRegimes.size(); i++)
1131 TYTabMachineGeoNode::iterator ite;
1145 TYMapPtrElementInt::iterator iter;
1146 TYMapPtrElementBool::iterator itb;
1147 for (
unsigned int i = 0; i <
_tabRegimes.size(); i++)
1165 TYTabMachineGeoNode::iterator ite;
1169 if ((*ite)->getElement()->getID().toString() == idMachine)
1178 TYElement* pElement = (*ite)->getElement();
1179 TYMapPtrElementInt::iterator iter;
1180 TYMapPtrElementBool::iterator itb;
1181 for (
unsigned int i = 0; i <
_tabRegimes.size(); i++)
1197 unsigned int i = 0, j = 0;
1199 TYMapPtrElementInt::iterator iter;
1210 TYMapPtrElementBool::iterator itb;
1228 TYTabMachineGeoNode::iterator ite;
1243 assert(pSourceGeoNode);
1244 assert(pSourceGeoNode->getElement());
1246 if (this->
isA(
"TYAcousticCylinder"))
1251 pSourceGeoNode->setParent(
this);
1252 pSourceGeoNode->getElement()->setParent(
this);
1257 TYElement* pElement = pSourceGeoNode->getElement();
1258 for (
unsigned int i = 0; i <
_tabRegimes.size(); i++)
1282 assert(pSourceGeoNode);
1285 TYTabUserSourcePonctuelleGeoNode::iterator ite;
1289 if ((*ite) == pSourceGeoNode)
1298 TYElement* pElement = (*ite)->getElement();
1299 TYMapPtrElementInt::iterator iter;
1300 TYMapPtrElementBool::iterator itb;
1301 for (
unsigned int i = 0; i <
_tabRegimes.size(); i++)
1319 TYTabUserSourcePonctuelleGeoNode::iterator ite;
1333 TYMapPtrElementInt::iterator iter;
1334 TYMapPtrElementBool::iterator itb;
1335 for (
unsigned int i = 0; i <
_tabRegimes.size(); i++)
1353 TYTabUserSourcePonctuelleGeoNode::iterator ite;
1365 TYElement* pElement = (*ite)->getElement();
1366 TYMapPtrElementInt::iterator iter;
1367 TYMapPtrElementBool::iterator itb;
1368 for (
unsigned int i = 0; i <
_tabRegimes.size(); i++)
1385 unsigned int i = 0, j = 0;
1387 TYMapPtrElementInt::iterator iter;
1398 TYMapPtrElementBool::iterator itb;
1417 TYTabUserSourcePonctuelleGeoNode::iterator ite;
1434 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1445 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1471 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1480 TYMapPtrElementInt::iterator iter;
1484 if (pElement->
isA(
"TYMachine"))
1499 TYMapPtrElementBool::iterator iter2;
1503 if (pElement->
isA(
"TYMachine"))
1507 bool etat = (*iter2).second;
1534 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1556 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1571 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1589 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1605 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1609 if (pMur->getIsRayonnant())
1611 tabChild = pMur->getSrcs();
1615 for (
unsigned int j = 0; j < tabChild.size(); j++)
1617 tabChild[j]->setMatrix(matrix * tabChild[j]->getMatrix());
1621 tab.insert(tab.end(), tabChild.begin(), tabChild.end());
1626 tab.insert(tab.end(), tabChild.begin(), tabChild.end());
1629 tab.insert(tab.end(), tabChild.begin(), tabChild.end());
1645 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1660 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1674 for (i = 0; i <
_tabMur.size(); i++)
1683 for (i = 0; i <
_tabMur.size(); i++)
1686 if (pMur->getIsRayonnant())
1718 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1728 if (pCurrentMur->getIsRayonnant())
1731 double surfMur = pCurrentMur->activeSurface();
1736 LWMur = pCurrentMur->getCurrentSpectre().toGPhy();
1747 for (
unsigned int j = 0; j < tabAcousticSurf.size(); j++)
1754 assert(pCurrentSurf);
1756 if (pCurrentSurf->
getIsSub() ==
true)
1761 LWEtage = LWEtage.
sum(LWElt);
1773 LWMur = LWMur.
sum(LWElt);
1777 double surfElt = pCurrentSurf->
surface();
1778 LWElt = LWMur.
mult(surfElt / surfMur);
1787 pCurrentSurf->
setRegime(aSpectre, -1,
false);
1798 pCurrentMur->setRegime(aSpectre, -1,
false);
1806 LWEtage = LWEtage.
sum(LWMur);
1821 LWEtage = LWEtage.
sum(LWElt);
1839 LWEtage = LWEtage.
sum(LWElt);
1863 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1878 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1881 normale =
_tabMur[i]->getMatrix() * normale;
1882 tab.push_back(normale);
1896 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1898 for (
int j = 0; j < 4; j++)
1904 pt =
_tabMur[i]->getMatrix() * pt;
1918 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1929 tab.push_back(pPolygon);
1945 TYPoint centre(0.0, 0.0, 0.0);
1949 size_t nbPts = pts.size();
1952 for (
size_t i = 0; i < nbPts; i++)
1954 centre.
_x += pts[i]._x;
1955 centre.
_y += pts[i]._y;
1986 size_t nbPts = ptsSol.size();
1997 for (
size_t i = 0; i < nbPts; i++)
2010 OBox box(ptMin, ptMax);
2034 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
2044 for (j = 0; j < tabTmp.size(); j++)
2069 ORepere3D rep = tabTmp[j]->getORepere3D();
2080 tab.push_back(pAccSurfGeoNode1);
2081 tab.push_back(pAccSurfGeoNode2);
2087 OMatrix matrix = matrixMur * tabTmp[j]->getMatrix();
2109 for (
unsigned int i = 0; (i <
_tabMur.size()) && !ret; i++)
2115 for (
unsigned int j = 0; j < tabTmp.size(); j++)
2122 *pMatrix = *pMatrix *
_tabMur[i]._pObj->getMatrix() * tabTmp[j]._pObj->getMatrix();
2139 size_t i = 0, j = 0;
2142 double surfElem = 0.0;
2148 size_t nbFaces = this->
getTabMur().size();
2150 for (i = 0; i < nbFaces; i++)
2156 for (j = 0; j < elemMur.size(); j++)
2163 surfElem = pMurElt->surface();
2166 if (pMurElt->getIsSub())
2169 absoElem = pMurElt->getParoi()->getMatFace1()->getSpectreAbso().mult(surfElem);
2186 double aireTotMachinesSol = 0.0;
2189 aireTotMachinesSol = aireTotMachinesSol +
2210 for (i = 0; i < nbMachines; i++)
2214 for (j = 0; j < elemMachine.size(); j++)
2218 surfElem = pElemMachine->surface();
2223 absoElem = pElemMachine->getMateriau()->getSpectreAbso().mult(surfElem);
2226 double volElem = pElemMachine->volume();
2237 surfElem = pSurface->
surface();
2266 int nbPts =
static_cast<int>(
_tabMur.size());
2272 for (
int i = nbPts - 1; i >= 0; --i)
2277 ptSol =
_tabMur[i]->getMatrix() * ptSol;
2279 pointsSol.push_back(ptSol);
2284 ptPlafond =
_tabMur[i]->getMatrix() * ptPlafond;
2286 pointsPlafond.push_back(ptPlafond);
2292 std::vector<TYPoint>::reverse_iterator it;
2293 for (it = tabPtsTemp.rbegin(); it != tabPtsTemp.rend(); it++)
2295 pointsSol.push_back((*it));
2310 unsigned int i = 0, j = 0;
2311 double distance = NAN;
2326 for (j = 0; j < tabSrcNode.size(); j++)
2335 OPoint3D posPtInSrcRep = matInv * unPoint;
2360 posSource = *pSrc->
getPos();
2393 unsigned int i = 0, j = 0;
2418 tabAllSources.insert(tabAllSources.end(), tabSrcMachine.begin(), tabSrcMachine.end());
2434 for (j = 0; j < tabAllSources.size(); j++)
2451 for (
unsigned int i = 0; i < tabMur.size(); i++)
2475 for (
unsigned int j = 0; j < tabTmp.size(); j++)
2478 OMatrix matrix = matrixMachine * tabTmp[j]->getMatrix();
2479 tabTmp[j]->setMatrix(matrix);
2481 accFaces.push_back(tabTmp[j]);
2487 double distance = 0.0;
2489 for (i = 0; i < accFaces.size(); i++)
2497 if (contour.size() < 3)
2502 OMatrix matrixFace = accFaces[i]->getMatrix();
2510 OPlan planFace(ptPlan, vecPlan);
2565 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
2580 for (i = 0; i <
_tabMur.size(); i++)
2584 surface += pMur->activeSurface();
2612 if (pMurElt->getIsSub())
2615 spectreAtt = pMurElt->getParoi()->getMatStruct()->getSpectreTransm();
2630 double surf = pCurrentSurf->
surface() / tabSources.size();
2633 for (
unsigned int k = 0; k < tabSources.size(); k++)
2638 posSrc = matMur * *(pSource->
getPos());
2649 s =
s.div((spectreAtt).toGPhy());
2651 spectreEltMur = spectreEltMur.
sum(
s);
2655 return spectreEltMur;
2691 size_t nbFaces = this->
getTabMur().size();
2696 for (i = 0; i < nbFaces; i++)
2702 pMur->propagateAtt(pAtt);
All base classes related to 3D manipulation.
double ABS(double a)
Return the absolute value.
#define INTERS_NULLE
No intersection.
QDomDocument DOM_Document
std::vector< LPTYAcousticFaceSetGeoNode > TYTabAcousticVolumeGeoNode
Collection de noeuds geometriques de type TYAcousticFaceSet.
TYGeometryNode TYAcousticSurfaceGeoNode
Noeud geometrique de type TYAcousticSurface.
std::vector< LPTYAcousticSurfaceGeoNode > TYTabAcousticSurfaceGeoNode
Collection de noeuds geometriques de type TYAcousticSurface.
std::vector< TYPoint > TYTabPoint
Collection de TYPoint.
std::map< TYElement *, bool > TYMapPtrElementBool
Etat d'utilisation des elements (utilise par les calculs)
std::vector< OVector3D > TYTabVector
Collection de OVector3D.
std::map< TYElement *, int > TYMapPtrElementInt
Tableau associatif des elements et d'un entier (utilise pour gerer les regimes)
std::vector< LPTYPolygon > TYTabLPPolygon
Collection de pointeurs de TYPolygon.
std::vector< LPTYElement > LPTYElementArray
#define TYDIRPREFERENCEMANAGER
Representation graphique d'un etage (fichier header)
TY_EXTENSION_INST(TYEtage)
TY_EXT_GRAPHIC_INST(TYEtage)
TYGeometryNode TYMachineGeoNode
Noeud geometrique de type TYMachine.
std::vector< LPTYMurGeoNode > TYTabMurGeoNode
Collection de noeuds geometriques de type TYMur.
TYGeometryNode TYMurGeoNode
Noeud geometrique de type TYMur.
TYGeometryNode TYSourcePonctuelleGeoNode
Noeud geometrique de type TYSourcePonctuelle.
std::vector< LPTYSourcePonctuelleGeoNode > TYTabSourcePonctuelleGeoNode
Collection de noeuds geometriques de type TYSourcePonctuelle.
TYGeometryNode TYUserSourcePonctuelleGeoNode
Noeud geometrique de type TYSourcePonctuelle.
Class for the definition of atmospheric conditions.
double compute_z()
compute impedance
double _y
y coordinate of OCoord3D
double _z
z coordinate of OCoord3D
double _x
x coordinate of OCoord3D
static void boundingBox(OPoint3D *pts, int nbPts, OPoint3D &ptMin, OPoint3D &ptMax)
Computes the simple bounding box for a volume using min-max method.
static bool pointInPolygonAngleSum(const OPoint3D &ptP, const OPoint3D *pts, int nbPts)
Tests if a point is inside a polygon using angle sum algorithm.
static bool pointInPolygonRayCasting(const OPoint3D &ptP, const OPoint3D *pts, int nbPts)
Tests if a point is inside a polygon using ray casting algorithm.
OMatrix getInvert(int *ok=0) const
Return the inverse matrix of this matrix.
Plan defined by its equation : ax+by+cz+d=0.
bool distancePlanParallel(const OPlan &plan, double &distance)
Calculate the distance between this plan and another parallel plane.
virtual const char * getClassName() const
static OPrototype * safeDownCast(OPrototype *pObject)
bool isA(const char *className) const
3D frame with a point and 3 vectors.
OVector3D _vecK
Vector K for the Z axis.
OVector3D _vecJ
Vector J for the Y axis.
OVector3D _vecI
Vector I for the X axis.
OPoint3D _origin
The origin point.
Class to define a segment.
virtual double longueur() const
Return the segment length.
OSpectreAbstract & sum(const OSpectreAbstract &spectre) const
Arithmetic sum of two spectrums in one-third Octave.
OSpectreAbstract & subst(const OSpectreAbstract &spectre) const
Arithmetic subtraction of two spectrums in one-third Octave.
OSpectreAbstract & toGPhy() const
Converts to physical quantity.
OSpectreAbstract & invMult(const double &coefficient=1.0) const
Division of a double constant by this spectrum.
void setEtat(TYSpectreEtat etat)
Force the spectrum state (to use carefully ...)
void setType(TYSpectreType type)
Set the spectrum type.
OSpectreAbstract & div(const OSpectreAbstract &spectre) const
Division of two spectrums.
void setDefaultValue(const double &valeur=TY_SPECTRE_DEFAULT_VALUE)
OSpectreAbstract & toDB() const
Converts to dB.
OSpectreAbstract & mult(const OSpectreAbstract &spectre) const
Multiplication of two spectrums.
static OSpectre getEmptyLinSpectre(const double &valInit=1.0E-20)
Create a physical quantity spectrum.
double norme() const
Computes the length of this vector.
void normalize()
Normalizes this vector.
OVector3D cross(const OVector3D &vector) const
Cross product.
double getDensiteSrcsH() const
virtual void setDensiteSrcsH(double densite, bool recursif=true)
virtual void setNextRegimeNb(const int &next)
TYRegime & getRegimeNb(const int &nb, bool &status)
size_t getNbRegimes() const
int getTypeDistribution() const
double getDensiteSrcsV() const
int _curRegime
Numero du regime de fonctionnement courant.
TYSpectre & getCurrentSpectre()
virtual int addRegime(const TYRegime ®ime)
TYTabRegimes _tabRegimes
Tableau des regimes de fonctionnement.
virtual void setDensiteSrcsV(double densite, bool recursif=true)
virtual void exportCSV(std::ofstream &ofs)
Export au format csv sur un flux transmis.
virtual void setRegime(TYSpectre &Spectre, int regime=-1, bool recursif=false)
virtual void setCurRegime(int regimeNumber)
int _nextRegime
Numero d'ordre du regime suivant.
virtual void setDensiteSrcs(double densite, bool recursif=true)
virtual bool remRegime(int regime)
virtual void setRegimeName(const QString &name)
bool _isRayonnant
Etat courant de l'element (rayonnant ou non rayonnant)
virtual TYTabSourcePonctuelleGeoNode getSrcs() const
virtual void distriSrcs()
virtual TYTabPoint getContour(int n=-1) const
virtual OPlan plan() const
virtual double surface() const
virtual LPTYPolygon getPolygon()
virtual OVector3D normal() const
virtual void exportCSV(std::ofstream &ofs)
Export au format csv sur un flux transmis.
virtual void setDensiteSrcsV(double densite, bool recursif=true)
virtual void remAllSrcs()
virtual void setCurRegime(int regime)
virtual double surface() const
virtual void propagateAtt(LPTYAttenuateur pAtt)
virtual TYTabSourcePonctuelleGeoNode getSrcs() const
virtual void exportCSV(std::ofstream &ofs)
Export au format csv sur un flux transmis.
LPTYSourceSurfacic getSrcSurf()
virtual void setDensiteSrcsH(double densite, bool recursif=true)
virtual LPTYMateriauConstruction getMateriau() const
virtual TYTabPoint getContour(int n=-1) const
virtual void setIsRayonnant(bool rayonnant=true, bool recursif=true)
Get/set de l'etat rayonnant ou pas.
virtual OVector3D normal() const
size_t getNbChild() const
virtual void setIsRayonnant(bool rayonnant=true, bool recursif=true)
virtual TYTabSourcePonctuelleGeoNode getSrcs() const
virtual void setCurRegime(int regime)
TYAcousticVolume & operator=(const TYAcousticVolume &other)
Operateur =.
virtual DOM_Element toXML(DOM_Element &domElement)
virtual int fromXML(DOM_Element domElement)
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
virtual void propagateAtt(LPTYAttenuateur pAtt)
virtual void setIsAcousticModified(bool isModified)
bool _forceNormales
Persistence du forcage des normales.
virtual void inverseNormales()
int isInside(const TYPoint &pt) const
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
virtual DOM_Element toXML(DOM_Element &domElement)
void setParoi(const LPTYParoi pParoi)
QString _name
Nom courant de l'element.
static bool getRegenerateID()
static TYUUID fromString(QString id)
bool callFromXMLIfEqual(DOM_Element &domElement, int *pRetVal=NULL)
static bool testId(const TYUUID &id, const TYElement *pElem)
const TYUUID & getID() const
virtual std::string toString() const
virtual void getChilds(LPTYElementArray &childs, bool recursif=true)
static void setRegenerateID(const bool &bRegenerate)
void setParent(TYElement *pParent)
static TYElement * getInstance(TYUUID uuid)
virtual void setIsGeometryModified(bool isModified)
virtual int fromXML(DOM_Element domElement)
virtual std::string toString() const
bool _closed
Indique si les murs constituant l'etage sont fermes.
virtual TYTabPoint sommets() const
OSpectre _absoSabine
Spectre du coefficient de Sabine de l'etage.
bool operator==(const TYEtage &other) const
virtual void setCurRegime(int regime)
virtual double volume() const
LPTYDalle _pSol
Dalle pour le sol.
virtual void distriSrcs()
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
void setacousticFacesPourCalcul(bool bPourCalculTrajet)
virtual TYSourcePonctuelle srcPonctEquiv() const
virtual void setNextRegimeNb(const int &next)
virtual void setDensiteSrcsV(double densite, bool recursif=true)
LPTYMachineGeoNode findMachine(const LPTYMachine pMachine)
void calculChampReverbere()
virtual void setDensiteSrcsH(double densite, bool recursif=true)
virtual TYPoint centreGravite() const
TYTabMachineGeoNode & getTabMachine()
virtual int isInside(const TYPoint &pt) const
LPTYDalle _pPlafond
Dalle pour le plafond.
TYTabPoint getContour() const
LPTYParoi _pParoi
Paroi par defaut de l'etage.
bool remMur(const LPTYMur pMur)
virtual int intersects(const OSegment3D &seg, TYTabPoint &ptList) const
bool operator!=(const TYEtage &other) const
virtual void exportCSV(std::ofstream &ofs)
Export au format csv sur un flux transmis.
double _surfAbsorbante
Surface d'absorption de la salle (comprend la suface des machines)
tabMapPtrElementRegime _tabRegimesMachines
Gestion des regimes des machines.
virtual TYTabAcousticSurfaceGeoNode acousticFaces()
double _volumeLibre
Volume libre de la salle (volume de la salle vide - volume des machines)
virtual bool findAcousticSurface(const TYAcousticSurface *pAccSurf, OMatrix *pMatrix=0)
TYTabMurGeoNode & getTabMur()
bool addMur(LPTYMur pMur)
TYSpectre getPuissanceRayonnee(LPTYAcousticSurface pSurface, const OMatrix matMur, const LPTYParoi pMurParoi)
TYTabMurGeoNode _tabMur
Liste des murs.
TYTabUserSourcePonctuelleGeoNode _tabSources
Liste des sources ponctuelles.
virtual bool remRegime(int regime)
TYTabAcousticSurfaceGeoNode _facesMachineSol
Collection des faces des machines collees au sol.
virtual DOM_Element toXML(DOM_Element &domElement)
TYSpectre _TR
Spectre de TR.
virtual void getChilds(LPTYElementArray &childs, bool recursif=true)
virtual TYTabVector normals() const
virtual void remAllSrcs()
double getHauteur() const
virtual void setRegime(TYSpectre &Spectre, int regime=-1, bool recursif=true)
OSpectre champDirect(const OPoint3D &unPoint)
bool remSource(const LPTYUserSourcePonctuelleGeoNode pSourceGeoNode)
bool addSource(LPTYUserSourcePonctuelleGeoNode pSourceGeoNode)
virtual double surface() const
void setParoi(const LPTYParoi pParoi)
TYTabMachineGeoNode _tabMachine
Liste des sources.
void verifTabRegimeSources()
TYEtage & operator=(const TYEtage &other)
TYSpectre _reverb
Spectre du champ reverbere.
virtual void setRegimeName(const QString &name)
LPTYUserSourcePonctuelleGeoNode findSource(const LPTYUserSourcePonctuelle pSource)
virtual void propagateAtt(LPTYAttenuateur pAtt)
void calculChampRevSabine()
spectre de pression acoustique après fonction
virtual TYTabLPPolygon faces() const
bool addMachine(LPTYMachineGeoNode pMachineGeoNode)
virtual TYSpectre setGlobalLW(const TYSpectre &spectre, const double &surfGlobale, const int ®ime=-1)
virtual bool updateAcoustic(const bool &force=false)
void setHauteur(double hauteur)
tabMapPtrElementBool _tabEtatMachines
Gestion des etats des machines.
bool remMachine(const LPTYMachineGeoNode pMachineGeoNode)
bool setMurs(const TYTabPoint &tabPts, double hauteur=2.0, bool close=true)
virtual TYBox volEnglob() const
virtual double activeSurface() const
void findFaceMachineSol()
virtual TYTabSourcePonctuelleGeoNode getSrcs() const
void setMatrix(const OMatrix &matrix)
TYElement * getElement() const
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
OMatrix getMatrix() const
void setRepere(const ORepere3D &repere)
TYSpectre & getSpectreAbso()
TYSpectre & getSpectreTransm()
QString generateName(const char *classname)
Retourne le nom de la classe associe a un nombre.
static TYNameManager * get()
Retourne l'instance singleton.
virtual DOM_Element toXML(DOM_Element &domElement)
TYMateriauConstruction * getMatStruct()
virtual bool deepCopy(const TYElement *pOther, bool copyId=true, bool pUseCopyTag=false)
TYMateriauConstruction * getMatFace1()
void transform(const OMatrix &matrix)
void setPoints(const TYTabPoint &pts)
void setRegimeName(const QString &nom)
virtual TYSpectre * getSpectre(int regime=-1) const
static TYSpectre getEmptyLinSpectre(const double &valInit=1.0E-20)
Cree un spectre en lin.
virtual TYSpectre * getSpectre(int regime=-1) const
void setCurrentRegime(const int ®imeNumber)
void setIsRayonnant(const bool &rayonnant)
virtual int intersects(const OSegment3D &seg, TYTabPoint &ptList) const
virtual TYBox volEnglob() const
void calculRayonSphere(const TYBox &volEnglob)
virtual void calculCentreGravite()
std::string intToStr(int val)