]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
Regression SALOME_TESTS/Grids/smesh/bugs_02/C9
authoreap <eap@opencascade.com>
Thu, 5 Dec 2013 11:26:24 +0000 (11:26 +0000)
committereap <eap@opencascade.com>
Thu, 5 Dec 2013 11:26:24 +0000 (11:26 +0000)
In updateDegenUV() set number of nodes on a degenerated side to be
same as on an opposite side ONLY IF myQuadType == QUAD_STANDARD

src/StdMeshers/StdMeshers_Quadrangle_2D.cxx

index bd8cd0abfcdbb52d4cdd7830370536080f01f15e..62fadc505d62aee51cbe755056e3b12f4581aa06 100644 (file)
@@ -223,6 +223,8 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh&         aMesh,
     return false;
   myQuadStruct = quad;
 
+  updateDegenUV( quad );
+
   enum { NOT_COMPUTED = -1, COMPUTE_FAILED = 0, COMPUTE_OK = 1 };
   int res = NOT_COMPUTED;
   if (myQuadranglePreference)
@@ -1231,8 +1233,6 @@ bool StdMeshers_Quadrangle_2D::setNormalizedGrid (SMESH_Mesh &          aMesh,
   //             =down
   //
 
-  updateDegenUV( quad );
-
   int nbhoriz  = Min(quad->side[0]->NbPoints(), quad->side[2]->NbPoints());
   int nbvertic = Min(quad->side[1]->NbPoints(), quad->side[3]->NbPoints());
 
@@ -1418,8 +1418,6 @@ bool StdMeshers_Quadrangle_2D::computeQuadPref (SMESH_Mesh &        aMesh,
   bool WisF = true;
   int i,j,geomFaceID = meshDS->ShapeToIndex(aFace);
 
-  updateDegenUV( quad );
-
   int nb = quad->side[0]->NbPoints();
   int nr = quad->side[1]->NbPoints();
   int nt = quad->side[2]->NbPoints();
@@ -2402,8 +2400,6 @@ bool StdMeshers_Quadrangle_2D::computeReduced (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 (j = 0; j < nb; j++) {
@@ -3272,7 +3268,7 @@ void StdMeshers_Quadrangle_2D::updateDegenUV(FaceQuadStruct::Ptr quad)
       uv1.v = uv2.v = 0.5 * ( uv1.v + uv2.v );
     }
 
-  else if ( quad->side.size() == 4 )
+  else if ( quad->side.size() == 4 && myQuadType == QUAD_STANDARD)
 
     // Set number of nodes on a degenerated side to be same as on an opposite side
     // ----------------------------------------------------------------------------