- QApplication::restoreOverrideCursor();
- break;
- }
- case 9011:
- {
- if ( !parent->menuBar()->isItemChecked(9011) ) {
- QApplication::setOverrideCursor( Qt::waitCursor );
- parent->menuBar()->setItemChecked(9010, 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(9011, !parent->menuBar()->isItemChecked(9011) );
-
- // It's necessary to display SMDS IDs instead of VTK ones, so
- // vtkIdFilter is unacceptable here. We have to do it manually :(
- vtkUnstructuredGrid* elGrid = vtkUnstructuredGrid::New();
- elGrid->CopyStructure(MeshActor->DataSource);
-
- int numCells = MeshActor->DataSource->GetNumberOfCells();
-
- // Loop over points and generate ids
- vtkIntArray *cellIds = vtkIntArray::New();
- cellIds->SetNumberOfValues(numCells);
-
- for (int id=0; id < numCells; id++) {
- int idSMDS = MeshActor->GetIdSMESHDSElement(id);
- cellIds->SetValue(id, idSMDS);
- }
-
- vtkScalars* newScalars = vtkScalars::New();
- newScalars->SetData(cellIds);
- elGrid->GetCellData()->SetScalars(newScalars);
-
- newScalars->Delete();
- cellIds->Delete();
-
- vtkCellCenters* cc = vtkCellCenters::New();
- cc->SetInput(elGrid);
-
- vtkSelectVisiblePoints* visCells = vtkSelectVisiblePoints::New();
- visCells->SetInput(cc->GetOutput());
- visCells->SetRenderer(((VTKViewer_ViewFrame*)smeshGUI->myActiveStudy->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getRenderer());
- visCells->SelectInvisibleOff();
- visCells->SetTolerance(0.1);
- // visCells->SetSelectInvisible(1);
-
- vtkLabeledDataMapper* ldm = vtkLabeledDataMapper::New();
- ldm->SetInput(visCells->GetOutput());
- ldm->SetLabelFormat("%g");
- ldm->SetLabelModeToLabelScalars();
-
- ldm->SetFontFamilyToTimes();
- ldm->SetFontSize(6 * parent->font().pointSize() / 5);
- ldm->SetBold(1);
- ldm->SetItalic(0);
- ldm->SetShadow(0);
-
- vtkActor2D* cellLabels = vtkActor2D::New();
- cellLabels->SetMapper(ldm);
- cellLabels->GetProperty()->SetColor(1,0,0);
-
- cc->Delete();
- visCells->Delete();
- ldm->Delete();
- smeshGUI->mySimulationActors2D->AddItem( cellLabels );
- ((VTKViewer_ViewFrame*)smeshGUI->myActiveStudy->getActiveStudyFrame()->getRightFrame()->getViewFrame())->getRenderer()->AddActor2D( cellLabels );
- }
- }
- } else {
- QApplication::setOverrideCursor( Qt::waitCursor );
- parent->menuBar()->setItemChecked(9011, !parent->menuBar()->isItemChecked(9011) );
- smeshGUI->EraseSimulationActors();
- smeshGUI->ScalarVisibilityOff();
+ 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);
+ }
+
+// mpv porting vtk4.2.2
+ // vtkScalars* newScalars = vtkScalars::New();
+ // newScalars->SetData(ptIds);
+ // ptGrid->GetPointData()->SetScalars(newScalars);
+ ptGrid->GetPointData()->SetScalars(ptIds);
+ // newScalars->Delete();
+// mpv
+ ptIds->Delete();
+
+ vtkMaskPoints *mask = vtkMaskPoints::New();
+ mask->SetInput(ptGrid);
+ mask->SetOnRatio(1);
+ // mask->SetMaximumNumberOfPoints( 50 );
+ // mask->RandomModeOn();
+
+ vtkSelectVisiblePoints *visPts =
+ vtkSelectVisiblePoints::New();
+ visPts->SetInput(mask->GetOutput());
+ visPts->SetRenderer(((VTKViewer_ViewFrame *) smeshGUI->
+ myActiveStudy->getActiveStudyFrame()->
+ getRightFrame()->getViewFrame())->getRenderer());
+ //visPts->SetSelectInvisible(1);
+ visPts->SelectInvisibleOff();
+ visPts->SetTolerance(0.1);
+
+ vtkLabeledDataMapper *ldm = vtkLabeledDataMapper::New();
+ ldm->SetInput(visPts->GetOutput());
+ ldm->SetLabelFormat("%g");
+ ldm->SetLabelModeToLabelScalars();
+ //ldm->SetLabelModeToLabelFieldData();
+
+ ldm->SetFontFamilyToTimes();
+ ldm->SetFontSize(6 * parent->font().pointSize() / 5);
+ ldm->SetBold(1);
+ ldm->SetItalic(0);
+ ldm->SetShadow(0);
+
+ vtkActor2D *pointLabels = vtkActor2D::New();
+ pointLabels->SetMapper(ldm);
+ pointLabels->GetProperty()->SetColor(0, 1, 0);
+
+ visPts->Delete();
+ ldm->Delete();
+ smeshGUI->mySimulationActors2D->AddItem(pointLabels);
+ ((VTKViewer_ViewFrame *) smeshGUI->myActiveStudy->
+ getActiveStudyFrame()->getRightFrame()->
+ getViewFrame())->getRenderer()->AddActor2D(pointLabels);
+ }
+ }
+ }
+ else
+ {
+ QApplication::setOverrideCursor(Qt::waitCursor);
+ parent->menuBar()->setItemChecked(9010,
+ !parent->menuBar()->isItemChecked(9010));
+ smeshGUI->EraseSimulationActors();
+ smeshGUI->ScalarVisibilityOff();
+ }
+ QApplication::restoreOverrideCursor();
+ break;
+ }
+ case 9011:
+ {
+ if (!parent->menuBar()->isItemChecked(9011))
+ {
+ QApplication::setOverrideCursor(Qt::waitCursor);
+ parent->menuBar()->setItemChecked(9010, 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(9011,
+ !parent->menuBar()->isItemChecked(9011));
+
+ // It's necessary to display SMDS IDs instead of VTK ones, so
+ // vtkIdFilter is unacceptable here. We have to do it manually :(
+ vtkUnstructuredGrid *elGrid = vtkUnstructuredGrid::New();
+ elGrid->CopyStructure(MeshActor->DataSource);
+
+ int numCells = MeshActor->DataSource->GetNumberOfCells();
+
+ // Loop over points and generate ids
+ vtkIntArray *cellIds = vtkIntArray::New();
+ cellIds->SetNumberOfValues(numCells);
+
+ for (int id = 0; id < numCells; id++)
+ {
+ int idSMDS = MeshActor->GetIdSMESHDSElement(id);
+ cellIds->SetValue(id, idSMDS);
+ }
+
+// mpv porting vk4.2.2
+ // vtkScalars* newScalars = vtkScalars::New();
+ // newScalars->SetData(cellIds);
+ elGrid->GetCellData()->SetScalars(cellIds);
+ // elGrid->GetCellData()->SetScalars(newScalars);
+ // newScalars->Delete();
+//mpv
+
+ cellIds->Delete();
+
+ vtkCellCenters *cc = vtkCellCenters::New();
+ cc->SetInput(elGrid);
+
+ vtkSelectVisiblePoints *visCells =
+ vtkSelectVisiblePoints::New();
+ visCells->SetInput(cc->GetOutput());
+ visCells->SetRenderer(((VTKViewer_ViewFrame *) smeshGUI->
+ myActiveStudy->getActiveStudyFrame()->
+ getRightFrame()->getViewFrame())->getRenderer());
+ visCells->SelectInvisibleOff();
+ visCells->SetTolerance(0.1);
+ // visCells->SetSelectInvisible(1);
+
+ vtkLabeledDataMapper *ldm = vtkLabeledDataMapper::New();
+ ldm->SetInput(visCells->GetOutput());
+ ldm->SetLabelFormat("%g");
+ ldm->SetLabelModeToLabelScalars();
+
+ ldm->SetFontFamilyToTimes();
+ ldm->SetFontSize(6 * parent->font().pointSize() / 5);
+ ldm->SetBold(1);
+ ldm->SetItalic(0);
+ ldm->SetShadow(0);
+
+ vtkActor2D *cellLabels = vtkActor2D::New();
+ cellLabels->SetMapper(ldm);
+ cellLabels->GetProperty()->SetColor(1, 0, 0);
+
+ cc->Delete();
+ visCells->Delete();
+ ldm->Delete();
+ smeshGUI->mySimulationActors2D->AddItem(cellLabels);
+ ((VTKViewer_ViewFrame *) smeshGUI->myActiveStudy->
+ getActiveStudyFrame()->getRightFrame()->
+ getViewFrame())->getRenderer()->AddActor2D(cellLabels);
+ }
+ }
+ }
+ else
+ {
+ QApplication::setOverrideCursor(Qt::waitCursor);
+ parent->menuBar()->setItemChecked(9011,
+ !parent->menuBar()->isItemChecked(9011));
+ smeshGUI->EraseSimulationActors();
+ smeshGUI->ScalarVisibilityOff();
+ }
+ QApplication::restoreOverrideCursor();
+ break;