- Sel->ClearIObjects();
- smeshGUI->myActiveStudy->updateObjBrowser( true );
- QApplication::restoreOverrideCursor();
- break;
- }
-
- case 401: // GEOM::EDGE
- {
- if ( smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() == VIEW_VTK ) { //VTK
- smeshGUI->EmitSignalDeactivateDialog() ;
- SALOME_Selection* Sel = SALOME_Selection::Selection( smeshGUI->myActiveStudy->getSelection() );
- Sel->ClearIObjects();
- smeshGUI->myDesktop->SetSelectionMode(1, true);
- parent->menuBar()->setItemChecked(9010, false );
- parent->menuBar()->setItemChecked(9011, false );
- smeshGUI->ViewNodes();
- SMESHGUI_AddEdgeDlg *aDlg = new SMESHGUI_AddEdgeDlg( parent, "", Sel ) ;
- } else {
- QApplication::restoreOverrideCursor();
- QAD_MessageBox::warn1 ( QAD_Application::getDesktop(), tr ("SMESH_WRN_WARNING"),
- tr ("SMESH_WRN_VIEWER_VTK"), tr ("SMESH_BUT_YES") );
- }
- break;
- }
- case 4021: // TRIANGLE
- {
- if ( smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() == VIEW_VTK ) { //VTK
- smeshGUI->EmitSignalDeactivateDialog() ;
- SALOME_Selection* Sel = SALOME_Selection::Selection( smeshGUI->myActiveStudy->getSelection() );
- Sel->ClearIObjects();
- smeshGUI->myDesktop->SetSelectionMode(1, true);
- parent->menuBar()->setItemChecked(9010, false );
- parent->menuBar()->setItemChecked(9011, false );
- smeshGUI->ViewNodes();
- SMESHGUI_AddFaceDlg *aDlg = new SMESHGUI_AddFaceDlg( parent, "", Sel, 3 ) ;
- } else {
- QApplication::restoreOverrideCursor();
- QAD_MessageBox::warn1 ( QAD_Application::getDesktop(), tr ("SMESH_WRN_WARNING"),
- tr ("SMESH_WRN_VIEWER_VTK"), tr ("SMESH_BUT_YES") );
- }
- break;
- }
- case 4022: // QUAD
- {
- if ( smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() == VIEW_VTK ) { //VTK
- smeshGUI->EmitSignalDeactivateDialog() ;
- SALOME_Selection* Sel = SALOME_Selection::Selection( smeshGUI->myActiveStudy->getSelection() );
- Sel->ClearIObjects();
- smeshGUI->myDesktop->SetSelectionMode(1, true);
- parent->menuBar()->setItemChecked(9010, false );
- parent->menuBar()->setItemChecked(9011, false );
- smeshGUI->ViewNodes();
- SMESHGUI_AddFaceDlg *aDlg = new SMESHGUI_AddFaceDlg( parent, "", Sel, 4 ) ;
- } else {
- QApplication::restoreOverrideCursor();
- QAD_MessageBox::warn1 ( QAD_Application::getDesktop(), tr ("SMESH_WRN_WARNING"),
- tr ("SMESH_WRN_VIEWER_VTK"), tr ("SMESH_BUT_YES") );
- }
- break;
- }
- case 4031: // TETRA
- {
- if ( smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() == VIEW_VTK ) { //VTK
- smeshGUI->EmitSignalDeactivateDialog() ;
- SALOME_Selection* Sel = SALOME_Selection::Selection( smeshGUI->myActiveStudy->getSelection() );
- Sel->ClearIObjects();
- smeshGUI->myDesktop->SetSelectionMode(1, true);
- parent->menuBar()->setItemChecked(9010, false );
- parent->menuBar()->setItemChecked(9011, false );
- smeshGUI->ViewNodes();
- SMESHGUI_AddVolumeDlg *aDlg = new SMESHGUI_AddVolumeDlg( parent, "", Sel, 4 ) ;
- } else {
- QApplication::restoreOverrideCursor();
- QAD_MessageBox::warn1 ( QAD_Application::getDesktop(), tr ("SMESH_WRN_WARNING"),
- tr ("SMESH_WRN_VIEWER_VTK"), tr ("SMESH_BUT_YES") );
- }
- break;
- }
- case 4032: // HEXA
- {
- if ( smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() == VIEW_VTK ) { //VTK
- smeshGUI->EmitSignalDeactivateDialog() ;
- SALOME_Selection* Sel = SALOME_Selection::Selection( smeshGUI->myActiveStudy->getSelection() );
- Sel->ClearIObjects();
- smeshGUI->myDesktop->SetSelectionMode(1, true);
- parent->menuBar()->setItemChecked(9010, false );
- parent->menuBar()->setItemChecked(9011, false );
- smeshGUI->ViewNodes();
- SMESHGUI_AddVolumeDlg *aDlg = new SMESHGUI_AddVolumeDlg( parent, "", Sel, 8 ) ;
- } else {
- QApplication::restoreOverrideCursor();
- QAD_MessageBox::warn1 ( QAD_Application::getDesktop(), tr ("SMESH_WRN_WARNING"),
- tr ("SMESH_WRN_VIEWER_VTK"), tr ("SMESH_BUT_YES") );
- }
- break;
- }
-
- case 4041: // REMOVES NODES
- {
- if ( smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() == VIEW_VTK ) { //VTK
- smeshGUI->EmitSignalDeactivateDialog() ;
- SALOME_Selection* Sel = SALOME_Selection::Selection( smeshGUI->myActiveStudy->getSelection() );
- Sel->ClearIObjects();
- smeshGUI->myDesktop->SetSelectionMode(1, true);
- parent->menuBar()->setItemChecked(9010, false );
- parent->menuBar()->setItemChecked(9011, false );
- smeshGUI->ViewNodes();
- SMESHGUI_RemoveNodesDlg *aDlg = new SMESHGUI_RemoveNodesDlg( parent, "", Sel ) ;
- } else {
- QApplication::restoreOverrideCursor();
- QAD_MessageBox::warn1 ( QAD_Application::getDesktop(), tr ("SMESH_WRN_WARNING"),
- tr ("SMESH_WRN_VIEWER_VTK"), tr ("SMESH_BUT_YES") );
- }
- break;
- }
- case 4042: // REMOVES ELEMENTS
- {
- if ( smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() == VIEW_VTK ) { //VTK
- smeshGUI->EmitSignalDeactivateDialog() ;
- SALOME_Selection* Sel = SALOME_Selection::Selection( smeshGUI->myActiveStudy->getSelection() );
- Sel->ClearIObjects();
- smeshGUI->myDesktop->SetSelectionMode(3, true);
- SMESHGUI_RemoveElementsDlg *aDlg = new SMESHGUI_RemoveElementsDlg( parent, "", Sel ) ;
- } else {
- QApplication::restoreOverrideCursor();
- QAD_MessageBox::warn1 ( QAD_Application::getDesktop(), tr ("SMESH_WRN_WARNING"),
- tr ("SMESH_WRN_VIEWER_VTK"), tr ("SMESH_BUT_YES") );
- }
- break;
- }
-
- case 5000: // HYPOTHESIS - ALGO
- {
- smeshGUI->CreateAlgorithm("Regular_1D","Wire Discretisation");
- break;
- }
- case 5010:
- {
- smeshGUI->CreateAlgorithm("MEFISTO_2D","Triangle (Mefisto)");
- break;
- }
- case 5011:
- {
- smeshGUI->CreateAlgorithm("Quadrangle_2D","Quadrangle (Mapping)");
- break;
- }
- case 5020:
- {
- smeshGUI->CreateAlgorithm("Hexa_3D","Hexaedral (i,j,k)");
- break;
- }
-
- case 5030: // HYPOTHESIS - LOCAL LENGTH
- {
- smeshGUI->EmitSignalDeactivateDialog() ;
- SALOME_Selection* Sel = SALOME_Selection::Selection( smeshGUI->myActiveStudy->getSelection() );
- SMESHGUI_LocalLengthDlg *aDlg = new SMESHGUI_LocalLengthDlg( parent, "" ) ;
- break;
- }
- case 5031: // HYPOTHESIS - NB SEGMENTS
- {
- smeshGUI->EmitSignalDeactivateDialog() ;
- SALOME_Selection* Sel = SALOME_Selection::Selection( smeshGUI->myActiveStudy->getSelection() );
- SMESHGUI_NbSegmentsDlg *aDlg = new SMESHGUI_NbSegmentsDlg( parent, "" ) ;
- break;
- }
-
- case 5032: // HYPOTHESIS - MAX ELEMENT AREA
- {
- smeshGUI->EmitSignalDeactivateDialog() ;
- SALOME_Selection* Sel = SALOME_Selection::Selection( smeshGUI->myActiveStudy->getSelection() );
- SMESHGUI_MaxElementAreaDlg *aDlg = new SMESHGUI_MaxElementAreaDlg( parent, "" ) ;
- break;
- }
-
- case 5033: // HYPOTHESIS - MAX ELEMENT VOLUME
- {
- smeshGUI->EmitSignalDeactivateDialog() ;
- SALOME_Selection* Sel = SALOME_Selection::Selection( smeshGUI->myActiveStudy->getSelection() );
- SMESHGUI_MaxElementVolumeDlg *aDlg = new SMESHGUI_MaxElementVolumeDlg( parent, "" ) ;
- break;
- }
-
- case 6016: // CONTROLS
- case 6015:
- case 6014:
- case 6013:
- case 6012:
- case 6011:
- case 6001:
- {
- SALOME_Selection* Sel = SALOME_Selection::Selection( smeshGUI->myActiveStudy->getSelection() );
- int nbSel = Sel->IObjectCount();
- if ( nbSel != 1 )
- break;
- smeshGUI->Control(theCommandID);
- break;
- }
-
- case 6002:
- {
- if ( smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() == VIEW_VTK ) { //VTK
- SALOME_Selection* Sel = SALOME_Selection::Selection( smeshGUI->myActiveStudy->getSelection() );
- SMESHGUI_EdgesConnectivityDlg *Dlg = new SMESHGUI_EdgesConnectivityDlg( parent, "", Sel ) ;
- } else {
- QApplication::restoreOverrideCursor();
- QAD_MessageBox::warn1 ( QAD_Application::getDesktop(), tr ("SMESH_WRN_WARNING"),
- tr ("SMESH_WRN_VIEWER_VTK"), tr ("SMESH_BUT_YES") );
- }
- break;
- }
-
- case 9010:
- {
- if ( !parent->menuBar()->isItemChecked(9010) ) {
- QApplication::setOverrideCursor( Qt::waitCursor );
- parent->menuBar()->setItemChecked(9011, false );
-
- smeshGUI->EraseSimulationActors();
- smeshGUI->mySimulationActors2D = vtkActor2DCollection::New();
-
- SALOME_Selection* Sel = SALOME_Selection::Selection( smeshGUI->myActiveStudy->getSelection() );
- int nbSel = Sel->IObjectCount() ;
- if ( nbSel == 1 ) {
- Standard_Boolean res;
- SMESH_Actor* MeshActor = smeshGUI->FindActorByEntry(Sel->firstIObject()->getEntry(), res, true);
- if ( res ) {
- parent->menuBar()->setItemChecked(9010, !parent->menuBar()->isItemChecked(9010) );
-
- // It's necessary to display SMDS IDs instead of VTK ones, so
- // vtkIdFilter is unacceptable here. We have to do it manually :(
- vtkUnstructuredGrid* ptGrid = vtkUnstructuredGrid::New();
- ptGrid->CopyStructure(MeshActor->DataSource);
-
- int numPts = MeshActor->DataSource->GetNumberOfPoints();
-
- // Loop over points and generate ids
- vtkIntArray *ptIds = vtkIntArray::New();
- ptIds->SetNumberOfValues(numPts);
-
- for (int id=0; id < numPts; id++) {
- int idSMDS = MeshActor->GetIdSMESHDSNode(id);
- ptIds->SetValue(id, idSMDS);
- }
+
+ case 302: // DISPLAY ONLY
+ {
+ if (smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() ==
+ VIEW_VTK)
+ {
+ QApplication::setOverrideCursor(Qt::waitCursor);
+ vtkActorCollection *theActors = Renderer->GetActors();
+ theActors->InitTraversal();
+ vtkActor *ac = theActors->GetNextActor();
+ while (!(ac == NULL))
+ {
+ if (ac->IsA("SMESH_Actor"))
+ {
+ SMESH_Actor *anActor = SMESH_Actor::SafeDownCast(ac);
+ if (!anActor->isHighlighted())
+ {
+ //anActor->VisibilityOff();
+ //NRI- : 02/12/2002 : Fixed bugId 882
+ // anActor->EdgeDevice->VisibilityOff();
+ // anActor->EdgeShrinkDevice->VisibilityOff();
+ anActor->SetVisibility(false);
+ }
+ }
+ ac = theActors->GetNextActor();
+ }
+
+ // Display selection
+ SALOMEDS::SObject_var fatherSF =
+ smeshGUI->myStudy->FindObjectID(smeshGUI->myActiveStudy->
+ getActiveStudyFrame()->entry());
+
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ SALOME_ListIteratorOfListIO It(Sel->StoredIObjects());
+
+ for (; It.More(); It.Next())
+ {
+ Handle(SALOME_InteractiveObject) IObject = It.Value();
+ SALOMEDS::SObject_var obj =
+ smeshGUI->myStudy->FindObjectID(IObject->getEntry());
+
+ VTKViewer_RenderWindowInteractor *myRenderInter =
+ ((VTKViewer_ViewFrame *) smeshGUI->myActiveStudy->
+ getActiveStudyFrame()->getRightFrame()->getViewFrame())->
+ getRWInteractor();
+ // vtkQGLRenderWindowInteractor* myRenderInter= smeshGUI->myActiveStudy->getActiveStudyFrame()->getRightFrame()->getVTKView()->getRWInteractor();
+
+ if (myRenderInter->isInViewer(IObject))
+ {
+ if (IObject->hasEntry())
+ {
+ Standard_Boolean res;
+ SMESH_Actor *ac =
+ smeshGUI->FindActorByEntry(IObject->getEntry(), res,
+ true);
+ if (res)
+ {
+ smeshGUI->DisplayActor(ac, true);
+ smeshGUI->DisplayEdges(ac);
+ smeshGUI->ChangeRepresentation(ac,
+ ac->getDisplayMode());
+ }
+ }
+ }
+ }
+ smeshGUI->myActiveStudy->updateObjBrowser(true);
+ QApplication::restoreOverrideCursor();
+ }
+ break;
+ }
+
+ case 400: // NODES
+ {
+ if (smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() ==
+ VIEW_VTK)
+ { //VTK
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ Sel->ClearIObjects();
+ smeshGUI->myDesktop->SetSelectionMode(1, true);
+ parent->menuBar()->setItemChecked(9010, false);
+ parent->menuBar()->setItemChecked(9011, false);
+ smeshGUI->ViewNodes();
+ SMESHGUI_NodesDlg *aDlg = new SMESHGUI_NodesDlg(parent, "", Sel);
+ }
+ else
+ {
+ QApplication::restoreOverrideCursor();
+ QAD_MessageBox::warn1(QAD_Application::getDesktop(),
+ tr("SMESH_WRN_WARNING"), tr("SMESH_WRN_VIEWER_VTK"),
+ tr("SMESH_BUT_YES"));
+ }
+ break;
+ }
+
+ case 405: // MOVE NODE
+ {
+ smeshGUI->myDesktop->SetSelectionMode(1, true);
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ SMESHGUI_MoveNodesDlg *aDlg =
+ new SMESHGUI_MoveNodesDlg(parent, "", Sel);
+ break;
+ }
+
+ case 701: // COMPUTE MESH
+ {
+ if (smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() ==
+ VIEW_VTK)
+ { //VTK
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ int nbSel = Sel->IObjectCount();
+ if (nbSel != 1)
+ {
+ QApplication::restoreOverrideCursor();
+ break;
+ }
+
+ SMESH::SMESH_Mesh_var aM;
+ SMESH::SMESH_subMesh_var aSubM;
+ Handle(SALOME_InteractiveObject) IObject = Sel->firstIObject();
+ if (IObject->hasEntry())
+ {
+ SALOMEDS::SObject_var aMorSM =
+ smeshGUI->myStudy->FindObjectID(IObject->getEntry());
+ SALOMEDS::GenericAttribute_var anAttr;
+ SALOMEDS::AttributeIOR_var anIOR;
+ if (!aMorSM->_is_nil())
+ {
+ if (aMorSM->FindAttribute(anAttr, "AttributeIOR"))
+ {
+ anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
+ MESSAGE("SMESHGUI::OnGUIEvent - Compute mesh : IOR = "
+ << anIOR->Value())CORBA::Object_var cobj;
+ try
+ {
+ cobj = _orb->string_to_object(anIOR->Value());
+ if (CORBA::is_nil(cobj))
+ {
+ MESSAGE
+ ("SMESHGUI::OnGUIEvent - Compute mesh : nil object")}
+ }
+ catch(CORBA::COMM_FAILURE & ex)
+ {
+ MESSAGE
+ ("SMESHGUI::OnGUIEvent - Compute mesh : exception (1)")}
+ aM = SMESH::SMESH_Mesh::_narrow(cobj);
+ //aM = SMESH::SMESH_Mesh::_narrow( _orb->string_to_object(anIOR->Value()) );
+ aSubM =
+ SMESH::SMESH_subMesh::_narrow(_orb->
+ string_to_object(anIOR->Value()));
+ if (!aM->_is_nil())
+ {
+ GEOM::GEOM_Shape_var refShape =
+ smeshGUI->myStudyAPI.
+ GetShapeOnMeshOrSubMesh(aMorSM);
+ if (!refShape->_is_nil())
+ {
+ bool compute =
+ smeshGUI->myComponentMesh->
+ IsReadyToCompute(aM, refShape);
+ if (!compute)
+ {
+ QApplication::restoreOverrideCursor();
+ QAD_MessageBox::warn1(QAD_Application::
+ getDesktop(), tr("SMESH_WRN_WARNING"),
+ tr("SMESH_WRN_MISSING_PARAMETERS"),
+ tr("SMESH_BUT_YES"));
+ break;
+ }
+ try
+ {
+ smeshGUI->myComponentMesh->Compute(aM,
+ refShape);
+ smeshGUI->myStudyAPI.ModifiedMesh(aMorSM,
+ true);
+ // TO Do : change icon of all submeshes
+ }
+ catch(const SALOME::SALOME_Exception & S_ex)
+ {
+ QtCatchCorbaException(S_ex);
+ }
+ }
+ }
+ else if (!aSubM->_is_nil())
+ {
+ aM = aSubM->GetFather();
+ GEOM::GEOM_Shape_var refShape =
+ smeshGUI->myStudyAPI.
+ GetShapeOnMeshOrSubMesh(aMorSM);
+ if (!refShape->_is_nil())
+ {
+ bool compute =
+ smeshGUI->myComponentMesh->
+ IsReadyToCompute(aM, refShape);
+ if (!compute)
+ {
+ QApplication::restoreOverrideCursor();
+ QAD_MessageBox::warn1(QAD_Application::
+ getDesktop(), tr("SMESH_WRN_WARNING"),
+ tr("SMESH_WRN_MISSING_PARAMETERS"),
+ tr("SMESH_BUT_YES"));
+ break;
+ }
+ try
+ {
+ smeshGUI->myComponentMesh->Compute(aM,
+ refShape);
+ smeshGUI->myStudyAPI.ModifiedMesh(aMorSM,
+ true);
+ // TO Do : change icon of all submeshes
+ }
+ catch(const SALOME::SALOME_Exception & S_ex)
+ {
+ QtCatchCorbaException(S_ex);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // Check whether the actor for the mesh exists at least in one view
+ Standard_Boolean res;
+ SMESH_Actor *ac =
+ smeshGUI->FindActorByEntry(IObject->getEntry(), res, false);
+ if (!res)
+ smeshGUI->InitActor(aM);
+ else
+ {
+ // Check whether the actor belongs to the active view
+ VTKViewer_RenderWindowInteractor *rwInter =
+ ((VTKViewer_ViewFrame *) smeshGUI->myActiveStudy->
+ getActiveStudyFrame()->getRightFrame()->getViewFrame())->
+ getRWInteractor();
+
+ // The actor belongs to inactive view -> create a copy and add it in the active view
+ if (!rwInter->isInViewer(IObject))
+ {
+ SMESH_Actor *acCopy = SMESH_Actor::New();
+ acCopy->ShallowCopy(ac);
+
+ smeshGUI->DisplayActor(acCopy, false);
+ }
+ }
+
+ if (smeshGUI->myAutomaticUpdate)
+ {
+ SMESH_Actor *Mesh = smeshGUI->ReadScript(aM);
+ if (Mesh != NULL)
+ {
+#ifdef TRACE
+ Dump(Mesh);
+#endif
+ smeshGUI->DisplayActor(Mesh, true);
+ smeshGUI->DisplayEdges(Mesh, true);
+ smeshGUI->ChangeRepresentation(Mesh,
+ Mesh->getDisplayMode());
+ }
+ }
+ }
+ else
+ {
+ QApplication::restoreOverrideCursor();
+ QAD_MessageBox::warn1(QAD_Application::getDesktop(),
+ tr("SMESH_WRN_WARNING"), tr("SMESH_WRN_VIEWER_VTK"),
+ tr("SMESH_BUT_YES"));
+ }
+ QApplication::restoreOverrideCursor();
+ break;
+ }
+
+ case 702: // ADD SUB MESH
+ {
+ if (smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() ==
+ VIEW_VTK)
+ { //VTK
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ SMESHGUI_AddSubMeshDlg *aDlg =
+ new SMESHGUI_AddSubMeshDlg(parent, "", Sel);
+ }
+ else
+ {
+ QApplication::restoreOverrideCursor();
+ QAD_MessageBox::warn1(QAD_Application::getDesktop(),
+ tr("SMESH_WRN_WARNING"), tr("SMESH_WRN_VIEWER_VTK"),
+ tr("SMESH_BUT_YES"));
+ }
+ break;
+ }
+
+ case 703: // INIT MESH
+ {
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ SMESHGUI_InitMeshDlg *aDlg = new SMESHGUI_InitMeshDlg(parent, "", Sel);
+ break;
+ }
+
+ case 704: // EDIT Hypothesis
+ {
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ SMESHGUI_EditHypothesesDlg *aDlg =
+ new SMESHGUI_EditHypothesesDlg(parent, "", Sel);
+ break;
+ }
+
+ case 705: // EDIT Global Hypothesis
+ {
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ SMESHGUI_EditHypothesesDlg *aDlg =
+ new SMESHGUI_EditHypothesesDlg(parent, "", Sel);
+ break;
+ }
+
+ case 706: // EDIT Local Hypothesis
+ {
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ SMESHGUI_EditHypothesesDlg *aDlg =
+ new SMESHGUI_EditHypothesesDlg(parent, "", Sel);
+ break;
+ }
+
+ case 806: // ORIENTATION ELEMENTS
+ {
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ smeshGUI->myDesktop->SetSelectionMode(3, true);
+ SMESHGUI_OrientationElementsDlg *aDlg =
+ new SMESHGUI_OrientationElementsDlg(parent, "", Sel);
+ break;
+ }
+
+ case 807: // DIAGONAL INVERSION
+ {
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ Sel->ClearIObjects();
+ smeshGUI->myDesktop->SetSelectionMode(2, true);
+ SMESHGUI_DiagonalInversionDlg *aDlg =
+ new SMESHGUI_DiagonalInversionDlg(parent, "", Sel);
+ break;
+ }
+
+ case 900: // MESH INFOS
+ {
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ SMESHGUI_MeshInfosDlg *aDlg =
+ new SMESHGUI_MeshInfosDlg(parent, "", Sel);
+ break;
+ }
+
+ case 1001: // AUTOMATIC UPDATE PREFERENCES
+ {
+ parent->menuBar()->setItemChecked(1001,
+ !parent->menuBar()->isItemChecked(1001));
+ if (parent->menuBar()->isItemChecked(1001))
+ {
+ QAD_CONFIG->addSetting("SMESH:AutomaticUpdate", "true");
+ smeshGUI->myAutomaticUpdate = true;
+ }
+ else
+ {
+ QAD_CONFIG->addSetting("SMESH:AutomaticUpdate", "false");
+ smeshGUI->myAutomaticUpdate = false;
+ }
+ break;
+ }
+
+ case 1003: // MESH PREFERENCES
+ {
+ smeshGUI->SetDisplaySettings();
+ break;
+ }
+
+ case 1005:
+ {
+ QString Bold = QAD_CONFIG->getSetting("ScalarBar:Bold");
+ QString Italic = QAD_CONFIG->getSetting("ScalarBar:Italic");
+ QString Shadow = QAD_CONFIG->getSetting("ScalarBar:Shadow");
+ QString FontFamily = QAD_CONFIG->getSetting("ScalarBar:FontFamily");
+ QString Orientation = QAD_CONFIG->getSetting("ScalarBar:Orientation");
+ float Width = QAD_CONFIG->getSetting("ScalarBar:Width").toFloat();
+ float Height = QAD_CONFIG->getSetting("ScalarBar:Height").toFloat();
+ int NumberOfLabels =
+ QAD_CONFIG->getSetting("ScalarBar:NumberOfLabels").toInt();
+ int NumberOfColors =
+ QAD_CONFIG->getSetting("ScalarBar:NumberOfColors").toInt();
+
+ if (Width == 0)
+ Width = 0.17;
+ if (Height == 0)
+ Height = 0.8;
+ if (NumberOfLabels == 0)
+ NumberOfLabels = 5;
+ if (NumberOfColors == 0)
+ NumberOfColors = 64;
+
+ SMESHGUI_Preferences_ScalarBarDlg *aDlg =
+ new SMESHGUI_Preferences_ScalarBarDlg(parent, "", true);
+
+ if (Bold.compare("true") == 0)
+ aDlg->Bold->setChecked(true);
+ else
+ aDlg->Bold->setChecked(false);
+ if (Italic.compare("true") == 0)
+ aDlg->Italic->setChecked(true);
+ else
+ aDlg->Italic->setChecked(false);
+ if (Shadow.compare("true") == 0)
+ aDlg->Shadow->setChecked(true);
+ else
+ aDlg->Shadow->setChecked(false);
+
+ if (Orientation.compare("Horizontal") == 0)
+ aDlg->RadioHoriz->setChecked(true);
+ else
+ aDlg->RadioVert->setChecked(true);
+
+ int NbItems = aDlg->ComboBox1->count();
+ int i = 0;
+ aDlg->ComboBox1->setCurrentItem(i);
+ while (i < NbItems)
+ {
+ if (FontFamily.compare(aDlg->ComboBox1->text(i)) == 0)
+ aDlg->ComboBox1->setCurrentItem(i);
+ i++;
+ }
+
+ aDlg->LineEditWidth->setText(QString("%1").arg(Width));
+ aDlg->LineEditHeight->setText(QString("%1").arg(Height));
+
+ aDlg->SpinBoxLabels->setValue(NumberOfLabels);
+ aDlg->SpinBoxColors->setValue(NumberOfColors);
+
+ aDlg->show();
+ if (aDlg->result())
+ {
+ if (aDlg->RadioHoriz->isChecked())
+ Orientation = "Horizontal";
+ else
+ Orientation = "Vertical";
+ if (aDlg->Bold->isChecked())
+ Bold = "true";
+ else
+ Bold = "false";
+ if (aDlg->Italic->isChecked())
+ Italic = "true";
+ else
+ Italic = "false";
+ if (aDlg->Shadow->isChecked())
+ Shadow = "true";
+ else
+ Shadow = "false";
+
+ FontFamily = aDlg->ComboBox1->currentText();
+ Width = aDlg->LineEditWidth->text().toFloat();
+ Height = aDlg->LineEditHeight->text().toFloat();
+ NumberOfColors = aDlg->SpinBoxColors->text().toInt();
+ NumberOfLabels = aDlg->SpinBoxLabels->text().toInt();
+
+ vtkScalarBarActor *aScalarBar = smeshGUI->GetScalarBar();
+ if (aScalarBar != NULL)
+ {
+ smeshGUI->SetSettingsScalarBar(aScalarBar, Bold, Italic, Shadow,
+ FontFamily, Orientation,
+ Width, Height, NumberOfColors, NumberOfLabels);
+ }
+
+ QAD_CONFIG->addSetting("ScalarBar:Bold", Bold);
+ QAD_CONFIG->addSetting("ScalarBar:Italic", Italic);
+ QAD_CONFIG->addSetting("ScalarBar:Shadow", Shadow);
+ QAD_CONFIG->addSetting("ScalarBar:FontFamily", FontFamily);
+ QAD_CONFIG->addSetting("ScalarBar:Orientation", Orientation);
+ QAD_CONFIG->addSetting("ScalarBar:Width", Width);
+ QAD_CONFIG->addSetting("ScalarBar:Height", Height);
+ QAD_CONFIG->addSetting("ScalarBar:NumberOfLabels", NumberOfLabels);
+ QAD_CONFIG->addSetting("ScalarBar:NumberOfColors", NumberOfColors);
+ }
+ break;
+ }
+
+ case 1100: // EDIT HYPOTHESIS
+ {
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ int nbSel = Sel->IObjectCount();
+
+ if (nbSel == 1)
+ {
+ Standard_Boolean res;
+ SMESH::SMESH_Hypothesis_var Hyp =
+ smeshGUI->ConvertIOinSMESHHypothesis(Sel->firstIObject(), res);
+
+ /* Look for all mesh objects that have this hupothesis affected in order to flag as ModifiedMesh */
+ /* At end below '...->updateObjBrowser(true)' will change icon of mesh objects */
+ /* Warning : however by internal mechanism all subMeshes icons are changed ! */
+ SALOMEDS::Study::ListOfSObject_var listSOmesh =
+ smeshGUI->GetMeshesUsingAlgoOrHypothesis(Hyp);
+
+ if (res)
+ {
+ QString Name = Hyp->GetName();
+
+ if (Name.compare("LocalLength") == 0)
+ {
+ SMESH::SMESH_LocalLength_var LL =
+ SMESH::SMESH_LocalLength::_narrow(Hyp);
+ double beforeLength = LL->GetLength();
+ double Length = smeshGUI->Parameter(res,
+ beforeLength,
+ tr("SMESH_LOCAL_LENGTH_HYPOTHESIS"),
+ tr("SMESH_VALUE"),
+ 1.0E-5, 1E6, 6);
+ if (res && Length != beforeLength)
+ {
+ LL->SetLength(Length);
+ for (int i = 0; i < listSOmesh->length(); i++)
+ {
+ smeshGUI->GetStudyAPI().ModifiedMesh(listSOmesh[i],
+ false);
+ }
+ break;
+ }
+
+ }
+ else if (Name.compare("NumberOfSegments") == 0)
+ {
+ SMESH::SMESH_NumberOfSegments_var NOS =
+ SMESH::SMESH_NumberOfSegments::_narrow(Hyp);
+ int beforeNbSeg = NOS->GetNumberOfSegments();
+ int NbSeg = smeshGUI->Parameter(res,
+ beforeNbSeg,
+ tr("SMESH_NB_SEGMENTS_HYPOTHESIS"),
+ tr("SMESH_VALUE"),
+ 1, 1000000);
+
+ if (res && NbSeg != beforeNbSeg)
+ {
+ NOS->SetNumberOfSegments(NbSeg);
+ for (int i = 0; i < listSOmesh->length(); i++)
+ {
+ SALOMEDS::SObject_var SO = listSOmesh[i];
+ smeshGUI->GetStudyAPI().ModifiedMesh(listSOmesh[i],
+ false);
+ }
+ break;
+ }
+
+ }
+ else if (Name.compare("MaxElementArea") == 0)
+ {
+ SMESH::SMESH_MaxElementArea_var MEA =
+ SMESH::SMESH_MaxElementArea::_narrow(Hyp);
+ double beforeMaxArea = MEA->GetMaxElementArea();
+ double MaxArea = smeshGUI->Parameter(res,
+ beforeMaxArea,
+ tr("SMESH_MAX_ELEMENT_AREA_HYPOTHESIS"),
+ tr("SMESH_VALUE"),
+ 1.0E-5, 1E6, 6);
+ if (res && MaxArea != beforeMaxArea)
+ {
+ MEA->SetMaxElementArea(MaxArea);
+ for (int i = 0; i < listSOmesh->length(); i++)
+ {
+ smeshGUI->GetStudyAPI().ModifiedMesh(listSOmesh[i],
+ false);
+ }
+ break;
+ }
+
+ }
+ else if (Name.compare("MaxElementVolume") == 0)
+ {
+ SMESH::SMESH_MaxElementVolume_var MEV =
+ SMESH::SMESH_MaxElementVolume::_narrow(Hyp);
+ double beforeMaxVolume = MEV->GetMaxElementVolume();
+ double MaxVolume = smeshGUI->Parameter(res,
+ beforeMaxVolume,
+ tr("SMESH_MAX_ELEMENT_VOLUME_HYPOTHESIS"),
+ tr("SMESH_VALUE"),
+ 1.0E-5, 1E6, 6);
+ if (res && MaxVolume != beforeMaxVolume)
+ {
+ MEV->SetMaxElementVolume(MaxVolume);
+ for (int i = 0; i < listSOmesh->length(); i++)
+ {
+ smeshGUI->GetStudyAPI().ModifiedMesh(listSOmesh[i],
+ false);
+ }
+ break;
+ }
+
+ }
+ else if (Name.compare("Regular_1D") == 0)
+ {
+ }
+ else if (Name.compare("MEFISTO_2D") == 0)
+ {
+ }
+ else
+ {
+ }
+
+ }
+ }
+ break;
+ }
+
+ case 1101: // RENAME
+ {
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ SALOME_ListIteratorOfListIO It(Sel->StoredIObjects());
+ for (; It.More(); It.Next())
+ {
+ Handle(SALOME_InteractiveObject) IObject = It.Value();
+
+ SALOMEDS::SObject_var obj =
+ smeshGUI->myStudy->FindObjectID(IObject->getEntry());
+ SALOMEDS::GenericAttribute_var anAttr;
+ SALOMEDS::AttributeName_var aName;
+ if (!obj->_is_nil())
+ {
+ if (obj->FindAttribute(anAttr, "AttributeName"))
+ {
+ aName = SALOMEDS::AttributeName::_narrow(anAttr);
+ QString newName = QString(aName->Value());
+ newName =
+ SALOMEGUI_NameDlg::getName(QAD_Application::
+ getDesktop(), newName);
+ if (!newName.isEmpty())
+ {
+ QApplication::setOverrideCursor(Qt::waitCursor);
+ smeshGUI->myActiveStudy->renameIObject(IObject,
+ newName);
+ }
+ QApplication::restoreOverrideCursor();
+ }
+ }
+ }
+ break;
+ }
+
+ case 1102: // REMOVE HYPOTHESIS / ALGORITHMS
+ {
+ QApplication::setOverrideCursor(Qt::waitCursor);
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ SALOME_ListIteratorOfListIO It(Sel->StoredIObjects());
+ for (int i = 0; It.More(); It.Next(), i++)
+ {
+ Handle(SALOME_InteractiveObject) IObject = It.Value();
+ smeshGUI->RemoveHypothesisOrAlgorithmOnMesh(IObject);
+ }
+ Sel->ClearIObjects();
+ smeshGUI->myActiveStudy->updateObjBrowser(true);
+ QApplication::restoreOverrideCursor();
+ break;
+ }
+
+ case 401: // GEOM::EDGE
+ {
+ if (smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() ==
+ VIEW_VTK)
+ { //VTK
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ Sel->ClearIObjects();
+ smeshGUI->myDesktop->SetSelectionMode(1, true);
+ parent->menuBar()->setItemChecked(9010, false);
+ parent->menuBar()->setItemChecked(9011, false);
+ smeshGUI->ViewNodes();
+ SMESHGUI_AddEdgeDlg *aDlg =
+ new SMESHGUI_AddEdgeDlg(parent, "", Sel);
+ }
+ else
+ {
+ QApplication::restoreOverrideCursor();
+ QAD_MessageBox::warn1(QAD_Application::getDesktop(),
+ tr("SMESH_WRN_WARNING"), tr("SMESH_WRN_VIEWER_VTK"),
+ tr("SMESH_BUT_YES"));
+ }
+ break;
+ }
+ case 4021: // TRIANGLE
+ {
+ if (smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() ==
+ VIEW_VTK)
+ { //VTK
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ Sel->ClearIObjects();
+ smeshGUI->myDesktop->SetSelectionMode(1, true);
+ parent->menuBar()->setItemChecked(9010, false);
+ parent->menuBar()->setItemChecked(9011, false);
+ smeshGUI->ViewNodes();
+ SMESHGUI_AddFaceDlg *aDlg =
+ new SMESHGUI_AddFaceDlg(parent, "", Sel, 3);
+ }
+ else
+ {
+ QApplication::restoreOverrideCursor();
+ QAD_MessageBox::warn1(QAD_Application::getDesktop(),
+ tr("SMESH_WRN_WARNING"), tr("SMESH_WRN_VIEWER_VTK"),
+ tr("SMESH_BUT_YES"));
+ }
+ break;
+ }
+ case 4022: // QUAD
+ {
+ if (smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() ==
+ VIEW_VTK)
+ { //VTK
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ Sel->ClearIObjects();
+ smeshGUI->myDesktop->SetSelectionMode(1, true);
+ parent->menuBar()->setItemChecked(9010, false);
+ parent->menuBar()->setItemChecked(9011, false);
+ smeshGUI->ViewNodes();
+ SMESHGUI_AddFaceDlg *aDlg =
+ new SMESHGUI_AddFaceDlg(parent, "", Sel, 4);
+ }
+ else
+ {
+ QApplication::restoreOverrideCursor();
+ QAD_MessageBox::warn1(QAD_Application::getDesktop(),
+ tr("SMESH_WRN_WARNING"), tr("SMESH_WRN_VIEWER_VTK"),
+ tr("SMESH_BUT_YES"));
+ }
+ break;
+ }
+ case 4031: // TETRA
+ {
+ if (smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() ==
+ VIEW_VTK)
+ { //VTK
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ Sel->ClearIObjects();
+ smeshGUI->myDesktop->SetSelectionMode(1, true);
+ parent->menuBar()->setItemChecked(9010, false);
+ parent->menuBar()->setItemChecked(9011, false);
+ smeshGUI->ViewNodes();
+ SMESHGUI_AddVolumeDlg *aDlg =
+ new SMESHGUI_AddVolumeDlg(parent, "", Sel, 4);
+ }
+ else
+ {
+ QApplication::restoreOverrideCursor();
+ QAD_MessageBox::warn1(QAD_Application::getDesktop(),
+ tr("SMESH_WRN_WARNING"), tr("SMESH_WRN_VIEWER_VTK"),
+ tr("SMESH_BUT_YES"));
+ }
+ break;
+ }
+ case 4032: // HEXA
+ {
+ if (smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() ==
+ VIEW_VTK)
+ { //VTK
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ Sel->ClearIObjects();
+ smeshGUI->myDesktop->SetSelectionMode(1, true);
+ parent->menuBar()->setItemChecked(9010, false);
+ parent->menuBar()->setItemChecked(9011, false);
+ smeshGUI->ViewNodes();
+ SMESHGUI_AddVolumeDlg *aDlg =
+ new SMESHGUI_AddVolumeDlg(parent, "", Sel, 8);
+ }
+ else
+ {
+ QApplication::restoreOverrideCursor();
+ QAD_MessageBox::warn1(QAD_Application::getDesktop(),
+ tr("SMESH_WRN_WARNING"), tr("SMESH_WRN_VIEWER_VTK"),
+ tr("SMESH_BUT_YES"));
+ }
+ break;
+ }
+
+ case 4041: // REMOVES NODES
+ {
+ if (smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() ==
+ VIEW_VTK)
+ { //VTK
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ Sel->ClearIObjects();
+ smeshGUI->myDesktop->SetSelectionMode(1, true);
+ parent->menuBar()->setItemChecked(9010, false);
+ parent->menuBar()->setItemChecked(9011, false);
+ smeshGUI->ViewNodes();
+ SMESHGUI_RemoveNodesDlg *aDlg =
+ new SMESHGUI_RemoveNodesDlg(parent, "", Sel);
+ }
+ else
+ {
+ QApplication::restoreOverrideCursor();
+ QAD_MessageBox::warn1(QAD_Application::getDesktop(),
+ tr("SMESH_WRN_WARNING"), tr("SMESH_WRN_VIEWER_VTK"),
+ tr("SMESH_BUT_YES"));
+ }
+ break;
+ }
+ case 4042: // REMOVES ELEMENTS
+ {
+ if (smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() ==
+ VIEW_VTK)
+ { //VTK
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ Sel->ClearIObjects();
+ smeshGUI->myDesktop->SetSelectionMode(3, true);
+ SMESHGUI_RemoveElementsDlg *aDlg =
+ new SMESHGUI_RemoveElementsDlg(parent, "", Sel);
+ }
+ else
+ {
+ QApplication::restoreOverrideCursor();
+ QAD_MessageBox::warn1(QAD_Application::getDesktop(),
+ tr("SMESH_WRN_WARNING"), tr("SMESH_WRN_VIEWER_VTK"),
+ tr("SMESH_BUT_YES"));
+ }
+ break;
+ }
+
+ case 5000: // HYPOTHESIS - ALGO
+ {
+ smeshGUI->CreateAlgorithm("Regular_1D", "Wire Discretisation");
+ break;
+ }
+ case 5010:
+ {
+ smeshGUI->CreateAlgorithm("MEFISTO_2D", "Triangle (Mefisto)");
+ break;
+ }
+ case 5011:
+ {
+ smeshGUI->CreateAlgorithm("Quadrangle_2D", "Quadrangle (Mapping)");
+ break;
+ }
+ case 5020:
+ {
+ smeshGUI->CreateAlgorithm("Hexa_3D", "Hexahedron (i,j,k)");
+ break;
+ }
+ case 5021:
+ {
+ smeshGUI->CreateAlgorithm("NETGEN_3D", "Tetrahedron (Netgen)");
+ break;
+ }
+
+ case 5030: // HYPOTHESIS - LOCAL LENGTH
+ {
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ SMESHGUI_LocalLengthDlg *aDlg = new SMESHGUI_LocalLengthDlg(parent, "");
+ break;
+ }
+ case 5031: // HYPOTHESIS - NB SEGMENTS
+ {
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ SMESHGUI_NbSegmentsDlg *aDlg = new SMESHGUI_NbSegmentsDlg(parent, "");
+ break;
+ }
+
+ case 5032: // HYPOTHESIS - MAX ELEMENT AREA
+ {
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ SMESHGUI_MaxElementAreaDlg *aDlg =
+ new SMESHGUI_MaxElementAreaDlg(parent, "");
+ break;
+ }
+
+ case 5033: // HYPOTHESIS - MAX ELEMENT VOLUME
+ {
+ smeshGUI->EmitSignalDeactivateDialog();
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ SMESHGUI_MaxElementVolumeDlg *aDlg =
+ new SMESHGUI_MaxElementVolumeDlg(parent, "");
+ break;
+ }
+
+ case 6016: // CONTROLS
+ case 6015:
+ case 6014:
+ case 6013:
+ case 6012:
+ case 6011:
+ case 6001:
+ {
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ int nbSel = Sel->IObjectCount();
+ if (nbSel != 1)
+ break;
+ smeshGUI->Control(theCommandID);
+ break;
+ }
+
+ case 6002:
+ {
+ if (smeshGUI->myActiveStudy->getActiveStudyFrame()->getTypeView() ==
+ VIEW_VTK)
+ { //VTK
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ SMESHGUI_EdgesConnectivityDlg *Dlg =
+ new SMESHGUI_EdgesConnectivityDlg(parent, "", Sel);
+ }
+ else
+ {
+ QApplication::restoreOverrideCursor();
+ QAD_MessageBox::warn1(QAD_Application::getDesktop(),
+ tr("SMESH_WRN_WARNING"), tr("SMESH_WRN_VIEWER_VTK"),
+ tr("SMESH_BUT_YES"));
+ }
+ break;
+ }
+
+ case 9010:
+ {
+ if (!parent->menuBar()->isItemChecked(9010))
+ {
+ QApplication::setOverrideCursor(Qt::waitCursor);
+ parent->menuBar()->setItemChecked(9011, false);
+
+ smeshGUI->EraseSimulationActors();
+ smeshGUI->mySimulationActors2D = vtkActor2DCollection::New();
+
+ SALOME_Selection *Sel =
+ SALOME_Selection::Selection(smeshGUI->myActiveStudy->
+ getSelection());
+ int nbSel = Sel->IObjectCount();
+ if (nbSel == 1)
+ {
+ Standard_Boolean res;
+ SMESH_Actor *MeshActor =
+ smeshGUI->FindActorByEntry(Sel->firstIObject()->getEntry(),
+ res, true);
+ if (res)
+ {
+ parent->menuBar()->setItemChecked(9010,
+ !parent->menuBar()->isItemChecked(9010));
+
+ // It's necessary to display SMDS IDs instead of VTK ones, so
+ // vtkIdFilter is unacceptable here. We have to do it manually :(
+ vtkUnstructuredGrid *ptGrid = vtkUnstructuredGrid::New();
+ ptGrid->CopyStructure(MeshActor->DataSource);
+
+ int numPts = MeshActor->DataSource->GetNumberOfPoints();
+
+ // Loop over points and generate ids
+ vtkIntArray *ptIds = vtkIntArray::New();
+ ptIds->SetNumberOfValues(numPts);
+
+ for (int id = 0; id < numPts; id++)
+ {
+ int idSMDS = MeshActor->GetIdSMESHDSNode(id);
+ ptIds->SetValue(id, idSMDS);
+ }