mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-14 02:30:33 +05:00
0022414: [CEA 1010] Regressio on tests 01_composite.py
Fix for a vertex w/o a node
This commit is contained in:
parent
1faf00f679
commit
a004160516
@ -1397,6 +1397,8 @@ bool StdMeshers_Quadrangle_2D::ComputeQuadPref (SMESH_Mesh & aMesh,
|
||||
bool WisF = true;
|
||||
int i,j,geomFaceID = meshDS->ShapeToIndex(F);
|
||||
|
||||
UpdateDegenUV( quad );
|
||||
|
||||
int nb = quad->side[0]->NbPoints();
|
||||
int nr = quad->side[1]->NbPoints();
|
||||
int nt = quad->side[2]->NbPoints();
|
||||
@ -1436,14 +1438,14 @@ bool StdMeshers_Quadrangle_2D::ComputeQuadPref (SMESH_Mesh & aMesh,
|
||||
int addh = 0;
|
||||
int addv = 0;
|
||||
|
||||
// Orientation of face and 3 main domain for future faces
|
||||
// ----------- Old version ---------------
|
||||
// orientation of face and 3 main domain for future faces
|
||||
// 0 top 1
|
||||
// 1------------1
|
||||
// | | | |
|
||||
// | | | |
|
||||
// | |C | |
|
||||
// | L | | R |
|
||||
// left | | | | rigth
|
||||
// left | |__| | rigth
|
||||
// | / \ |
|
||||
// | / C \ |
|
||||
// |/ \|
|
||||
@ -1451,15 +1453,14 @@ bool StdMeshers_Quadrangle_2D::ComputeQuadPref (SMESH_Mesh & aMesh,
|
||||
// 0 bottom 1
|
||||
|
||||
// ----------- New version ---------------
|
||||
// orientation of face and 3 main domain for future faces
|
||||
// 0 top 1
|
||||
// 1------------1
|
||||
// | |____| |
|
||||
// | |_C__| |
|
||||
// | / \ |
|
||||
// | / C \ |
|
||||
// left |/________\| rigth
|
||||
// | |
|
||||
// | |
|
||||
// | C |
|
||||
// | |
|
||||
// 0------------0
|
||||
// 0 bottom 1
|
||||
@ -1481,8 +1482,6 @@ bool StdMeshers_Quadrangle_2D::ComputeQuadPref (SMESH_Mesh & aMesh,
|
||||
if (uv_eb.size() != nb || uv_er.size() != nr || uv_et.size() != nt || uv_el.size() != nl)
|
||||
return error(COMPERR_BAD_INPUT_MESH);
|
||||
|
||||
UpdateDegenUV( quad );
|
||||
|
||||
// arrays for normalized params
|
||||
TColStd_SequenceOfReal npb, npr, npt, npl;
|
||||
for (i=0; i<nb; i++) {
|
||||
@ -2758,10 +2757,10 @@ bool StdMeshers_Quadrangle_2D::ComputeReduced (SMESH_Mesh & aMesh,
|
||||
|
||||
vector<int> nb_col_by_row;
|
||||
|
||||
int delta_all = nb - nt;
|
||||
int delta_all = nb - nt;
|
||||
int delta_one_col = nrows * 2;
|
||||
int nb_col = delta_all / delta_one_col;
|
||||
int remainder = delta_all - nb_col * delta_one_col;
|
||||
int nb_col = delta_all / delta_one_col;
|
||||
int remainder = delta_all - nb_col * delta_one_col;
|
||||
if (remainder > 0) {
|
||||
nb_col++;
|
||||
}
|
||||
@ -2772,13 +2771,13 @@ bool StdMeshers_Quadrangle_2D::ComputeReduced (SMESH_Mesh & aMesh,
|
||||
nb_col = ( nt - 1 ) / col_top_size;
|
||||
nb_col_by_row.resize( nrows, nb_col );
|
||||
int nbrows_not_full = nrows - 1;
|
||||
int cur_top_size = nt - 1;
|
||||
int cur_top_size = nt - 1;
|
||||
remainder = delta_all - nb_col * delta_one_col;
|
||||
while ( remainder > 0 )
|
||||
{
|
||||
delta_one_col = nbrows_not_full * 2;
|
||||
int nb_col_add = remainder / delta_one_col;
|
||||
cur_top_size += 2 * nb_col_by_row[ nbrows_not_full ];
|
||||
delta_one_col = nbrows_not_full * 2;
|
||||
int nb_col_add = remainder / delta_one_col;
|
||||
cur_top_size += 2 * nb_col_by_row[ nbrows_not_full ];
|
||||
int nb_col_free = cur_top_size / col_top_size - nb_col_by_row[ nbrows_not_full-1 ];
|
||||
if ( nb_col_add > nb_col_free )
|
||||
nb_col_add = nb_col_free;
|
||||
@ -3588,7 +3587,7 @@ int StdMeshers_Quadrangle_2D::GetCorners(const TopoDS_Face& theFace,
|
||||
theVertices.push_back( v );
|
||||
cornerInd.push_back( angles.size() );
|
||||
}
|
||||
angles.push_back( angleByVertex( v ));
|
||||
angles.push_back( angleByVertex.IsBound( v ) ? angleByVertex( v ) : -M_PI );
|
||||
edgeVec.push_back( *edge );
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user