Salome HOME
PAL13330( When mesh generation does not success, trace where )
authoreap <eap@opencascade.com>
Tue, 10 Apr 2007 14:07:48 +0000 (14:07 +0000)
committereap <eap@opencascade.com>
Tue, 10 Apr 2007 14:07:48 +0000 (14:07 +0000)
+    case 701: // Compute mesh
+      op = new SMESHGUI_ComputeOp();
+    break;

src/SMESHGUI/SMESHGUI.cxx

index e95458723dfd7585696a5fdf74cfc22515d57b9d..b002b987a162922d807b0b0b1cd207d8f754502b 100644 (file)
@@ -66,6 +66,7 @@
 #include "SMESHGUI_Displayer.h"
 #include "SMESHGUI_MakeNodeAtPointDlg.h"
 #include "SMESHGUI_BuildCompoundDlg.h"
+#include "SMESHGUI_ComputeDlg.h"
 
 #include "SMESHGUI_Utils.h"
 #include "SMESHGUI_GEOMGenUtils.h"
@@ -1362,82 +1363,83 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
     {
       if (checkLock(aStudy)) break;
 
-      LightApp_SelectionMgr *Sel = selectionMgr();
-      SALOME_ListIO selected; Sel->selectedObjects( selected );
-
-      int nbSel = selected.Extent();
-      if (nbSel != 1) {
-        SUIT_MessageBox::warn1(desktop(),
-                               tr("SMESH_WRN_WARNING"),
-                               tr("SMESH_WRN_NO_AVAILABLE_DATA"),
-                               tr("SMESH_BUT_OK"));
-        break;
-      }
-
-      SMESH::SMESH_Mesh_var aMesh;
-      SMESH::SMESH_subMesh_var aSubMesh;
-      Handle(SALOME_InteractiveObject) IObject = selected.First();
-      if (IObject->hasEntry()) {
-        _PTR(SObject) aMeshSObj = aStudy->FindObjectID(IObject->getEntry());
-        GEOM::GEOM_Object_var aShapeObject = SMESH::GetShapeOnMeshOrSubMesh( aMeshSObj );
-        if ( aShapeObject->_is_nil() ) {
-          // imported mesh
-          break;
-        }
-        if ( aMeshSObj ) {
-          aMesh = SMESH::SObjectToInterface<SMESH::SMESH_Mesh>(aMeshSObj);
-          aSubMesh = SMESH::SObjectToInterface<SMESH::SMESH_subMesh>(aMeshSObj);
-          if ( !aSubMesh->_is_nil() )
-            aMesh = aSubMesh->GetFather();
-
-          if (!aMesh->_is_nil()) {
-            SMESH::algo_error_array_var errors = GetSMESHGen()->GetAlgoState(aMesh,aShapeObject);
-            if ( errors->length() > 0 ) {
-              SUIT_MessageBox::warn1(desktop(),
-                                     tr("SMESH_WRN_WARNING"),
-                                     SMESH::GetMessageOnAlgoStateErrors( errors.in() ),
-                                     tr("SMESH_BUT_OK"));
-              break;
-            }
-
-            try {
-              if (GetSMESHGen()->Compute(aMesh, aShapeObject))
-                SMESH::ModifiedMesh(aMeshSObj, true);
-              else
-                SUIT_MessageBox::warn1(desktop(),
-                                       tr("SMESH_WRN_WARNING"),
-                                       tr("SMESH_WRN_COMPUTE_FAILED"),
-                                       tr("SMESH_BUT_OK"));
-            }
-            catch(const SALOME::SALOME_Exception & S_ex){
-              SalomeApp_Tools::QtCatchCorbaException(S_ex);
-            }
-
-            updateObjBrowser();
-
-            if (automaticUpdate()) {
-              SVTK_ViewWindow* aVTKView = SMESH::GetViewWindow(this, /*create*/true);
-              if (aVTKView) {
-                CORBA::Long anId = aStudy->StudyId();
-                TVisualObjPtr aVisualObj = SMESH::GetVisualObj(anId, IObject->getEntry());
-                if (aVisualObj) {
-                  aVisualObj->Update();
-                  SMESH_Actor* anActor = SMESH::FindActorByEntry(IObject->getEntry());
-                  if (!anActor) {
-                    anActor = SMESH::CreateActor(aStudy, IObject->getEntry());
-                    if (anActor) {
-                      SMESH::DisplayActor(aVTKView, anActor); //apo
-                      SMESH::FitAll();
-                    }
-                  }
-                  SMESH::RepaintCurrentView();
-                  Sel->setSelectedObjects( selected );
-                }
-              }
-            }
-          }
-        }
-      }
+      startOperation( 701 );
+//       LightApp_SelectionMgr *Sel = selectionMgr();
+//       SALOME_ListIO selected; Sel->selectedObjects( selected );
+
+//       int nbSel = selected.Extent();
+//       if (nbSel != 1) {
+//         SUIT_MessageBox::warn1(desktop(),
+//                                tr("SMESH_WRN_WARNING"),
+//                                tr("SMESH_WRN_NO_AVAILABLE_DATA"),
+//                                tr("SMESH_BUT_OK"));
+//         break;
+//       }
+
+//       SMESH::SMESH_Mesh_var aMesh;
+//       SMESH::SMESH_subMesh_var aSubMesh;
+//       Handle(SALOME_InteractiveObject) IObject = selected.First();
+//       if (IObject->hasEntry()) {
+//         _PTR(SObject) aMeshSObj = aStudy->FindObjectID(IObject->getEntry());
+//         GEOM::GEOM_Object_var aShapeObject = SMESH::GetShapeOnMeshOrSubMesh( aMeshSObj );
+//         if ( aShapeObject->_is_nil() ) {
+//           // imported mesh
+//           break;
+//         }
+//         if ( aMeshSObj ) {
+//           aMesh = SMESH::SObjectToInterface<SMESH::SMESH_Mesh>(aMeshSObj);
+//           aSubMesh = SMESH::SObjectToInterface<SMESH::SMESH_subMesh>(aMeshSObj);
+//           if ( !aSubMesh->_is_nil() )
+//             aMesh = aSubMesh->GetFather();
+
+//           if (!aMesh->_is_nil()) {
+//             SMESH::algo_error_array_var errors = GetSMESHGen()->GetAlgoState(aMesh,aShapeObject);
+//             if ( errors->length() > 0 ) {
+//               SUIT_MessageBox::warn1(desktop(),
+//                                      tr("SMESH_WRN_WARNING"),
+//                                      SMESH::GetMessageOnAlgoStateErrors( errors.in() ),
+//                                      tr("SMESH_BUT_OK"));
+//               break;
+//             }
+
+//             try {
+//               if (GetSMESHGen()->Compute(aMesh, aShapeObject))
+//                 SMESH::ModifiedMesh(aMeshSObj, true);
+//               else
+//                 SUIT_MessageBox::warn1(desktop(),
+//                                        tr("SMESH_WRN_WARNING"),
+//                                        tr("SMESH_WRN_COMPUTE_FAILED"),
+//                                        tr("SMESH_BUT_OK"));
+//             }
+//             catch(const SALOME::SALOME_Exception & S_ex){
+//               SalomeApp_Tools::QtCatchCorbaException(S_ex);
+//             }
+
+//             updateObjBrowser();
+
+//             if (automaticUpdate()) {
+//               SVTK_ViewWindow* aVTKView = SMESH::GetViewWindow(this, /*create*/true);
+//               if (aVTKView) {
+//                 CORBA::Long anId = aStudy->StudyId();
+//                 TVisualObjPtr aVisualObj = SMESH::GetVisualObj(anId, IObject->getEntry());
+//                 if (aVisualObj) {
+//                   aVisualObj->Update();
+//                   SMESH_Actor* anActor = SMESH::FindActorByEntry(IObject->getEntry());
+//                   if (!anActor) {
+//                     anActor = SMESH::CreateActor(aStudy, IObject->getEntry());
+//                     if (anActor) {
+//                       SMESH::DisplayActor(aVTKView, anActor); //apo
+//                       SMESH::FitAll();
+//                     }
+//                   }
+//                   SMESH::RepaintCurrentView();
+//                   Sel->setSelectedObjects( selected );
+//                 }
+//               }
+//             }
+//           }
+//         }
+//       }
     }
     break;
 
@@ -3355,6 +3357,9 @@ LightApp_Operation* SMESHGUI::createOperation( const int id ) const
   // to do : create operation here
   switch( id )
   {
+    case 701: // Compute mesh
+      op = new SMESHGUI_ComputeOp();
+    break;
     case 702: // Create mesh
       op = new SMESHGUI_MeshOp( true, true );
     break;