Salome HOME
0021765: EDF 2334 SMESH: ConvertToQuadratic with medium node on geometry generates...
authoreap <eap@opencascade.com>
Tue, 7 Aug 2012 09:18:15 +0000 (09:18 +0000)
committereap <eap@opencascade.com>
Tue, 7 Aug 2012 09:18:15 +0000 (09:18 +0000)
   Enables fixing node parameters by helper

+        helper.ToFixNodeParameters( true );

src/StdMeshers/StdMeshers_FaceSide.cxx
src/StdMeshers/StdMeshers_Hexa_3D.cxx
src/StdMeshers/StdMeshers_ViscousLayers.cxx

index e2e26b6a0f8595ccd3364a75e3f3b3a59787e6e0..13c2d626316a46f1d5098e4912b2bffc1e8b5d4a 100644 (file)
@@ -263,7 +263,9 @@ const vector<UVPtStruct>& StdMeshers_FaceSide::GetUVPtStruct(bool   isXConst,
         u2nodeVec.reserve( sm->NbNodes() );
         SMDS_NodeIteratorPtr nItr = sm->GetNodes();
         double paramSize = myLast[i] - myFirst[i];
-        double r = myNormPar[i] - prevNormPar;
+        double r         = myNormPar[i] - prevNormPar;
+        helper.SetSubShape( myEdge[i] );
+        helper.ToFixNodeParameters( true );
         if ( !myIsUniform[i] )
           while ( nItr->more() )
           {
@@ -455,7 +457,9 @@ std::vector<const SMDS_MeshNode*> StdMeshers_FaceSide::GetOrderedNodes() const
       {
         SMDS_NodeIteratorPtr nItr = sm->GetNodes();
         double paramSize = myLast[i] - myFirst[i];
-        double r = myNormPar[i] - prevNormPar;
+        double r         = myNormPar[i] - prevNormPar;
+        helper.SetSubShape( myEdge[i] );
+        helper.ToFixNodeParameters( true );
         while ( nItr->more() )
         {
           const SMDS_MeshNode* node = nItr->next();
index 29f48f96e80b3f22016771ac100fb1443cda44fd..92f00af3a8e73c604addc0deffc5afcd4ca9bcb0 100644 (file)
@@ -404,6 +404,7 @@ bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh &         aMesh,
 
     // assure correctness of node positions on baseE:
     // helper.GetNodeU() will fix positions if they are wrong
+    helper.ToFixNodeParameters( true );
     for ( int iE = 0; iE < baseQuadSide->NbEdges(); ++iE )
     {
       const TopoDS_Edge& baseE = baseQuadSide->Edge( iE );
index d9e2fe417b1e607de0f049718cfaa4b55f1a9ff4..ddae235f73e5c198f2f17a4b47810424535766a6 100644 (file)
@@ -3460,6 +3460,7 @@ bool _ViscousBuilder::shrink()
   }
 
   SMESH_MesherHelper helper( *_mesh );
+  helper.ToFixNodeParameters( true );
 
   // EDGE's to shrink
   map< int, _Shrinker1D > e2shrMap;