X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_PolyhedronPerSolid_3D.cxx;h=25c46a2512454ce9e366b4bf32db5b1a60b41e78;hp=eeb19d48e5bbef330b1219af904a5d8c753a972b;hb=d9f4b53e489dd5857db264ede6acded7b076c9f1;hpb=0fc0831670e27a5611b941c52dc152fd63964515 diff --git a/src/StdMeshers/StdMeshers_PolyhedronPerSolid_3D.cxx b/src/StdMeshers/StdMeshers_PolyhedronPerSolid_3D.cxx index eeb19d48e..25c46a251 100644 --- a/src/StdMeshers/StdMeshers_PolyhedronPerSolid_3D.cxx +++ b/src/StdMeshers/StdMeshers_PolyhedronPerSolid_3D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2022 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 @@ -196,6 +196,9 @@ namespace int iSide = trias[0] + 1; if ( iSide == trias[1] ) ++iSide; + if (iSide == 5) + // use first side (otherwise, out of bounds) + iSide = 0; const SMDS_MeshElement* botFace = faces[ trias[0]]; const SMDS_MeshElement* topFace = faces[ trias[1]]; @@ -296,10 +299,6 @@ namespace if ( hexa[1] == -1 ) return newHexPrism; - int iSide = hexa[0] + 1; - if ( iSide == hexa[1] ) - ++iSide; - const SMDS_MeshElement* botFace = faces[ hexa[ 0 ]]; const SMDS_MeshElement* topFace = faces[ hexa[ 1 ]]; std::vector< const SMDS_MeshNode* > nodes( 24 ); // last 12 is a working buffer @@ -577,7 +576,7 @@ bool StdMeshers_PolyhedronPerSolid_3D::Evaluate(SMESH_Mesh& theMesh, case TopAbs_FACE: { myFaceMesher->Evaluate( theMesh, shape, theResMap ); - std::vector & quantities = theResMap[ sm ]; + std::vector & quantities = theResMap[ sm ]; _quadraticMesh = ( !quantities.empty() && ( quantities[ SMDSEntity_Quad_Triangle ] + quantities[ SMDSEntity_Quad_Quadrangle ] + @@ -587,7 +586,7 @@ bool StdMeshers_PolyhedronPerSolid_3D::Evaluate(SMESH_Mesh& theMesh, case TopAbs_SOLID: { - std::vector & quantities = theResMap[ sm ]; + std::vector & quantities = theResMap[ sm ]; quantities.resize( SMDSEntity_Last, 0 ); SMESH_MesherHelper helper( theMesh );