Salome HOME
Fix regressions
authoreap <eap@opencascade.com>
Fri, 25 Nov 2016 14:24:41 +0000 (17:24 +0300)
committereap <eap@opencascade.com>
Fri, 25 Nov 2016 14:24:41 +0000 (17:24 +0300)
src/SMESHGUI/SMESHGUI_FilterDlg.cxx
src/SMESH_SWIG/StdMeshersBuilder.py
src/StdMeshers/StdMeshers_FaceSide.cxx
src/StdMeshers/StdMeshers_Prism_3D.cxx
src/StdMeshers/StdMeshers_Projection_2D.cxx
src/StdMeshers/StdMeshers_Regular_1D.cxx

index 240523d4ce8e6fdf71979b66ab4ec8b55d36d912..d182aa07cbb4d6d9b2e82908d30065bbe9a717f8 100755 (executable)
@@ -3489,7 +3489,8 @@ void SMESHGUI_FilterDlg::UnRegisterFilters()
 //=======================================================================
 void SMESHGUI_FilterDlg::insertFilterInViewer()
 {
 //=======================================================================
 void SMESHGUI_FilterDlg::insertFilterInViewer()
 {
-  if (SVTK_Selector* aSelector = SMESH::GetSelector()) {
+  if (SVTK_Selector* aSelector = SMESH::GetSelector())
+  {
     SMESH::ElementType anEntType = (SMESH::ElementType)myTable->GetType();
 
     if (myFilter[ myTable->GetType() ]->_is_nil() ||
     SMESH::ElementType anEntType = (SMESH::ElementType)myTable->GetType();
 
     if (myFilter[ myTable->GetType() ]->_is_nil() ||
@@ -3499,7 +3500,8 @@ void SMESHGUI_FilterDlg::insertFilterInViewer()
     {
       SMESH::RemoveFilter(getFilterId(anEntType), aSelector);
     }
     {
       SMESH::RemoveFilter(getFilterId(anEntType), aSelector);
     }
-    else {
+    else
+    {
       Handle(SMESHGUI_PredicateFilter) aFilter = new SMESHGUI_PredicateFilter();
       aFilter->SetPredicate(myFilter[ myTable->GetType() ]->GetPredicate());
       SMESH::RemoveFilter(getFilterId(anEntType), aSelector); //skl for IPAL12631
       Handle(SMESHGUI_PredicateFilter) aFilter = new SMESHGUI_PredicateFilter();
       aFilter->SetPredicate(myFilter[ myTable->GetType() ]->GetPredicate());
       SMESH::RemoveFilter(getFilterId(anEntType), aSelector); //skl for IPAL12631
@@ -3659,7 +3661,7 @@ SMESH_Actor* SMESHGUI_FilterDlg::getActor()
 //=======================================================================
 void SMESHGUI_FilterDlg::selectInViewer (const int theType, const QList<int>& theIds)
 {
 //=======================================================================
 void SMESHGUI_FilterDlg::selectInViewer (const int theType, const QList<int>& theIds)
 {
-  if (mySelectionMgr == 0 || myMesh->_is_nil())
+  if (mySelectionMgr == 0 || myMesh->_is_nil() )
     return;
 
   mySelectionMgr->clearFilters();
     return;
 
   mySelectionMgr->clearFilters();
@@ -3667,7 +3669,8 @@ void SMESHGUI_FilterDlg::selectInViewer (const int theType, const QList<int>& th
   // Set new selection mode if necessary
   Selection_Mode aSelMode = getSelMode(theType);
   SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI );
   // Set new selection mode if necessary
   Selection_Mode aSelMode = getSelMode(theType);
   SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI );
-  if ( aViewWindow && aViewWindow->SelectionMode()!=aSelMode) {
+  if ( aViewWindow && aViewWindow->SelectionMode() != aSelMode )
+  {
     mySelectionMgr->clearSelected();
     mySelectionMgr->clearFilters();
     SMESH::SetPointRepresentation( aSelMode == NodeSelection );
     mySelectionMgr->clearSelected();
     mySelectionMgr->clearFilters();
     SMESH::SetPointRepresentation( aSelMode == NodeSelection );
@@ -3680,8 +3683,6 @@ void SMESHGUI_FilterDlg::selectInViewer (const int theType, const QList<int>& th
     return;
 
   Handle(SALOME_InteractiveObject) anIO = anActor->getIO();
     return;
 
   Handle(SALOME_InteractiveObject) anIO = anActor->getIO();
-  //mySelectionMgr->clearSelected();
-  //mySelectionMgr->AddIObject(anIO, false);
   SALOME_ListIO aList;
   aList.Append(anIO);
   mySelectionMgr->setSelectedObjects(aList, false);
   SALOME_ListIO aList;
   aList.Append(anIO);
   mySelectionMgr->setSelectedObjects(aList, false);
index 203a9ff480e4b8483270e56d4f1f5fc3da6dd428..19f3375f71b7914497900c6aa57c531bc0d97077 100644 (file)
@@ -263,7 +263,7 @@ class StdMeshersBuilder_Segment(Mesh_Algorithm):
     # on curve from 0 to 1 (additionally it is neecessary to check
     # orientation of edges and create list of reversed edges if it is
     # needed) and sets numbers of segments between given points (default
     # on curve from 0 to 1 (additionally it is neecessary to check
     # orientation of edges and create list of reversed edges if it is
     # needed) and sets numbers of segments between given points (default
-    # values are equals 1
+    # values are 1)
     #  @param points defines the list of parameters on curve
     #  @param nbSegs defines the list of numbers of segments
     #  @param reversedEdges is a list of edges to mesh using reversed orientation.
     #  @param points defines the list of parameters on curve
     #  @param nbSegs defines the list of numbers of segments
     #  @param reversedEdges is a list of edges to mesh using reversed orientation.
index b7a492654a7cae3da753594a2ff3f7d5fbe55ed9..9212691267cbaf6a4876d4fa94ab655fa7f19985 100644 (file)
@@ -450,7 +450,7 @@ const std::vector<UVPtStruct>& StdMeshers_FaceSide::GetUVPtStruct(bool   isXCons
     {
       return myPoints;
     }
     {
       return myPoints;
     }
-    if (( myNbPonits > 0 ) &&
+    if (( u2node.size() > 0 ) &&
         ( u2node.begin()->first < 0 || u2node.rbegin()->first > 1 ))
     {
       return myPoints;
         ( u2node.begin()->first < 0 || u2node.rbegin()->first > 1 ))
     {
       return myPoints;
index 75219db95b4374617c7a473e00266b303a097d4b..b3f34cadb7cbbb3613de17c4de15abd01bee04af 100644 (file)
@@ -4892,8 +4892,8 @@ bool StdMeshers_Sweeper::ComputeNodes( SMESH_MesherHelper& helper,
     }
   }
 
     }
   }
 
-  //centerIntErrorIsSmall = true;
-  //bndErrorIsSmall = true;
+  centerIntErrorIsSmall = true; // 3D_mesh_Extrusion_00/A3
+  bndErrorIsSmall = true;
   if ( !centerIntErrorIsSmall )
   {
     // Compensate the central error; continue adding projection
   if ( !centerIntErrorIsSmall )
   {
     // Compensate the central error; continue adding projection
index 31db57e967fd3f2702c6bd6fbf8d17131acccf48..2888a362cf23aeda129c0e8ea361791f16d9bb58 100644 (file)
@@ -704,9 +704,9 @@ namespace {
             tgtMeshDS->SetNodeOnEdge( n, tgtE, srcU );
             if ( !tgtFace.IsPartner( srcFace ))
             {
             tgtMeshDS->SetNodeOnEdge( n, tgtE, srcU );
             if ( !tgtFace.IsPartner( srcFace ))
             {
-              bool isOk = true;
               edgeHelper.SetSubShape( tgtE );
               edgeHelper.SetSubShape( tgtE );
-              edgeHelper.GetNodeU( tgtE, n, 0, &isOk );
+              double tol = BRep_Tool::Tolerance( tgtE );
+              bool isOk = edgeHelper.CheckNodeU( tgtE, n, srcU, 2 * tol, /*force=*/true );
               if ( !isOk ) // projection of n to tgtE failed (23395)
               {
                 double sF, sL, tF, tL;
               if ( !isOk ) // projection of n to tgtE failed (23395)
               {
                 double sF, sL, tF, tL;
@@ -717,7 +717,6 @@ namespace {
                 tgtMeshDS->SetNodeOnEdge( n, tgtE, tgtU );
                 gp_Pnt newP = BRepAdaptor_Curve( tgtE ).Value( tgtU );
                 double dist = newP.Distance( tgtP );
                 tgtMeshDS->SetNodeOnEdge( n, tgtE, tgtU );
                 gp_Pnt newP = BRepAdaptor_Curve( tgtE ).Value( tgtU );
                 double dist = newP.Distance( tgtP );
-                double tol = BRep_Tool::Tolerance( tgtE );
                 if ( tol < dist && dist < 1000*tol )
                   tgtMeshDS->MoveNode( n, newP.X(), newP.Y(), newP.Z() );
               }
                 if ( tol < dist && dist < 1000*tol )
                   tgtMeshDS->MoveNode( n, newP.X(), newP.Y(), newP.Z() );
               }
index 2f2c879f085bf09226aa356490120849a834594b..331cb75e689815f865815b66773d8cf9cdb766ab 100644 (file)
@@ -992,10 +992,6 @@ bool StdMeshers_Regular_1D::computeInternalParameters(SMESH_Mesh &     theMesh,
   {
     const std::vector<double>& aPnts = _fpHyp->GetPoints();
     std::vector<int>          nbsegs = _fpHyp->GetNbSegments();
   {
     const std::vector<double>& aPnts = _fpHyp->GetPoints();
     std::vector<int>          nbsegs = _fpHyp->GetNbSegments();
-    if ( theReverse )
-      std::reverse( nbsegs.begin(), nbsegs.end() );
-    if ( nbsegs.empty() )
-      nbsegs.push_back( 1 );
 
     // sort normalized params, taking into account theReverse
     TColStd_SequenceOfReal Params;
 
     // sort normalized params, taking into account theReverse
     TColStd_SequenceOfReal Params;
@@ -1033,6 +1029,16 @@ bool StdMeshers_Regular_1D::computeInternalParameters(SMESH_Mesh &     theMesh,
     uVec.back() = theLastU;
 
     // divide segments
     uVec.back() = theLastU;
 
     // divide segments
+    if ( theReverse )
+    {
+      if ((int) nbsegs.size() > Params.Length() + 1 )
+        nbsegs.resize( Params.Length() + 1 );
+      std::reverse( nbsegs.begin(), nbsegs.end() );
+    }
+    if ( nbsegs.empty() )
+    {
+      nbsegs.push_back( 1 );
+    }
     Params.InsertBefore( 1, 0.0 );
     Params.Append( 1.0 );
     double eltSize, segmentSize, par1, par2;
     Params.InsertBefore( 1, 0.0 );
     Params.Append( 1.0 );
     double eltSize, segmentSize, par1, par2;