#include "SMESHGUI_Displayer.h"
#include "SMESHGUI_MakeNodeAtPointDlg.h"
#include "SMESHGUI_BuildCompoundDlg.h"
+#include "SMESHGUI_ComputeDlg.h"
#include "SMESHGUI_Utils.h"
#include "SMESHGUI_GEOMGenUtils.h"
{
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;
// 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;