PAL13330( When mesh generation does not success, trace where )

+    case 701: // Compute mesh
+      op = new SMESHGUI_ComputeOp();
+    break;
This commit is contained in:
eap 2007-04-10 14:07:48 +00:00
parent 665a9c773a
commit d5f44a9c1d

View 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 );
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;
}
// 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();
// 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;
}
// 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);
}
// 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();
// 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 );
}
}
}
}
}
}
// 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;