105 if (TYAcousticVolume::operator!=(other))
171 unsigned int i = 0, j = 0;
172 for (i = 0; i < pOtherEtage->
_tabMur.size(); i++)
175 pMurGeoNode->deepCopy(pOtherEtage->
_tabMur[i], copyId);
176 pMurGeoNode->getElement()->setParent(
this);
177 pMurGeoNode->setParent(
this);
178 _tabMur.push_back(pMurGeoNode);
182 for (i = 0; i < pOtherEtage->
_tabSources.size(); i++)
185 pSourceGeoNode->deepCopy(pOtherEtage->
_tabSources[i], copyId);
186 pSourceGeoNode->getElement()->setParent(
this);
187 pSourceGeoNode->setParent(
this);
192 for (i = 0; i < pOtherEtage->
_tabMachine.size(); i++)
213 mapSources[pElem] = 0;
218 mapSources[pElem] = 0;
230 mapEtats[pElem] =
false;
235 mapEtats[pElem] =
false;
265 DOM_Element listMurNode = domDoc.createElement(
"ListMur");
266 domNewElem.appendChild(listMurNode);
267 for (i = 0; i <
_tabMur.size(); i++)
270 _tabMur[i]->toXML(listMurNode);
277 DOM_Element listMachineNode = domDoc.createElement(
"ListMachine");
278 domNewElem.appendChild(listMachineNode);
290 DOM_Element listSourceNode = domDoc.createElement(
"ListSource");
291 domNewElem.appendChild(listSourceNode);
299 DOM_Element listEtatNode = domDoc.createElement(
"TabEtatElement");
300 domNewElem.appendChild(listEtatNode);
310 DOM_Element tmpNode = domDoc.createElement(
"Regime");
311 listEtatNode.appendChild(tmpNode);
313 tmpNode.setAttribute(
"num",
intToStr(i).data());
315 TYMapPtrElementBool::iterator iter;
318 DOM_Element itemNode = domDoc.createElement(
"Element");
319 tmpNode.appendChild(itemNode);
320 itemNode.setAttribute(
"accVolNodeId", (*iter).first->getID().toString());
321 itemNode.setAttribute(
"state",
intToStr((*iter).second).c_str());
326 DOM_Element listRegimeNode = domDoc.createElement(
"TabRegimeElement");
327 domNewElem.appendChild(listRegimeNode);
337 DOM_Element tmpNode = domDoc.createElement(
"Regime");
338 listRegimeNode.appendChild(tmpNode);
340 tmpNode.setAttribute(
"num",
intToStr(i).data());
342 TYMapPtrElementInt::iterator iter;
345 DOM_Element itemNode = domDoc.createElement(
"Element");
346 tmpNode.appendChild(itemNode);
347 itemNode.setAttribute(
"accVolNodeId", (*iter).first->getID().toString());
348 itemNode.setAttribute(
"regime",
intToStr((*iter).second).c_str());
366 bool closedOk =
false;
367 bool solFound =
false;
368 bool plafondFound =
false;
369 bool reverbOk =
false;
370 bool tabEtatElemFound =
false;
371 bool tabRegimeElemFound =
false;
377 unsigned int i = 0, j = 0;
381 std::map<TYUUID, TYUUID> mapDoublons;
383 bool bDoublon =
false;
385 QDomNodeList childs = domElement.childNodes();
386 for (i = 0; i < childs.length(); i++)
388 elemCur = childs.item(i).toElement();
393 if (elemCur.nodeName() ==
"ListMur")
396 QDomNodeList childs2 = elemCur.childNodes();
398 for (j = 0; j < childs2.length(); j++)
400 elemCur2 = childs2.item(j).toElement();
401 if (pMurGeoNode->callFromXMLIfEqual(elemCur2, &retVal))
405 _tabMur.push_back(pMurGeoNode);
416 else if (!plafondFound)
421 if (elemCur.nodeName() ==
"ListMachine")
424 QDomNodeList childs2 = elemCur.childNodes();
430 for (j = 0; j < childs2.length(); j++)
432 elemCur2 = childs2.item(j).toElement();
447 mapDoublons[idOld] = idNew;
461 if (elemCur.nodeName() ==
"ListSource")
464 QDomNodeList childs2 = elemCur.childNodes();
470 for (j = 0; j < childs2.length(); j++)
472 elemCur2 = childs2.item(j).toElement();
474 if (pSourceGeoNode->callFromXMLIfEqual(elemCur2, &retVal))
479 if (pSourceGeoNode->getElement()->isA(
"TYSourcePonctuelle"))
484 pSourceGeoNode->setElement((
TYElement*)pUSP);
488 TYElement* pElem = pSourceGeoNode->getElement();
496 mapDoublons[idOld] = idNew;
501 pSourceGeoNode->getElement()->setParent(
this);
512 if (elemCur.nodeName() ==
"TabEtatElement")
514 tabEtatElemFound =
true;
516 QDomNodeList childs3 = elemCur.childNodes();
518 for (j = 0; j < childs3.length(); j++)
520 elemCur3 = childs3.item(j).toElement();
522 bool regimeMachineOk =
false;
524 if (elemCur3.nodeName() ==
"Regime")
533 QDomNodeList childs4 = elemCur3.childNodes();
536 for (
unsigned int k = 0; k < childs4.length(); k++)
542 elemCur4 = childs4.item(k).toElement();
544 if (elemCur4.nodeName() ==
"Element")
555 id2 = mapDoublons[id2];
569 mapEtatRegime[pElement] = etat;
579 if (elemCur.nodeName() ==
"TabRegimeElement")
581 tabRegimeElemFound =
true;
585 QDomNodeList childs3 = elemCur.childNodes();
588 for (j = 0; j < childs3.length(); j++)
590 elemCur3 = childs3.item(j).toElement();
592 bool regimeMachineOk =
false;
593 if (elemCur3.nodeName() ==
"Regime")
602 QDomNodeList childs4 = elemCur3.childNodes();
604 for (
unsigned int k = 0; k < childs4.length(); k++)
606 elemCur4 = childs4.item(k).toElement();
610 int regimeMachine = 0;
612 if (elemCur4.nodeName() ==
"Element")
623 id2 = mapDoublons[id2];
637 mapRegimeMachine[pElement] = regimeMachine;
648 if (!(tabEtatElemFound && tabRegimeElemFound))
688 for (
unsigned int j = 0; j <
_tabSources.size(); j++)
693 if (pSource ==
nullptr)
698 std::map<TYElement*, bool>::iterator itEtat;
700 for (itEtat = mapEtatRegime.begin(); itEtat != mapEtatRegime.end(); itEtat++)
702 if (itEtat->first == pElement)
711 mapEtatRegime[pElement] =
false;
712 mapRegimeMachine[pElement] = 0;
716 for (
unsigned int j = 0; j <
_tabMachine.size(); j++)
720 if (!pElement->
isA(
"TYMachine"))
725 std::map<TYElement*, bool>::iterator itEtat;
727 for (itEtat = mapEtatRegime.begin(); itEtat != mapEtatRegime.end(); itEtat++)
729 if (itEtat->first == pElement)
738 mapEtatRegime[pElement] =
false;
739 mapRegimeMachine[pElement] = 0;
748 ofs <<
_name.toStdString() <<
'\n';
753 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
772 for (i = 0; i <
_tabMur.size(); i++)
774 childs.push_back(
_tabMur[i]->getElement());
777 childs.push_back(
_pSol);
782 for (i = 0; i <
_tabMur.size(); i++)
784 _tabMur[i]->getChilds(childs, recursif);
806 pMur->setParent(
this);
823 TYTabMurGeoNode::iterator ite;
846 TYTabMurGeoNode::iterator ite;
850 if ((*ite)->getElement()->getID().toString() == idMur)
878 size_t count = tabPts.size();
881 if ((count == 0) || (hauteur <= 0.0))
890 if (tabPts.size() > 1)
901 if (tabPts[0].isEqual(tabPts[count - 1]))
913 for (
int i = 0; i < count; i++)
916 pt0 = tabPts[(i + 1) % tabPts.size()];
924 pMur->setParent(
this);
926 pMur->setSize(vec01.
norme(), hauteur);
934 repMur.
_vecI = vec01;
939 pMurGeoNode->setRepere(repMur);
941 _tabMur.push_back(pMurGeoNode);
965 for (i = 0; i < nbPts; i++)
971 pt =
_tabMur[i]->getMatrix() * pt;
985 pt =
_tabMur[i - 1]->getMatrix() * pt;
1003 for (
size_t i = 0; i < nbPts; i++)
1009 _tabMur[i]->getORepere3D()._origin._z = hauteur / 2.0;
1032 assert(pMachineGeoNode);
1045 for (
unsigned int i = 0; i <
_tabRegimes.size(); i++)
1071 assert(pMachineGeoNode);
1073 TYTabMachineGeoNode::iterator ite;
1077 if ((*ite) == pMachineGeoNode)
1087 TYMapPtrElementInt::iterator iter;
1088 TYMapPtrElementBool::iterator itb;
1089 for (
unsigned int i = 0; i <
_tabRegimes.size(); i++)
1108 TYTabMachineGeoNode::iterator ite;
1122 TYMapPtrElementInt::iterator iter;
1123 TYMapPtrElementBool::iterator itb;
1124 for (
unsigned int i = 0; i <
_tabRegimes.size(); i++)
1142 TYTabMachineGeoNode::iterator ite;
1146 if ((*ite)->getElement()->getID().toString() == idMachine)
1155 TYElement* pElement = (*ite)->getElement();
1156 TYMapPtrElementInt::iterator iter;
1157 TYMapPtrElementBool::iterator itb;
1158 for (
unsigned int i = 0; i <
_tabRegimes.size(); i++)
1174 unsigned int i = 0, j = 0;
1176 TYMapPtrElementInt::iterator iter;
1187 TYMapPtrElementBool::iterator itb;
1205 TYTabMachineGeoNode::iterator ite;
1220 assert(pSourceGeoNode);
1221 assert(pSourceGeoNode->getElement());
1223 if (this->
isA(
"TYAcousticCylinder"))
1228 pSourceGeoNode->setParent(
this);
1229 pSourceGeoNode->getElement()->setParent(
this);
1234 TYElement* pElement = pSourceGeoNode->getElement();
1235 for (
unsigned int i = 0; i <
_tabRegimes.size(); i++)
1259 assert(pSourceGeoNode);
1262 TYTabUserSourcePonctuelleGeoNode::iterator ite;
1266 if ((*ite) == pSourceGeoNode)
1275 TYElement* pElement = (*ite)->getElement();
1276 TYMapPtrElementInt::iterator iter;
1277 TYMapPtrElementBool::iterator itb;
1278 for (
unsigned int i = 0; i <
_tabRegimes.size(); i++)
1296 TYTabUserSourcePonctuelleGeoNode::iterator ite;
1310 TYMapPtrElementInt::iterator iter;
1311 TYMapPtrElementBool::iterator itb;
1312 for (
unsigned int i = 0; i <
_tabRegimes.size(); i++)
1330 TYTabUserSourcePonctuelleGeoNode::iterator ite;
1342 TYElement* pElement = (*ite)->getElement();
1343 TYMapPtrElementInt::iterator iter;
1344 TYMapPtrElementBool::iterator itb;
1345 for (
unsigned int i = 0; i <
_tabRegimes.size(); i++)
1362 unsigned int i = 0, j = 0;
1364 TYMapPtrElementInt::iterator iter;
1375 TYMapPtrElementBool::iterator itb;
1394 TYTabUserSourcePonctuelleGeoNode::iterator ite;
1411 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1422 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1448 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1457 TYMapPtrElementInt::iterator iter;
1461 if (pElement->
isA(
"TYMachine"))
1476 TYMapPtrElementBool::iterator iter2;
1480 if (pElement->
isA(
"TYMachine"))
1484 bool etat = (*iter2).second;
1511 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1533 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1548 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1566 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1582 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1586 if (pMur->getIsRayonnant())
1588 tabChild = pMur->getSrcs();
1592 for (
unsigned int j = 0; j < tabChild.size(); j++)
1594 tabChild[j]->setMatrix(matrix * tabChild[j]->getMatrix());
1598 tab.insert(tab.end(), tabChild.begin(), tabChild.end());
1603 tab.insert(tab.end(), tabChild.begin(), tabChild.end());
1606 tab.insert(tab.end(), tabChild.begin(), tabChild.end());
1622 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1638 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1653 for (i = 0; i <
_tabMur.size(); i++)
1662 for (i = 0; i <
_tabMur.size(); i++)
1665 if (pMur->getIsRayonnant())
1697 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1707 if (pCurrentMur->getIsRayonnant())
1710 double surfMur = pCurrentMur->activeSurface();
1715 LWMur = pCurrentMur->getCurrentSpectre().toGPhy();
1726 for (
unsigned int j = 0; j < tabAcousticSurf.size(); j++)
1733 assert(pCurrentSurf);
1735 if (pCurrentSurf->
getIsSub() ==
true)
1740 LWEtage = LWEtage.
sum(LWElt);
1752 LWMur = LWMur.
sum(LWElt);
1756 double surfElt = pCurrentSurf->
surface();
1757 LWElt = LWMur.
mult(surfElt / surfMur);
1765 pCurrentSurf->
setRegime(aSpectre, -1,
false);
1775 pCurrentMur->setRegime(aSpectre, -1,
false);
1783 LWEtage = LWEtage.
sum(LWMur);
1800 LWEtage = LWEtage.
sum(LWElt);
1818 LWEtage = LWEtage.
sum(LWElt);
1842 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1857 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1860 normale =
_tabMur[i]->getMatrix() * normale;
1861 tab.push_back(normale);
1875 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1877 for (
int j = 0; j < 4; j++)
1883 pt =
_tabMur[i]->getMatrix() * pt;
1897 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
1908 tab.push_back(pPolygon);
1924 TYPoint centre(0.0, 0.0, 0.0);
1928 size_t nbPts = pts.size();
1931 for (
size_t i = 0; i < nbPts; i++)
1933 centre.
_x += pts[i]._x;
1934 centre.
_y += pts[i]._y;
1966 size_t nbPts = ptsSol.size();
1977 for (
size_t i = 0; i < nbPts; i++)
1990 OBox box(ptMin, ptMax);
2014 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
2025 for (j = 0; j < tabTmp.size(); j++)
2050 ORepere3D rep = tabTmp[j]->getORepere3D();
2061 tab.push_back(pAccSurfGeoNode1);
2062 tab.push_back(pAccSurfGeoNode2);
2068 OMatrix matrix = matrixMur * tabTmp[j]->getMatrix();
2090 for (
unsigned int i = 0; (i <
_tabMur.size()) && !ret; i++)
2096 for (
unsigned int j = 0; j < tabTmp.size(); j++)
2103 *pMatrix = *pMatrix *
_tabMur[i]._pObj->getMatrix() * tabTmp[j]._pObj->getMatrix();
2120 size_t i = 0, j = 0;
2123 double surfElem = 0.0;
2129 size_t nbFaces = this->
getTabMur().size();
2131 for (i = 0; i < nbFaces; i++)
2137 for (j = 0; j < elemMur.size(); j++)
2144 surfElem = pMurElt->surface();
2147 if (pMurElt->getIsSub())
2150 absoElem = pMurElt->getParoi()->getMatFace1()->getSpectreAbso().mult(surfElem);
2167 double aireTotMachinesSol = 0.0;
2170 aireTotMachinesSol = aireTotMachinesSol +
2191 for (i = 0; i < nbMachines; i++)
2195 for (j = 0; j < elemMachine.size(); j++)
2199 surfElem = pElemMachine->surface();
2204 absoElem = pElemMachine->getMateriau()->getSpectreAbso().mult(surfElem);
2207 double volElem = pElemMachine->volume();
2218 surfElem = pSurface->
surface();
2247 int nbPts =
static_cast<int>(
_tabMur.size());
2253 for (
int i = nbPts - 1; i >= 0; --i)
2258 ptSol =
_tabMur[i]->getMatrix() * ptSol;
2260 pointsSol.push_back(ptSol);
2265 ptPlafond =
_tabMur[i]->getMatrix() * ptPlafond;
2267 pointsPlafond.push_back(ptPlafond);
2273 std::vector<TYPoint>::reverse_iterator it;
2274 for (it = tabPtsTemp.rbegin(); it != tabPtsTemp.rend(); it++)
2276 pointsSol.push_back((*it));
2291 unsigned int i = 0, j = 0;
2292 double distance = NAN;
2307 for (j = 0; j < tabSrcNode.size(); j++)
2316 OPoint3D posPtInSrcRep = matInv * unPoint;
2341 posSource = *pSrc->
getPos();
2374 unsigned int i = 0, j = 0;
2399 tabAllSources.insert(tabAllSources.end(), tabSrcMachine.begin(), tabSrcMachine.end());
2415 for (j = 0; j < tabAllSources.size(); j++)
2432 for (
unsigned int i = 0; i < tabMur.size(); i++)
2456 for (
unsigned int j = 0; j < tabTmp.size(); j++)
2459 OMatrix matrix = matrixMachine * tabTmp[j]->getMatrix();
2460 tabTmp[j]->setMatrix(matrix);
2462 accFaces.push_back(tabTmp[j]);
2468 double distance = 0.0;
2470 for (i = 0; i < accFaces.size(); i++)
2478 if (contour.size() < 3)
2483 OMatrix matrixFace = accFaces[i]->getMatrix();
2491 OPlan planFace(ptPlan, vecPlan);
2546 for (
unsigned int i = 0; i <
_tabMur.size(); i++)
2561 for (i = 0; i <
_tabMur.size(); i++)
2565 surface += pMur->activeSurface();
2594 if (pMurElt->getIsSub())
2597 spectreAtt = pMurElt->getParoi()->getMatStruct()->getSpectreTransm();
2612 double surf = pCurrentSurf->
surface() / tabSources.size();
2615 for (
unsigned int k = 0; k < tabSources.size(); k++)
2620 posSrc = matMur * *(pSource->
getPos());
2631 s =
s.div((spectreAtt).toGPhy());
2633 spectreEltMur = spectreEltMur.
sum(
s);
2637 return spectreEltMur;
2672 size_t nbFaces = this->
getTabMur().size();
2677 for (i = 0; i < nbFaces; i++)
2683 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)