X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_Hexa_3D.cxx;h=eeb6ad40e028aa68d42ff8927e5200cd3752870c;hp=26b22cae1347584cda6e05236a05bfb0ad78f474;hb=9d0765db5d66008669b55c3388966a8de3755c92;hpb=d245f797f1b69aca678fa372391275d7042faa10 diff --git a/src/StdMeshers/StdMeshers_Hexa_3D.cxx b/src/StdMeshers/StdMeshers_Hexa_3D.cxx index 26b22cae1..eeb6ad40e 100644 --- a/src/StdMeshers/StdMeshers_Hexa_3D.cxx +++ b/src/StdMeshers/StdMeshers_Hexa_3D.cxx @@ -56,6 +56,8 @@ #include +#include + typedef SMESH_Comment TComm; using namespace std; @@ -824,23 +826,22 @@ bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh, pointsOnShapes[ SMESH_Block::ID_V111 ] = fTop->GetXYZ( X, Y ); gp_XYZ params; // normalized parameters of an internal node within the unit box - for ( x = 0; x < xSize; ++x ) + + if ( toRenumber ) + for ( y = 0; y < ySize; ++y ) + { + vector< const SMDS_MeshNode* >& column0y = columns[ colIndex( 0, y )]; + for ( z = 0; z < zSize; ++z ) + renumHelper.AddReplacingNode( column0y[ z ] ); + } + + for ( x = 1; x < xSize-1; ++x ) { if ( toRenumber ) { vector< const SMDS_MeshNode* >& columnX0 = columns[ colIndex( x, 0 )]; for ( z = 0; z < zSize; ++z ) renumHelper.AddReplacingNode( columnX0[ z ] ); - if ( x == 0 || x == X ) - { - for ( y = 1; y < ySize; ++y ) - { - vector< const SMDS_MeshNode* >& column0Y = columns[ colIndex( x, y )]; - for ( z = 0; z < zSize; ++z ) - renumHelper.AddReplacingNode( column0Y[ z ] ); - } - continue; - } } const double rX = x / double(X); @@ -912,6 +913,14 @@ bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh, } } // x loop + if ( toRenumber ) + for ( y = 0; y < ySize; ++y ) + { + vector< const SMDS_MeshNode* >& columnXy = columns[ colIndex( X, y )]; + for ( z = 0; z < zSize; ++z ) + renumHelper.AddReplacingNode( columnXy[ z ] ); + } + // side data no more needed, free memory for ( int i = 0; i < 6; ++i ) SMESHUtils::FreeVector( aCubeSide[i]._columns );