X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FARCHIMEDE%2FArchimede_VolumeSection.cxx;h=4409791c8e500df6a68a101cb3e9449fc621cf10;hb=c1d63ef1f803d255b61ee99fb618bf471add07f4;hp=c4a9479a3806b965aab8b01a52667d387e098588;hpb=888b3b52e179ae1505352d56ba63477275693919;p=modules%2Fgeom.git diff --git a/src/ARCHIMEDE/Archimede_VolumeSection.cxx b/src/ARCHIMEDE/Archimede_VolumeSection.cxx index c4a9479a3..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 @@ -90,13 +90,12 @@ void VolumeSection::CenterOfGravity() if(Tr.IsNull()) 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) @@ -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()) @@ -142,28 +141,25 @@ Standard_Real VolumeSection::CalculateVolume(Standard_Real Elevation) Handle(Poly_Triangulation) Tr = BRep_Tool::Triangulation(F, L); if(Tr.IsNull()) MESSAGE("Error, null layer" ); - const Poly_Array1OfTriangle& triangles = Tr->Triangles(); 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 coupes par le plan de section - - for (i=1;i<=nbTriangles;i++) + + 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