]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
IPAL16934: Selection works incorrectly if Source and Target Vertices in Projection...
authoreap <eap@opencascade.com>
Wed, 19 Nov 2014 13:18:58 +0000 (16:18 +0300)
committereap <eap@opencascade.com>
Wed, 19 Nov 2014 13:18:58 +0000 (16:18 +0300)
1) BUG: impossible to use shared vertices for vertex association in Projection Source hyps
2) Regression: Order of Sub-meshes dialog dialog does not appear when a sub-mesh is created

src/SMESHGUI/SMESHGUI.cxx
src/SMESHGUI/SMESHGUI_MeshOp.cxx
src/StdMeshers/StdMeshers_Prism_3D.cxx
src/StdMeshers/StdMeshers_ProjectionUtils.cxx
src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.cxx

index 61ff14fb5ed3a71a07d55fd5985bfe99860e2851..7908b4f49b94a457c3ef0b7829f41db3f0a9460e 100644 (file)
 #include "SMESHGUI_Utils.h"
 #include "SMESHGUI_VTKUtils.h"
 
-#include <SMESH_version.h>
+#include "SMESH_version.h"
 
 #include "SMESH_ControlsDef.hxx"
-#include <SMESH_Actor.h>
-#include <SMESH_ActorUtils.h>
-#include <SMESH_Client.hxx>
-#include <SMESH_ScalarBarActor.h>
-#include <SMESH_TypeFilter.hxx>
+#include "SMESH_Actor.h"
+#include "SMESH_ActorUtils.h"
+#include "SMESH_Client.hxx"
+#include "SMESH_ScalarBarActor.h"
+#include "SMESH_TypeFilter.hxx"
 
 // SALOME GUI includes
 #include <SalomeApp_Application.h>
index 5f7f27ace455a3b5c2c4893fa5b58bab326576bb..cdb3bc91921a0b281f767a7c241ceffbf53a4ce9 100644 (file)
 #include "SMESHGUI_MeshOp.h"
 
 #include "SMESHGUI.h"
+#include "SMESHGUI_GEOMGenUtils.h"
+#include "SMESHGUI_Hypotheses.h"
+#include "SMESHGUI_HypothesesUtils.h"
 #include "SMESHGUI_MeshDlg.h"
+#include "SMESHGUI_Operations.h"
 #include "SMESHGUI_ShapeByMeshDlg.h"
-#include "SMESHGUI_HypothesesUtils.h"
-#include "SMESHGUI_Hypotheses.h"
 #include "SMESHGUI_Utils.h"
-#include "SMESHGUI_GEOMGenUtils.h"
-
-#include <SMESH_TypeFilter.hxx>
-#include <SMESH_NumberFilter.hxx>
+#include "SMESH_NumberFilter.hxx"
+#include "SMESH_TypeFilter.hxx"
 
 // SALOME GEOM includes
 #include <GEOM_SelectionFilter.h>
@@ -2408,7 +2408,7 @@ bool SMESHGUI_MeshOp::checkSubMeshConcurrency(SMESH::SMESH_Mesh_ptr    mesh,
         myDlg->setEnabled( false ); // disactivate selection
         selectionMgr()->clearFilters();
         selectObject( meshSO );
-        SMESHGUI::GetSMESHGUI()->OnGUIEvent( 713 ); // MESH_ORDER
+        SMESHGUI::GetSMESHGUI()->OnGUIEvent( SMESHOp::OpMeshOrder ); // MESH_ORDER
         qApp->processEvents();
 
         myDlg->setEnabled( true );
index 212ea62b8b6cc88a18b905f6c7e749d476998409..04cc3aebe9e85e0b65293a7ad8669548b5853a7b 100644 (file)
@@ -1320,7 +1320,17 @@ bool StdMeshers_Prism_3D::compute(const Prism_3D::TPrismTopo& thePrism)
   // clear data
   myBotToColumnMap.clear();
   myBlock.Clear();
-        
+
+  // update state of sub-meshes (mostly in order to erase improper errors)
+  SMESH_subMesh* sm = myHelper->GetMesh()->GetSubMesh( thePrism.myShape3D );
+  SMESH_subMeshIteratorPtr smIt = sm->getDependsOnIterator(/*includeSelf=*/false);
+  while ( smIt->more() )
+  {
+    sm = smIt->next();
+    sm->GetComputeError().reset();
+    sm->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
+  }
+
   return true;
 }
 
index 00c925785cfabe7e7e7e51c66964826c32ce3341..e5ab88a1ecc8c024ef76ab3f972d64b8982d09cc 100644 (file)
@@ -550,7 +550,7 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
       // ----------------------------------------------------------------------
     case TopAbs_EDGE: { // TopAbs_EDGE
       // ----------------------------------------------------------------------
-      if ( theMap.Extent() != 2 )
+      if ( theMap.Extent() != 1 )
         RETURN_BAD_RESULT("Wrong map extent " << theMap.Extent() );
       TopoDS_Edge edge1 = TopoDS::Edge( theShape1 );
       TopoDS_Edge edge2 = TopoDS::Edge( theShape2 );
index c481eea7e9b598017fce4bc1e545826bf002bce4..e912e113d1d337b55483d397ac80483c2b4aff4a 100644 (file)
@@ -408,7 +408,7 @@ bool StdMeshersGUI_StdHypothesisCreator::checkParams( QString& msg ) const
       srcV = w1->GetValue();
       tgtV = w2->GetValue();
       ok = (( srcV.isEmpty()  && tgtV.isEmpty() ) ||
-            ( !srcV.isEmpty() && !tgtV.isEmpty() && srcV != tgtV ));
+            ( !srcV.isEmpty() && !tgtV.isEmpty() /*&& srcV != tgtV*/ ));
       if ( !ok ) {
         w1->SetObject( CORBA::Object::_nil() );
         w2->SetObject( CORBA::Object::_nil() );