From: eap Date: Tue, 10 Apr 2007 14:07:48 +0000 (+0000) Subject: PAL13330( When mesh generation does not success, trace where ) X-Git-Tag: V3_2_6pre4~28 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=d5f44a9c1dc82c8a7dd44fe642194424c467d7d4;p=modules%2Fsmesh.git PAL13330( When mesh generation does not success, trace where ) + case 701: // Compute mesh + op = new SMESHGUI_ComputeOp(); + break; --- diff --git a/src/SMESHGUI/SMESHGUI.cxx b/src/SMESHGUI/SMESHGUI.cxx index e95458723..b002b987a 100644 --- a/src/SMESHGUI/SMESHGUI.cxx +++ b/src/SMESHGUI/SMESHGUI.cxx @@ -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(aMeshSObj); - aSubMesh = SMESH::SObjectToInterface(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(aMeshSObj); +// aSubMesh = SMESH::SObjectToInterface(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;