Salome HOME
[GPUSPHGUI] #511: Spheric2 with dynamic boundaries - Mesh offset failed
authoreap <eap@opencascade.com>
Thu, 22 Nov 2018 12:35:17 +0000 (15:35 +0300)
committereap <eap@opencascade.com>
Thu, 22 Nov 2018 12:35:17 +0000 (15:35 +0300)
src/SMESH/SMESH_MeshEditor.cxx
src/SMESHUtils/SMESH_Offset.cxx

index 87dca725d4442d67fc84b1944b920326f14e24df..49537015136f4b8b56363d7e984f07c664f3f91a 100644 (file)
@@ -6789,7 +6789,9 @@ SMESH_MeshEditor::PGroupIDs SMESH_MeshEditor::Offset( TIDSortedElemSet & theElem
   for ( size_t i = 0; i < new2OldNodes.size(); ++i )
     if ( const SMDS_MeshNode* n = new2OldNodes[ i ].first )
     {
+#ifndef _DEBUG_
       if ( n->NbInverseElements() > 0 )
+#endif
       {
         const SMDS_MeshNode* n2 =
           tgtMeshDS->AddNodeWithID( n->X(), n->Y(), n->Z(), idShift + n->GetID() );
index faefc439db2bb5716f2d4c571077b655d59a7cb7..33d5b1c786200678be1ca53797c1ff1fec26a4f0 100644 (file)
@@ -2747,8 +2747,9 @@ SMDS_Mesh* SMESH_MeshAlgos::MakeOffset( SMDS_ElemIteratorPtr theFaceIt,
       normals[i].SetCoord( 0,0,0 ); // TODO find norm by neighbors
   }
 
-  const double  tol = 1e-3 * Sqrt( minNodeDist );
   const double sign = ( theOffset < 0 ? -1 : +1 );
+  const double  tol = Min( 1e-3 * Sqrt( minNodeDist ),
+                           1e-2 * theOffset * sign );
 
   // translate new nodes by normal to input faces
   gp_XYZ newXYZ;