X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FARCHIMEDE%2FArchimede_VolumeSection.cxx;h=4409791c8e500df6a68a101cb3e9449fc621cf10;hb=c1d63ef1f803d255b61ee99fb618bf471add07f4;hp=a3911ae855d22ef815a8a1862bd80a587b9d683e;hpb=b6f0965afb72083a5234f9b4fb0b233adaaf8d9d;p=modules%2Fgeom.git diff --git a/src/ARCHIMEDE/Archimede_VolumeSection.cxx b/src/ARCHIMEDE/Archimede_VolumeSection.cxx index a3911ae85..4409791c8 100644 --- a/src/ARCHIMEDE/Archimede_VolumeSection.cxx +++ b/src/ARCHIMEDE/Archimede_VolumeSection.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2022 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2023 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -88,15 +88,14 @@ void VolumeSection::CenterOfGravity() TopoDS_Face F = TopoDS::Face(ex.Current()); Handle(Poly_Triangulation) Tr = BRep_Tool::Triangulation(F, L); if(Tr.IsNull()) - MESSAGE("Error, null layer" ) + MESSAGE("Error, null layer" ); nbNodes = Tr->NbNodes(); - const TColgp_Array1OfPnt& Nodes = Tr->Nodes(); // Calcul des dimensions de la boite englobante du solide for(i=1;i<=nbNodes;i++) { - InitPoint = Nodes(i).Transformed(L.Transformation()); + InitPoint = Tr->Node(i).Transformed(L.Transformation()); if(InitPoint.X() < Xmin) Xmin = InitPoint.X(); if(InitPoint.X() > Xmax) @@ -113,8 +112,8 @@ void VolumeSection::CenterOfGravity() } } - // Creation du point d'initialisation, c'est € dire le centre de gravit‰ - //g‰om‰trique de la boite englobante + // Creation du point d'initialisation, c'est e dire le centre de gravite + // geometrique de la boite englobante InitPoint.SetX(0.5 * (Xmin + Xmax)); InitPoint.SetY(0.5 * (Ymin + Ymax)); @@ -131,9 +130,9 @@ Standard_Real VolumeSection::CalculateVolume(Standard_Real Elevation) Standard_Real Volume=0; Standard_Real Determinant=0; gp_Pnt P[3]; - + // Projection du point d'initialisation sur le plan de section - + InitPoint.SetZ(Elevation); for (ex.Init(myShape, TopAbs_FACE); ex.More(); ex.Next()) @@ -141,29 +140,26 @@ Standard_Real VolumeSection::CalculateVolume(Standard_Real Elevation) TopoDS_Face F = TopoDS::Face(ex.Current()); Handle(Poly_Triangulation) Tr = BRep_Tool::Triangulation(F, L); if(Tr.IsNull()) - MESSAGE("Error, null layer" ) - const Poly_Array1OfTriangle& triangles = Tr->Triangles(); + MESSAGE("Error, null layer" ); Standard_Integer nbTriangles = Tr->NbTriangles(); - //nbNodes = Tr->NbNodes(); - const TColgp_Array1OfPnt& Nodes = Tr->Nodes(); - + // Calcul des volumes de chaque triangle, de chaque face - //en tenant compte des triangles coup‰s par le plan de section - - for (i=1;i<=nbTriangles;i++) + // en tenant compte des triangles coupes par le plan de section + + for (i=1;i<=nbTriangles;i++) { Determinant=0; //Gardons la meme orientation des noeuds if (F.Orientation() == TopAbs_REVERSED) - triangles(i).Get(noeud[0], noeud[2], noeud[1]); + Tr->Triangle(i).Get(noeud[0], noeud[2], noeud[1]); else - triangles(i).Get(noeud[0], noeud[1], noeud[2]); + Tr->Triangle(i).Get(noeud[0], noeud[1], noeud[2]); - P[0] = Nodes(noeud[0]).Transformed(L.Transformation()); + P[0] = Tr->Node(noeud[0]).Transformed(L.Transformation()); z[0] = P[0].Z(); - P[1] = Nodes(noeud[1]).Transformed(L.Transformation()); + P[1] = Tr->Node(noeud[1]).Transformed(L.Transformation()); z[1] = P[1].Z(); - P[2] = Nodes(noeud[2]).Transformed(L.Transformation()); + P[2] = Tr->Node(noeud[2]).Transformed(L.Transformation()); z[2] = P[2].Z(); // Determination des cas aux limites pour les triangles @@ -234,7 +230,7 @@ Standard_Real VolumeSection::Archimede(Standard_Real Constante , Standard_Real E Bsup = Zmax; if(Binf>Bsup) { - MESSAGE("error, Bound + < Bound - in dichotomy") + MESSAGE("error, Bound + < Bound - in dichotomy"); return -1; } tempBsupVolume = CalculateVolume(Bsup); @@ -242,7 +238,7 @@ Standard_Real VolumeSection::Archimede(Standard_Real Constante , Standard_Real E if (Constante>tempBsupVolume || Constante