X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_PolyhedronPerSolid_3D.cxx;h=3f128010c254d2c6ce3c8f35876380f4d0e92b8c;hb=refs%2Ftags%2FV9_7_0b1;hp=6695eea7bc32ae6ac14e428602a5a509288de8a6;hpb=eb32ac37f34e97d1da90cd63579efa6590ecf300;p=modules%2Fsmesh.git diff --git a/src/StdMeshers/StdMeshers_PolyhedronPerSolid_3D.cxx b/src/StdMeshers/StdMeshers_PolyhedronPerSolid_3D.cxx index 6695eea7b..3f128010c 100644 --- a/src/StdMeshers/StdMeshers_PolyhedronPerSolid_3D.cxx +++ b/src/StdMeshers/StdMeshers_PolyhedronPerSolid_3D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2021 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 );