Version: 6.3.1
Signals | Public Member Functions | Protected Slots | Protected Member Functions | Protected Attributes

SMESHGUI_CuttingIntoTetraDlg Class Reference

Class : SMESHGUI_CuttingIntoTetraDlg Description : Split all volumes into tetrahedrons. More...

#include <SMESHGUI_MultiEditDlg.h>

Inheritance diagram for SMESHGUI_CuttingIntoTetraDlg:
Inheritance graph
[legend]

Signals

void ListContensChanged ()

Public Member Functions

 SMESHGUI_CuttingIntoTetraDlg (SMESHGUI *)
 Class : SMESHGUI_CuttingIntoTetraDlg Description : Modification of orientation of faces.
virtual ~SMESHGUI_CuttingIntoTetraDlg ()
void Init ()
bool eventFilter (QObject *, QEvent *)

Protected Slots

void onOk ()
virtual bool onApply ()
virtual void onClose ()
void onHelp ()
void onDeactivate ()
void onSelectionDone ()
void onFilterBtn ()
void onAddBtn ()
void onRemoveBtn ()
void onSortListBtn ()
void onListSelectionChanged ()
void onSubmeshChk ()
void onGroupChk ()
virtual void onToAllChk ()
void onFilterAccepted ()
void on3d2dChanged (int)
SMESH::NumericalFunctor_ptr getNumericalFunctor ()

Protected Member Functions

virtual bool process (SMESH::SMESH_MeshEditor_ptr, const SMESH::long_array &, SMESH::SMESH_IDSource_ptr obj)
void closeEvent (QCloseEvent *)
void enterEvent (QEvent *)
void hideEvent (QHideEvent *)
void keyPressEvent (QKeyEvent *)
QWidgetcreateButtonFrame (QWidget *)
QWidgetcreateMainFrame (QWidget *, const bool)
virtual bool isValid (const bool)
SMESH::long_array_var getIds (SMESH::SMESH_IDSource_var &obj)
void updateButtons ()
void setSelectionMode ()
virtual bool isIdValid (const int) const
int entityType ()

Protected Attributes

QPushButton * myOkBtn
QPushButton * myApplyBtn
QPushButton * myCloseBtn
QPushButton * myHelpBtn
SMESH_ActormyActor
SMESH::SMESH_Mesh_var myMesh
LightApp_SelectionMgr * mySelectionMgr
SVTK_Selector * mySelector
SMESHGUImySMESHGUI
QGroupBoxmySelGrp
QGroupBoxmyCriterionGrp
QWidgetmyChoiceWidget
QButtonGroup * myGroupChoice
QComboBox * myComboBoxFunctor
QListWidget * myListBox
QPushButton * myFilterBtn
QPushButton * myAddBtn
QPushButton * myRemoveBtn
QPushButton * mySortBtn
QCheckBox * myToAllChk
QButtonGroup * myEntityTypeGrp
QCheckBox * mySubmeshChk
QPushButton * mySubmeshBtn
QLineEdit * mySubmesh
QCheckBox * myGroupChk
QPushButton * myGroupBtn
QLineEdit * myGroup
SMESHGUI_FilterDlgmyFilterDlg
TColStd_MapOfInteger myIds
int myFilterType
bool myBusy
int myEntityType
QString myHelpFileName

Detailed Description

Class : SMESHGUI_CuttingIntoTetraDlg Description : Split all volumes into tetrahedrons.

Definition at line 241 of file SMESHGUI_MultiEditDlg.h.


Constructor & Destructor Documentation

SMESHGUI_CuttingIntoTetraDlg::SMESHGUI_CuttingIntoTetraDlg ( SMESHGUI theModule)

Class : SMESHGUI_CuttingIntoTetraDlg Description : Modification of orientation of faces.

Definition at line 1479 of file SMESHGUI_MultiEditDlg.cxx.

References SMESHGUI_MultiEditDlg.myChoiceWidget, SMESHGUI_MultiEditDlg.myComboBoxFunctor, SMESHGUI_MultiEditDlg.myCriterionGrp, SMESHGUI_MultiEditDlg.myEntityType, SMESHGUI_MultiEditDlg.myGroupChoice, SMESHGUI_MultiEditDlg.myHelpFileName, SMESHGUI_MultiEditDlg.myToAllChk, SMESHGUI_MultiEditDlg.setSelectionMode(), and SMESHGUI_MultiEditDlg.updateButtons().

  : SMESHGUI_MultiEditDlg(theModule, SMESH::VolumeFilter, false)
{
  setWindowTitle(tr("CAPTION"));
  myHelpFileName = "split_to_tetra_page.html";
  myEntityType = 1;

  myToAllChk->setChecked( true ); //aplly to the whole mesh by default

  bool hasHexa = true;//myMesh->_is_nil() ? false : myMesh->NbHexas();

  if ( hasHexa )
  {
    myGroupChoice->button(0)->setText( tr("SPLIT_HEX_TO_5_TETRA"));
    myGroupChoice->button(1)->setText( tr("SPLIT_HEX_TO_6_TETRA"));
    myGroupChoice->button(2)->setText( tr("SPLIT_HEX_TO_24_TETRA"));

    myCriterionGrp->setTitle( tr("SPLIT_METHOD"));
    myCriterionGrp->show();
    myComboBoxFunctor->hide();
    myChoiceWidget->show();
  }
  setSelectionMode();
  updateButtons();
}
SMESHGUI_CuttingIntoTetraDlg::~SMESHGUI_CuttingIntoTetraDlg ( ) [virtual]

Definition at line 1505 of file SMESHGUI_MultiEditDlg.cxx.

{
}

Member Function Documentation

void SMESHGUI_MultiEditDlg::closeEvent ( QCloseEvent *  ) [protected, inherited]

Definition at line 651 of file SMESHGUI_MultiEditDlg.cxx.

References SMESHGUI_MultiEditDlg.onClose().

{
  onClose();
}
QWidget * SMESHGUI_MultiEditDlg::createButtonFrame ( QWidget theParent) [protected, inherited]

Definition at line 276 of file SMESHGUI_MultiEditDlg.cxx.

References MARGIN, SMESHGUI_MultiEditDlg.myApplyBtn, SMESHGUI_MultiEditDlg.myCloseBtn, SMESHGUI_MultiEditDlg.myHelpBtn, SMESHGUI_MultiEditDlg.myOkBtn, and SPACING.

{
  QGroupBox* aFrame = new QGroupBox(theParent);

  myOkBtn     = new QPushButton (tr("SMESH_BUT_APPLY_AND_CLOSE"), aFrame);
  myApplyBtn  = new QPushButton (tr("SMESH_BUT_APPLY"), aFrame);
  myCloseBtn  = new QPushButton (tr("SMESH_BUT_CLOSE"), aFrame);
  myHelpBtn   = new QPushButton (tr("SMESH_BUT_HELP"),  aFrame);

  QHBoxLayout* aLay = new QHBoxLayout (aFrame);
  aLay->setMargin(MARGIN);
  aLay->setSpacing(SPACING);

  aLay->addWidget(myOkBtn);
  aLay->addSpacing(10);
  aLay->addWidget(myApplyBtn);
  aLay->addSpacing(10);
  aLay->addStretch();
  aLay->addWidget(myCloseBtn);
  aLay->addWidget(myHelpBtn);

  return aFrame;
}
QWidget * SMESHGUI_MultiEditDlg::createMainFrame ( QWidget theParent,
const bool  the3d2d 
) [protected, inherited]

Definition at line 137 of file SMESHGUI_MultiEditDlg.cxx.

References SMESH.GetResourceMgr(), MARGIN, SMESHGUI_MultiEditDlg.myAddBtn, SMESHGUI_MultiEditDlg.myChoiceWidget, SMESHGUI_MultiEditDlg.myComboBoxFunctor, SMESHGUI_MultiEditDlg.myCriterionGrp, SMESHGUI_MultiEditDlg.myEntityType, SMESHGUI_MultiEditDlg.myEntityTypeGrp, SMESHGUI_MultiEditDlg.myFilterBtn, SMESHGUI_MultiEditDlg.myGroup, SMESHGUI_MultiEditDlg.myGroupBtn, SMESHGUI_MultiEditDlg.myGroupChk, SMESHGUI_MultiEditDlg.myGroupChoice, SMESHGUI_MultiEditDlg.myListBox, SMESHGUI_MultiEditDlg.myRemoveBtn, SMESHGUI_MultiEditDlg.mySelGrp, SMESHGUI_MultiEditDlg.mySMESHGUI, SMESHGUI_MultiEditDlg.mySortBtn, SMESHGUI_MultiEditDlg.mySubmesh, SMESHGUI_MultiEditDlg.mySubmeshBtn, SMESHGUI_MultiEditDlg.mySubmeshChk, SMESHGUI_MultiEditDlg.myToAllChk, and SPACING.

{
  QWidget* aMainGrp = new QWidget(theParent);
  QVBoxLayout* aMainGrpLayout = new QVBoxLayout(aMainGrp);
  aMainGrpLayout->setMargin(0);
  aMainGrpLayout->setSpacing(SPACING);

  QPixmap aPix (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));

  // "Selected cells" group
  mySelGrp = new QGroupBox(aMainGrp);
  
  QGridLayout* mySelGrpLayout = new QGridLayout(mySelGrp);
  mySelGrpLayout->setMargin(MARGIN);
  mySelGrpLayout->setSpacing(SPACING);

  myEntityTypeGrp = 0;
  if (the3d2d) {
    QGroupBox* aEntityTypeGrp = new QGroupBox(tr("SMESH_ELEMENTS_TYPE"), mySelGrp);
    myEntityTypeGrp = new QButtonGroup(mySelGrp);
    QHBoxLayout* aEntityLayout = new QHBoxLayout(aEntityTypeGrp);
    aEntityLayout->setMargin(MARGIN);
    aEntityLayout->setSpacing(SPACING);

    QRadioButton* aFaceRb = new QRadioButton(tr("SMESH_FACE"), aEntityTypeGrp);
    QRadioButton* aVolumeRb = new QRadioButton(tr("SMESH_VOLUME"), aEntityTypeGrp);

    aEntityLayout->addWidget(aFaceRb);
    aEntityLayout->addWidget(aVolumeRb);

    myEntityTypeGrp->addButton(aFaceRb, 0);
    myEntityTypeGrp->addButton(aVolumeRb, 1);
    aFaceRb->setChecked(true);
    myEntityType = myEntityTypeGrp->checkedId();

    mySelGrpLayout->addWidget(aEntityTypeGrp, 0, 0, 1, 2);
  }

  myListBox = new QListWidget(mySelGrp);
  myListBox->setSelectionMode(QListWidget::ExtendedSelection);
  myListBox->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
  myListBox->installEventFilter(this);

  myFilterBtn = new QPushButton(tr("FILTER"),    mySelGrp);
  myAddBtn    = new QPushButton(tr("ADD"),       mySelGrp);
  myRemoveBtn = new QPushButton(tr("REMOVE"),    mySelGrp);
  mySortBtn   = new QPushButton(tr("SORT_LIST"), mySelGrp);

  int row = mySelGrpLayout->rowCount();
  mySelGrpLayout->addWidget(myListBox,   row,   0, 6, 1);
  mySelGrpLayout->addWidget(myFilterBtn, row,   1);
  mySelGrpLayout->addWidget(myAddBtn,    row+2, 1);
  mySelGrpLayout->addWidget(myRemoveBtn, row+3, 1);
  mySelGrpLayout->addWidget(mySortBtn,   row+5, 1);
  mySelGrpLayout->setRowMinimumHeight(row+1, 10);
  mySelGrpLayout->setRowMinimumHeight(row+4, 10);
  mySelGrpLayout->setRowStretch(row+1, 5);
  mySelGrpLayout->setRowStretch(row+4, 5);

  myToAllChk = new QCheckBox(tr("TO_ALL"), mySelGrp);
  mySelGrpLayout->addWidget(myToAllChk, mySelGrpLayout->rowCount(), 0, 
                            1, mySelGrpLayout->columnCount());

  // Split/Join criterion group
  myCriterionGrp = new QGroupBox(tr("SPLIT_JOIN_CRITERION"), aMainGrp);
  QVBoxLayout* aCriterionLayout = new QVBoxLayout(myCriterionGrp);
  aCriterionLayout->setMargin(MARGIN);
  aCriterionLayout->setSpacing(SPACING);
  
  myChoiceWidget = new QWidget(myCriterionGrp);
  myGroupChoice = new QButtonGroup(myChoiceWidget);
  QVBoxLayout* aGroupChoiceLayout = new QVBoxLayout(myChoiceWidget);
  aGroupChoiceLayout->setMargin(0);
  aGroupChoiceLayout->setSpacing(SPACING);

  QRadioButton* aDiag13RB  = new QRadioButton(tr("USE_DIAGONAL_1_3"), myChoiceWidget);
  QRadioButton* aDiag24RB  = new QRadioButton(tr("USE_DIAGONAL_2_4"), myChoiceWidget);
  QRadioButton* aNumFuncRB = new QRadioButton(tr("USE_NUMERIC_FUNC"), myChoiceWidget);

  aGroupChoiceLayout->addWidget(aDiag13RB);
  aGroupChoiceLayout->addWidget(aDiag24RB);
  aGroupChoiceLayout->addWidget(aNumFuncRB);
  myGroupChoice->addButton(aDiag13RB,  0);
  myGroupChoice->addButton(aDiag24RB,  1);
  myGroupChoice->addButton(aNumFuncRB, 2);
  aDiag13RB->setChecked(true);

  myComboBoxFunctor = new QComboBox(myCriterionGrp);
  myComboBoxFunctor->addItem(tr("ASPECTRATIO_ELEMENTS"));
  myComboBoxFunctor->addItem(tr("MINIMUMANGLE_ELEMENTS"));
  myComboBoxFunctor->addItem(tr("SKEW_ELEMENTS"));
  myComboBoxFunctor->addItem(tr("AREA_ELEMENTS"));
  //myComboBoxFunctor->addItem(tr("LENGTH2D_EDGES")); // for existing elements only
  //myComboBoxFunctor->addItem(tr("MULTI2D_BORDERS")); // for existing elements only
  myComboBoxFunctor->setCurrentIndex(0);

  aCriterionLayout->addWidget(myChoiceWidget);
  aCriterionLayout->addWidget(myComboBoxFunctor);

  myCriterionGrp->hide();
  myChoiceWidget->hide();
  myComboBoxFunctor->setEnabled(false);

  // "Select from" group
  QGroupBox* aGrp = new QGroupBox(tr("SELECT_FROM"), aMainGrp);
  QGridLayout* aGrpLayout = new QGridLayout(aGrp);
  aGrpLayout->setMargin(MARGIN);
  aGrpLayout->setSpacing(SPACING);

  mySubmeshChk = new QCheckBox(tr("SMESH_SUBMESH"), aGrp);
  mySubmeshBtn = new QPushButton(aGrp);
  mySubmesh = new QLineEdit(aGrp);
  mySubmesh->setReadOnly(true);
  mySubmeshBtn->setIcon(aPix);

  myGroupChk = new QCheckBox(tr("SMESH_GROUP"), aGrp);
  myGroupBtn = new QPushButton(aGrp);
  myGroup = new QLineEdit(aGrp);
  myGroup->setReadOnly(true);
  myGroupBtn->setIcon(aPix);

  aGrpLayout->addWidget(mySubmeshChk,0,0);
  aGrpLayout->addWidget(mySubmeshBtn,0,1);
  aGrpLayout->addWidget(mySubmesh,0,2);
  aGrpLayout->addWidget(myGroupChk,1,0);
  aGrpLayout->addWidget(myGroupBtn,1,1);
  aGrpLayout->addWidget(myGroup,1,2);
  
  aMainGrpLayout->addWidget(mySelGrp);
  aMainGrpLayout->addWidget(myCriterionGrp);
  aMainGrpLayout->addWidget(aGrp);

  return aMainGrp;
}
void SMESHGUI_MultiEditDlg::enterEvent ( QEvent *  ) [protected, inherited]
int SMESHGUI_MultiEditDlg::entityType ( ) [protected, inherited]
bool SMESHGUI_MultiEditDlg::eventFilter ( QObject object,
QEvent *  event 
) [inherited]

Definition at line 327 of file SMESHGUI_MultiEditDlg.cxx.

References SMESHGUI_MultiEditDlg.myListBox, and SMESHGUI_MultiEditDlg.onRemoveBtn().

{
  if (object == myListBox && event->type() == QEvent::KeyPress) {
    QKeyEvent* ke = (QKeyEvent*)event;
    if (ke->key() == Qt::Key_Delete)
      onRemoveBtn();
  }
  return QDialog::eventFilter(object, event);
}
SMESH::long_array_var SMESHGUI_MultiEditDlg::getIds ( SMESH::SMESH_IDSource_var &  obj) [protected, inherited]

Definition at line 432 of file SMESHGUI_MultiEditDlg.cxx.

References SMESH_BelongToGeom.anIds, SMESHGUI_MultiEditDlg.myIds, SMESHGUI_MultiEditDlg.myMesh, and SMESHGUI_MultiEditDlg.myToAllChk.

Referenced by SMESHGUI_CuttingOfQuadsDlg.displayPreview(), and SMESHGUI_MultiEditDlg.onApply().

{
  SMESH::long_array_var anIds = new SMESH::long_array;

  if (myToAllChk->isChecked())
  {
    myIds.Clear();
    obj = SMESH::SMESH_IDSource::_narrow( myMesh );
//     SMESH_Actor * anActor = SMESH::FindActorByObject(myMesh);
//     if (!anActor)
//       anActor = myActor;
//     if (anActor != 0)
//     {
//       // skl 07.02.2006
//       SMDS_Mesh* aMesh = myActor->GetObject()->GetMesh();
//       if( myFilterType == SMESH::TriaFilter || 
//           myFilterType == SMESH::QuadFilter ||
//           myFilterType == SMESH::FaceFilter ) {
//         SMDS_FaceIteratorPtr it = aMesh->facesIterator();
//         while(it->more()) {
//           const SMDS_MeshFace* f = it->next();
//           if(myFilterType == SMESH::FaceFilter) {
//             myIds.Add(f->GetID());
//           }
//           else if( myFilterType==SMESH::TriaFilter &&
//                    ( f->NbNodes()==3 || f->NbNodes()==6 ) ) {
//             myIds.Add(f->GetID());
//           }
//           else if( myFilterType==SMESH::QuadFilter &&
//                    ( f->NbNodes()==4 || f->NbNodes()==8 ) ) {
//             myIds.Add(f->GetID());
//           }
//         }
//       }
//       else if(myFilterType == SMESH::VolumeFilter) {
//         SMDS_VolumeIteratorPtr it = aMesh->volumesIterator();
//         while(it->more()) {
//           const SMDS_MeshVolume* f = it->next();
//           myIds.Add(f->GetID());
//         }
//       }
      /* commented by skl 07.02.2006 - to work with quadratic elements
      TVisualObjPtr aVisualObj = anActor->GetObject();
      vtkUnstructuredGrid* aGrid = aVisualObj->GetUnstructuredGrid();
      if (aGrid != 0) {
        for (int i = 0, n = aGrid->GetNumberOfCells(); i < n; i++) {
          vtkCell* aCell = aGrid->GetCell(i);
          if (aCell != 0) {
            vtkTriangle* aTri = vtkTriangle::SafeDownCast(aCell);
            vtkQuad*     aQua = vtkQuad::SafeDownCast(aCell);
            vtkPolygon*  aPG  = vtkPolygon::SafeDownCast(aCell);

            vtkCell3D*   a3d  = vtkCell3D::SafeDownCast(aCell);
            vtkConvexPointSet* aPH = vtkConvexPointSet::SafeDownCast(aCell);

            if (aTri && myFilterType == SMESHGUI_TriaFilter ||
                aQua && myFilterType == SMESHGUI_QuadFilter ||
                (aTri || aQua || aPG) && myFilterType == SMESHGUI_FaceFilter ||
                (a3d || aPH) && myFilterType == SMESHGUI_VolumeFilter) {
              int anObjId = aVisualObj->GetElemObjId(i);
              myIds.Add(anObjId);
            }
          }
        }
      }
      */
    //}
  }

  anIds->length(myIds.Extent());
  TColStd_MapIteratorOfMapOfInteger anIter(myIds);
  for (int i = 0; anIter.More(); anIter.Next() )
  {
    anIds[ i++ ] = anIter.Key();
  }
  return anIds._retn();
}
SMESH::NumericalFunctor_ptr SMESHGUI_MultiEditDlg::getNumericalFunctor ( ) [protected, slot, inherited]

Definition at line 341 of file SMESHGUI_MultiEditDlg.cxx.

References SMESH.GetFilterManager(), and SMESHGUI_MultiEditDlg.myComboBoxFunctor.

Referenced by SMESHGUI_CuttingOfQuadsDlg.displayPreview(), SMESHGUI_CuttingOfQuadsDlg.process(), and SMESHGUI_UnionOfTrianglesDlg.process().

{
  SMESH::NumericalFunctor_var aNF = SMESH::NumericalFunctor::_nil();

  SMESH::FilterManager_var aFilterMgr = SMESH::GetFilterManager();
  if (aFilterMgr->_is_nil())
    return aNF._retn();

  if (myComboBoxFunctor->currentText() == tr("ASPECTRATIO_ELEMENTS"))
    aNF = aFilterMgr->CreateAspectRatio();
  else if (myComboBoxFunctor->currentText() == tr("WARP_ELEMENTS"))
    aNF = aFilterMgr->CreateWarping();
  else if (myComboBoxFunctor->currentText() == tr("MINIMUMANGLE_ELEMENTS"))
    aNF = aFilterMgr->CreateMinimumAngle();
  else if (myComboBoxFunctor->currentText() == tr("TAPER_ELEMENTS"))
    aNF = aFilterMgr->CreateTaper();
  else if (myComboBoxFunctor->currentText() == tr("SKEW_ELEMENTS"))
    aNF = aFilterMgr->CreateSkew();
  else if (myComboBoxFunctor->currentText() == tr("AREA_ELEMENTS"))
    aNF = aFilterMgr->CreateArea();
  else if (myComboBoxFunctor->currentText() == tr("LENGTH2D_EDGES"))
    aNF = aFilterMgr->CreateLength2D();
  else if (myComboBoxFunctor->currentText() == tr("MULTI2D_BORDERS"))
    aNF = aFilterMgr->CreateMultiConnection2D();
  else;

  return aNF._retn();
}
void SMESHGUI_MultiEditDlg::hideEvent ( QHideEvent *  ) [protected, inherited]

Definition at line 659 of file SMESHGUI_MultiEditDlg.cxx.

References SMESHGUI_MultiEditDlg.onClose().

{
  if (!isMinimized())
    onClose();
}
void SMESHGUI_MultiEditDlg::Init ( ) [inherited]

Definition at line 374 of file SMESHGUI_MultiEditDlg.cxx.

References SMESHGUI_MultiEditDlg.ListContensChanged(), SMESHGUI_MultiEditDlg.myActor, SMESHGUI_MultiEditDlg.myAddBtn, SMESHGUI_MultiEditDlg.myApplyBtn, SMESHGUI_MultiEditDlg.myBusy, SMESHGUI_MultiEditDlg.myCloseBtn, SMESHGUI_MultiEditDlg.myEntityTypeGrp, SMESHGUI_MultiEditDlg.myFilterBtn, SMESHGUI_MultiEditDlg.myGroupChk, SMESHGUI_MultiEditDlg.myHelpBtn, SMESHGUI_MultiEditDlg.myIds, SMESHGUI_MultiEditDlg.myListBox, SMESHGUI_MultiEditDlg.myOkBtn, SMESHGUI_MultiEditDlg.myRemoveBtn, SMESHGUI_MultiEditDlg.mySelectionMgr, SMESHGUI_MultiEditDlg.mySMESHGUI, SMESHGUI_MultiEditDlg.mySortBtn, SMESHGUI_MultiEditDlg.mySubmeshChk, SMESHGUI_MultiEditDlg.myToAllChk, SMESHGUI_MultiEditDlg.on3d2dChanged(), SMESHGUI_MultiEditDlg.onAddBtn(), SMESHGUI_MultiEditDlg.onApply(), SMESHGUI_MultiEditDlg.onClose(), SMESHGUI_MultiEditDlg.onDeactivate(), SMESHGUI_MultiEditDlg.onFilterBtn(), SMESHGUI_MultiEditDlg.onGroupChk(), SMESHGUI_MultiEditDlg.onHelp(), SMESHGUI_MultiEditDlg.onListSelectionChanged(), SMESHGUI_MultiEditDlg.onOk(), SMESHGUI_MultiEditDlg.onRemoveBtn(), SMESHGUI_MultiEditDlg.onSelectionDone(), SMESHGUI_MultiEditDlg.onSortListBtn(), SMESHGUI_MultiEditDlg.onSubmeshChk(), SMESHGUI_MultiEditDlg.onToAllChk(), SMESHGUI.SetActiveDialogBox(), SMESHGUI_MultiEditDlg.setSelectionMode(), and SMESHGUI_MultiEditDlg.updateButtons().

{
  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
  myListBox->clear();
  myIds.Clear();
  myBusy = false;
  myActor = 0;
  emit ListContensChanged();

  // main buttons
  connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));
  connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
  connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
  connect(myHelpBtn,  SIGNAL(clicked()), SLOT(onHelp()));

  // selection and SMESHGUI
  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
  connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
  connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));

  // dialog controls
  connect(myFilterBtn, SIGNAL(clicked()), SLOT(onFilterBtn()  ));
  connect(myAddBtn,    SIGNAL(clicked()), SLOT(onAddBtn()     ));
  connect(myRemoveBtn, SIGNAL(clicked()), SLOT(onRemoveBtn()  ));
  connect(mySortBtn,   SIGNAL(clicked()), SLOT(onSortListBtn()));

  connect(mySubmeshChk, SIGNAL(stateChanged(int)), SLOT(onSubmeshChk()));
  connect(myGroupChk,   SIGNAL(stateChanged(int)), SLOT(onGroupChk()  ));
  connect(myToAllChk,   SIGNAL(stateChanged(int)), SLOT(onToAllChk()  ));

  if (myEntityTypeGrp)
    connect(myEntityTypeGrp, SIGNAL(buttonClicked(int)), SLOT(on3d2dChanged(int)));

  connect(myListBox, SIGNAL(itemSelectionChanged()), SLOT(onListSelectionChanged()));

  onSelectionDone();

  // set selection mode
  setSelectionMode();
  updateButtons();
}
bool SMESHGUI_MultiEditDlg::isIdValid ( const int  theId) const [protected, virtual, inherited]

Definition at line 714 of file SMESHGUI_MultiEditDlg.cxx.

References SMESH.DownCast(), SMESH.GetSelector(), Handle(), and SMESHGUI_MultiEditDlg.myFilterType.

Referenced by SMESHGUI_MultiEditDlg.onAddBtn().

{
  SVTK_Selector* aSelector = SMESH::GetSelector();
  Handle(SMESHGUI_Filter) aFilter =
    Handle(SMESHGUI_Filter)::DownCast(aSelector->GetFilter(myFilterType));

  return (!aFilter.IsNull() && aFilter->IsObjValid(theId));
}
bool SMESHGUI_MultiEditDlg::isValid ( const bool  ) [protected, virtual, inherited]

Reimplemented in SMESHGUI_UnionOfTrianglesDlg.

Definition at line 304 of file SMESHGUI_MultiEditDlg.cxx.

References SMESHGUI_MultiEditDlg.myListBox, SMESHGUI_MultiEditDlg.myMesh, and SMESHGUI_MultiEditDlg.myToAllChk.

Referenced by SMESHGUI_MultiEditDlg.onApply(), and SMESHGUI_MultiEditDlg.updateButtons().

{
  return (!myMesh->_is_nil() &&
          (myListBox->count() > 0 || (myToAllChk->isChecked()/* && myActor*/)));
}
void SMESHGUI_MultiEditDlg::keyPressEvent ( QKeyEvent *  e) [protected, inherited]

Definition at line 1106 of file SMESHGUI_MultiEditDlg.cxx.

References SMESHGUI_MultiEditDlg.onHelp().

{
  QDialog::keyPressEvent( e );
  if ( e->isAccepted() )
    return;

  if ( e->key() == Qt::Key_F1 ) {
    e->accept();
    onHelp();
  }
}
void SMESHGUI_MultiEditDlg.ListContensChanged ( ) [signal, inherited]
void SMESHGUI_MultiEditDlg::on3d2dChanged ( int  type) [protected, slot, inherited]
void SMESHGUI_MultiEditDlg::onAddBtn ( ) [protected, slot, inherited]

Definition at line 728 of file SMESHGUI_MultiEditDlg.cxx.

References SMESH_controls.aGroup, SMESH_BelongToGeom.anIds, SMESHGUI_MultiEditDlg.entityType(), SMESH.FACE, SMESHGUI_MultiEditDlg.isIdValid(), SMESHGUI_MultiEditDlg.ListContensChanged(), SMESHGUI_MultiEditDlg.myBusy, SMESHGUI_MultiEditDlg.myGroupChk, SMESHGUI_MultiEditDlg.myIds, SMESHGUI_MultiEditDlg.myListBox, SMESHGUI_MultiEditDlg.myMesh, SMESHGUI_MultiEditDlg.mySelector, SMESHGUI_MultiEditDlg.mySubmeshChk, SMESHGUI_MultiEditDlg.onListSelectionChanged(), SMESHGUI_MultiEditDlg.updateButtons(), and SMESH.VOLUME.

Referenced by SMESHGUI_MultiEditDlg.Init().

{
  const SALOME_ListIO& aList = mySelector->StoredIObjects();

  int nbSelected = aList.Extent();
  if (nbSelected == 0)
    return;

  TColStd_IndexedMapOfInteger toBeAdded;

  if (!mySubmeshChk->isChecked() && !myGroupChk->isChecked()) {
    if (nbSelected > 0)
      mySelector->GetIndex(aList.First(),toBeAdded);
  } else if (mySubmeshChk->isChecked()) {
    SALOME_ListIteratorOfListIO anIter(aList);
    for ( ; anIter.More(); anIter.Next()) {
      SMESH::SMESH_subMesh_var aSubMesh =
        SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(anIter.Value());
      if (!aSubMesh->_is_nil()) {
        if (aSubMesh->GetFather()->GetId() == myMesh->GetId()) {
          SMESH::long_array_var anIds = aSubMesh->GetElementsId();
          for (int i = 0, n = anIds->length(); i < n; i++) {
            if (isIdValid(anIds[ i ]))
              toBeAdded.Add(anIds[ i ]);
          }
        }
      }
    }
  } else if (myGroupChk->isChecked()) {
    SALOME_ListIteratorOfListIO anIter(aList);
    for ( ; anIter.More(); anIter.Next()) {
      SMESH::SMESH_GroupBase_var aGroup =
        SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(anIter.Value());
      if (!aGroup->_is_nil() && ((aGroup->GetType() == SMESH::FACE && entityType() == 0) || 
                                 (aGroup->GetType() == SMESH::VOLUME && entityType() == 1))) {
        if (aGroup->GetMesh()->GetId() == myMesh->GetId()) {
          SMESH::long_array_var anIds = aGroup->GetListOfID();
          for (int i = 0, n = anIds->length(); i < n; i++) {
            if (isIdValid(anIds[ i ]))
              toBeAdded.Add(anIds[ i ]);
          }
        }
      }
    }
  } else {
  }

  myBusy = true;
  bool isGroupOrSubmesh = (mySubmeshChk->isChecked() || myGroupChk->isChecked());
  mySubmeshChk->setChecked(false);
  myGroupChk->setChecked(false);
  QStringList items;
  for(int i = 1; i <= toBeAdded.Extent(); i++)
    if (myIds.Add(toBeAdded(i))) {
      items.append(QString("%1").arg(toBeAdded(i)));
    }
  myListBox->addItems(items);
  myListBox->selectAll();
  myBusy = false;

  emit ListContensChanged();

  if (isGroupOrSubmesh)
    onListSelectionChanged();

  updateButtons();
}
bool SMESHGUI_MultiEditDlg::onApply ( ) [protected, virtual, slot, inherited]

Definition at line 1029 of file SMESHGUI_MultiEditDlg.cxx.

References SMESH_BelongToGeom.anIds, SMESHGUI_MultiEditDlg.getIds(), SMESHGUI.isActiveStudyLocked(), SMESHGUI_MultiEditDlg.isValid(), SMESHGUI_MultiEditDlg.ListContensChanged(), SMESHGUI.Modified(), SMESHGUI_MultiEditDlg.myActor, SMESHGUI_MultiEditDlg.myBusy, SMESHGUI_MultiEditDlg.myIds, SMESHGUI_MultiEditDlg.myListBox, SMESHGUI_MultiEditDlg.myMesh, SMESHGUI_MultiEditDlg.mySelectionMgr, SMESHGUI_MultiEditDlg.mySelector, SMESHGUI_MultiEditDlg.mySMESHGUI, SMESHGUI_MultiEditDlg.process(), SMESHGUI_MultiEditDlg.updateButtons(), and SMESH.UpdateView().

Referenced by SMESHGUI_MultiEditDlg.Init(), and SMESHGUI_MultiEditDlg.onOk().

{
  if (mySMESHGUI->isActiveStudyLocked())
    return false;
  if (!isValid(true))
    return false;

  SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
  if (aMeshEditor->_is_nil())
    return false;

  myBusy = true;

  SUIT_OverrideCursor aWaitCursor;

  SMESH::SMESH_IDSource_var obj;
  SMESH::long_array_var anIds = getIds(obj);

  bool aResult = process(aMeshEditor, anIds.inout(), obj);
  if (aResult) {
    if (myActor) {
      SALOME_ListIO sel;
      mySelectionMgr->selectedObjects( sel );
      mySelector->ClearIndex();
      mySelectionMgr->setSelectedObjects( sel );
      SMESH::UpdateView();
      SMESHGUI::Modified();
    }

    myListBox->clear();
    myIds.Clear();
    emit ListContensChanged();

    updateButtons();
  }

  myBusy = false;
  return aResult;
}
void SMESHGUI_MultiEditDlg::onClose ( ) [protected, virtual, slot, inherited]

Reimplemented in SMESHGUI_CuttingOfQuadsDlg.

Definition at line 514 of file SMESHGUI_MultiEditDlg.cxx.

References SMESH.GetViewWindow(), SMESHGUI_MultiEditDlg.mySelectionMgr, SMESHGUI_MultiEditDlg.mySMESHGUI, SMESH.RemoveFilters(), SMESHGUI.ResetState(), and SMESH.SetPickable().

Referenced by SMESHGUI_MultiEditDlg.closeEvent(), SMESHGUI_MultiEditDlg.hideEvent(), SMESHGUI_MultiEditDlg.Init(), and SMESHGUI_MultiEditDlg.onOk().

{
  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
    aViewWindow->SetSelectionMode(ActorSelection);
  disconnect(mySelectionMgr, 0, this, 0);
  disconnect(mySMESHGUI, 0, this, 0);
  mySMESHGUI->ResetState();

  SMESH::RemoveFilters();
  SMESH::SetPickable();

  //mySelectionMgr->clearSelected();
  mySelectionMgr->clearFilters();

  reject();
}
void SMESHGUI_MultiEditDlg::onDeactivate ( ) [protected, slot, inherited]

Definition at line 629 of file SMESHGUI_MultiEditDlg.cxx.

Referenced by SMESHGUI_MultiEditDlg.Init().

{
  setEnabled(false);
}
void SMESHGUI_MultiEditDlg::onFilterAccepted ( ) [protected, slot, inherited]

Definition at line 691 of file SMESHGUI_MultiEditDlg.cxx.

References SMESHGUI_MultiEditDlg.ListContensChanged(), SMESHGUI_MultiEditDlg.myGroupChk, SMESHGUI_MultiEditDlg.myIds, SMESHGUI_MultiEditDlg.myListBox, SMESHGUI_MultiEditDlg.mySubmeshChk, and SMESHGUI_MultiEditDlg.updateButtons().

Referenced by SMESHGUI_MultiEditDlg.onFilterBtn().

{
  myIds.Clear();
  for (int i = 0, n = myListBox->count(); i < n; i++)
    myIds.Add(myListBox->item(i)->text().toInt());

  emit ListContensChanged();

  if (mySubmeshChk->isChecked() || myGroupChk->isChecked()) {
    mySubmeshChk->blockSignals(true);
    myGroupChk->blockSignals(true);
    mySubmeshChk->setChecked(false);
    myGroupChk->setChecked(false);
    mySubmeshChk->blockSignals(false);
    myGroupChk->blockSignals(false);
  }
  updateButtons();
}
void SMESHGUI_MultiEditDlg::onFilterBtn ( ) [protected, slot, inherited]
void SMESHGUI_MultiEditDlg::onGroupChk ( ) [protected, slot, inherited]

Definition at line 954 of file SMESHGUI_MultiEditDlg.cxx.

References SMESHGUI_MultiEditDlg.myGroup, SMESHGUI_MultiEditDlg.myGroupBtn, SMESHGUI_MultiEditDlg.myGroupChk, SMESHGUI_MultiEditDlg.mySubmeshChk, and SMESHGUI_MultiEditDlg.setSelectionMode().

Referenced by SMESHGUI_MultiEditDlg.Init().

{
  bool isChecked = myGroupChk->isChecked();
  myGroupBtn->setEnabled(isChecked);
  myGroup->setEnabled(isChecked);
  if (!isChecked)
    myGroup->clear();
  if (isChecked && mySubmeshChk->isChecked())
      mySubmeshChk->setChecked(false);

  setSelectionMode();
}
void SMESHGUI_MultiEditDlg::onHelp ( ) [protected, slot, inherited]

Definition at line 535 of file SMESHGUI_MultiEditDlg.cxx.

References SMESHGUI_MultiEditDlg.myHelpFileName, and SMESHGUI_MultiEditDlg.mySMESHGUI.

Referenced by SMESHGUI_MultiEditDlg.Init(), and SMESHGUI_MultiEditDlg.keyPressEvent().

{
  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
  if (app) 
    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
  else {
    QString platform;
#ifdef WIN32
    platform = "winapplication";
#else
    platform = "application";
#endif
    SUIT_MessageBox::warning(this, tr("WRN_WARNING"),
                             tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
                             arg(app->resourceMgr()->stringValue("ExternalBrowser", 
                                                                 platform)).
                             arg(myHelpFileName));
  }
}
void SMESHGUI_MultiEditDlg::onListSelectionChanged ( ) [protected, slot, inherited]

Definition at line 901 of file SMESHGUI_MultiEditDlg.cxx.

References SMESH.FindActorByObject(), SMESH_Actor.GetObject(), SMESH.GetViewWindow(), SMESHGUI_MultiEditDlg.myActor, SMESHGUI_MultiEditDlg.myBusy, SMESHGUI_MultiEditDlg.myGroupChk, SMESHGUI_MultiEditDlg.myListBox, SMESHGUI_MultiEditDlg.myMesh, SMESHGUI_MultiEditDlg.mySelector, SMESHGUI_MultiEditDlg.mySMESHGUI, and SMESHGUI_MultiEditDlg.mySubmeshChk.

Referenced by SMESHGUI_MultiEditDlg.Init(), and SMESHGUI_MultiEditDlg.onAddBtn().

{
  if (myActor == 0 || myBusy)
    return;

  if (mySubmeshChk->isChecked() || myGroupChk->isChecked())
    return;

  SMESH_Actor * anActor = SMESH::FindActorByObject(myMesh);
  if (!anActor)
    anActor = myActor;
  TVisualObjPtr anObj = anActor->GetObject();

  TColStd_MapOfInteger anIndexes;
  int total = myListBox->count();
  for (int i = 0; i < total; i++)
  {
    if (myListBox->item(i)->isSelected())
    {
      int anId = myListBox->item(i)->text().toInt();
      if (anObj->GetElemVTKId(anId) >= 0) // avoid exception in hilight
        anIndexes.Add(anId);
    }
  }

  mySelector->AddOrRemoveIndex(anActor->getIO(),anIndexes,false);
  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
    aViewWindow->highlight(anActor->getIO(),true,true);
}
void SMESHGUI_MultiEditDlg::onOk ( ) [protected, slot, inherited]
void SMESHGUI_MultiEditDlg::onRemoveBtn ( ) [protected, slot, inherited]

Definition at line 844 of file SMESHGUI_MultiEditDlg.cxx.

References SMESHGUI_MultiEditDlg.ListContensChanged(), SMESHGUI_MultiEditDlg.myBusy, SMESHGUI_MultiEditDlg.myIds, SMESHGUI_MultiEditDlg.myListBox, and SMESHGUI_MultiEditDlg.updateButtons().

Referenced by SMESHGUI_MultiEditDlg.eventFilter(), and SMESHGUI_MultiEditDlg.Init().

{
  myBusy = true;

  QList<QListWidgetItem*> selItems = myListBox->selectedItems();
  QListWidgetItem* item;
  foreach(item, selItems)
  {
    myIds.Remove(item->text().toInt());
    delete item;
  }

  myBusy = false;

  emit ListContensChanged();
  updateButtons();
}
void SMESHGUI_MultiEditDlg::onSelectionDone ( ) [protected, slot, inherited]

Definition at line 559 of file SMESHGUI_MultiEditDlg.cxx.

References SMESH_controls.aGroup, SMESH.FindActorByEntry(), SMESH.FindActorByObject(), SMESH.GetMeshByIO(), SMESH.GetNameOfSelectedElements(), SMESH.GetNameOfSelectedIObjects(), SMESH.GetSelector(), Handle(), SMESHGUI_MultiEditDlg.myActor, SMESHGUI_MultiEditDlg.myBusy, SMESHGUI_MultiEditDlg.myFilterType, SMESHGUI_MultiEditDlg.myGroup, SMESHGUI_MultiEditDlg.myGroupChk, SMESHGUI_MultiEditDlg.myListBox, SMESHGUI_MultiEditDlg.myMesh, SMESHGUI_MultiEditDlg.mySelectionMgr, SMESHGUI_MultiEditDlg.mySelector, SMESHGUI_MultiEditDlg.mySubmesh, SMESHGUI_MultiEditDlg.mySubmeshChk, and SMESHGUI_MultiEditDlg.updateButtons().

Referenced by SMESHGUI_MultiEditDlg.Init().

{
  if (myBusy || !isEnabled()) return;
  myBusy = true;

  const SALOME_ListIO& aList = mySelector->StoredIObjects();

  int nbSel = aList.Extent();
  myListBox->clearSelection();

  if (mySubmeshChk->isChecked() || myGroupChk->isChecked()) {
    QLineEdit* aNameEdit = mySubmeshChk->isChecked() ? mySubmesh : myGroup;
    if (nbSel == 1) {
      Handle(SALOME_InteractiveObject) anIO = aList.First();
      QString aName = "";
      SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aName);
      anIO.IsNull() ? aNameEdit->clear() : aNameEdit->setText(aName);

      if (mySubmeshChk->isChecked()) {
        SMESH::SMESH_subMesh_var aSubMesh =
          SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(anIO);
        if (!aSubMesh->_is_nil())
          myMesh = aSubMesh->GetFather();
      } else {
        SMESH::SMESH_GroupBase_var aGroup =
          SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(anIO);
        if (!aGroup->_is_nil())
          myMesh = aGroup->GetMesh();
      }
    } else if (nbSel > 1) {
      QString aStr = mySubmeshChk->isChecked() ?
        tr("SMESH_SUBMESH_SELECTED") : tr("SMESH_GROUP_SELECTED");
      aNameEdit->setText(aStr.arg(nbSel));
    } else {
      aNameEdit->clear();
    }
  } else if (nbSel > 0) {
    QString aListStr = "";
    Handle(SALOME_InteractiveObject) anIO = aList.First();
    int aNbItems = SMESH::GetNameOfSelectedElements(mySelector,anIO,aListStr);
    if (aNbItems > 0) {
      QStringList anElements = aListStr.split(" ", QString::SkipEmptyParts);
      for (QStringList::iterator it = anElements.begin(); it != anElements.end(); ++it) {
        QList<QListWidgetItem*> items = myListBox->findItems(*it, Qt::MatchExactly);
        QListWidgetItem* anItem;
        foreach(anItem, items)
          anItem->setSelected(true);
      }
    }
    myMesh = SMESH::GetMeshByIO(anIO);
  }

  if (nbSel > 0) {
    myActor = SMESH::FindActorByEntry(aList.First()->getEntry());
    if (!myActor)
      myActor = SMESH::FindActorByObject(myMesh);
    SVTK_Selector* aSelector = SMESH::GetSelector();
    Handle(VTKViewer_Filter) aFilter = aSelector->GetFilter(myFilterType);
    if (!aFilter.IsNull())
      aFilter->SetActor(myActor);
  }
  myBusy = false;

  updateButtons();
}
void SMESHGUI_MultiEditDlg::onSortListBtn ( ) [protected, slot, inherited]

Definition at line 867 of file SMESHGUI_MultiEditDlg.cxx.

References SMESHGUI_MultiEditDlg.myBusy, and SMESHGUI_MultiEditDlg.myListBox.

Referenced by SMESHGUI_MultiEditDlg.Init().

{
  myBusy = true;

  int i, k = myListBox->count();
  if (k > 0)
  {
    QList<int> aSelected;
    std::vector<int> anArray(k);
    for (i = 0; i < k; i++)
    {
      int id = myListBox->item(i)->text().toInt();
      anArray[ i ] = id;
      if (myListBox->item(i)->isSelected())
        aSelected.append(id);
    }

    std::sort(anArray.begin(), anArray.end());

    myListBox->clear();
    for (i = 0; i < k; i++) {
      QListWidgetItem* item = new QListWidgetItem(QString::number(anArray[i]));
      myListBox->addItem(item);
      item->setSelected(aSelected.contains(anArray[i]));
    }
  }
  myBusy = false;
}
void SMESHGUI_MultiEditDlg::onSubmeshChk ( ) [protected, slot, inherited]

Definition at line 936 of file SMESHGUI_MultiEditDlg.cxx.

References SMESHGUI_MultiEditDlg.myGroupChk, SMESHGUI_MultiEditDlg.mySubmesh, SMESHGUI_MultiEditDlg.mySubmeshBtn, SMESHGUI_MultiEditDlg.mySubmeshChk, and SMESHGUI_MultiEditDlg.setSelectionMode().

Referenced by SMESHGUI_MultiEditDlg.Init().

{
  bool isChecked = mySubmeshChk->isChecked();
  mySubmeshBtn->setEnabled(isChecked);
  mySubmesh->setEnabled(isChecked);
  if (!isChecked)
    mySubmesh->clear();
  if (isChecked && myGroupChk->isChecked())
      myGroupChk->setChecked(false);

  setSelectionMode();
}
void SMESHGUI_MultiEditDlg::onToAllChk ( ) [protected, virtual, slot, inherited]
bool SMESHGUI_CuttingIntoTetraDlg::process ( SMESH::SMESH_MeshEditor_ptr  theEditor,
const SMESH::long_array theIds,
SMESH::SMESH_IDSource_ptr  obj 
) [protected, virtual]

Implements SMESHGUI_MultiEditDlg.

Definition at line 1509 of file SMESHGUI_MultiEditDlg.cxx.

References SMESH.FACE, SMESHGUI_MultiEditDlg.myEntityType, SMESHGUI_MultiEditDlg.myGroupChoice, and SMESH.VOLUME.

{
  SMESH::SMESH_IDSource_var obj = theObj;
  if ( CORBA::is_nil( obj ))
    obj = theEditor->MakeIDSource( theIds, myEntityType ? SMESH::VOLUME : SMESH::FACE );
  try {
    theEditor->SplitVolumesIntoTetra( obj, myGroupChoice->checkedId()+1 );
  }
  catch ( const SALOME::SALOME_Exception& S_ex ) {
    SalomeApp_Tools::QtCatchCorbaException( S_ex );
    return false;
  }
  return true;
}
void SMESHGUI_MultiEditDlg::setSelectionMode ( ) [protected, inherited]

Definition at line 991 of file SMESHGUI_MultiEditDlg.cxx.

References SMESHGUI_MultiEditDlg.entityType(), SMESH.GetViewWindow(), GROUP, SMESHGUI_MultiEditDlg.myFilterType, SMESHGUI_MultiEditDlg.myGroupChk, SMESHGUI_MultiEditDlg.mySelectionMgr, SMESHGUI_MultiEditDlg.mySMESHGUI, SMESHGUI_MultiEditDlg.mySubmeshChk, SMESH.QuadFilter, SMESH.RemoveFilters(), SMESH.SetFilter(), SUBMESH, and SMESH.TriaFilter.

Referenced by SMESHGUI_MultiEditDlg.enterEvent(), SMESHGUI_MultiEditDlg.Init(), SMESHGUI_MultiEditDlg.on3d2dChanged(), SMESHGUI_MultiEditDlg.onGroupChk(), SMESHGUI_MultiEditDlg.onSubmeshChk(), SMESHGUI_MultiEditDlg.onToAllChk(), and SMESHGUI_CuttingIntoTetraDlg().

{
  SMESH::RemoveFilters();

  mySelectionMgr->clearSelected();
  mySelectionMgr->clearFilters();

  if (mySubmeshChk->isChecked()) {
    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
      aViewWindow->SetSelectionMode(ActorSelection);
    mySelectionMgr->installFilter(new SMESH_TypeFilter(SUBMESH));
  }
  else if (myGroupChk->isChecked()) {
    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
      aViewWindow->SetSelectionMode(ActorSelection);
    mySelectionMgr->installFilter(new SMESH_TypeFilter(GROUP));
  }

  if (entityType()) {
    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
      aViewWindow->SetSelectionMode(VolumeSelection);
    SMESH::SetFilter(new SMESHGUI_VolumesFilter());
  } else {
    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
      aViewWindow->SetSelectionMode(FaceSelection);
    if (myFilterType == SMESH::TriaFilter)
      SMESH::SetFilter(new SMESHGUI_TriangleFilter());
    else if (myFilterType == SMESH::QuadFilter)
      SMESH::SetFilter(new SMESHGUI_QuadrangleFilter());
    else
      SMESH::SetFilter(new SMESHGUI_FacesFilter());
  }
}
void SMESHGUI_MultiEditDlg::updateButtons ( ) [protected, inherited]

Definition at line 800 of file SMESHGUI_MultiEditDlg.cxx.

References SMESHGUI_MultiEditDlg.isValid(), SMESHGUI_MultiEditDlg.myAddBtn, SMESHGUI_MultiEditDlg.myApplyBtn, SMESHGUI_MultiEditDlg.myFilterBtn, SMESHGUI_MultiEditDlg.myGroup, SMESHGUI_MultiEditDlg.myGroupBtn, SMESHGUI_MultiEditDlg.myGroupChk, SMESHGUI_MultiEditDlg.myListBox, SMESHGUI_MultiEditDlg.myMesh, SMESHGUI_MultiEditDlg.myOkBtn, SMESHGUI_MultiEditDlg.myRemoveBtn, SMESHGUI_MultiEditDlg.mySelector, SMESHGUI_MultiEditDlg.mySortBtn, SMESHGUI_MultiEditDlg.mySubmesh, SMESHGUI_MultiEditDlg.mySubmeshBtn, SMESHGUI_MultiEditDlg.mySubmeshChk, and SMESHGUI_MultiEditDlg.myToAllChk.

Referenced by SMESHGUI_MultiEditDlg.Init(), SMESHGUI_MultiEditDlg.on3d2dChanged(), SMESHGUI_MultiEditDlg.onAddBtn(), SMESHGUI_MultiEditDlg.onApply(), SMESHGUI_MultiEditDlg.onFilterAccepted(), SMESHGUI_MultiEditDlg.onRemoveBtn(), SMESHGUI_MultiEditDlg.onSelectionDone(), SMESHGUI_MultiEditDlg.onToAllChk(), and SMESHGUI_CuttingIntoTetraDlg().

{
  bool isOk = isValid(false);
  myOkBtn->setEnabled(isOk);
  myApplyBtn->setEnabled(isOk);

  bool isListBoxNonEmpty = myListBox->count() > 0;
  bool isToAll = myToAllChk->isChecked();
  myFilterBtn->setEnabled(!isToAll);
  myRemoveBtn->setEnabled(isListBoxNonEmpty && !isToAll);
  mySortBtn->setEnabled(isListBoxNonEmpty &&!isToAll);

  const SALOME_ListIO& aList = mySelector->StoredIObjects();

  if (isToAll ||
      myMesh->_is_nil() ||
      aList.Extent() < 1 ||
      (SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(aList.First())->_is_nil() &&
       SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(aList.First())->_is_nil() &&
       SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(aList.First())->_is_nil()))
    myAddBtn->setEnabled(false);
  else
    myAddBtn->setEnabled(true);

  mySubmeshChk->setEnabled(!isToAll);
  mySubmeshBtn->setEnabled(mySubmeshChk->isChecked());
  mySubmesh->setEnabled(mySubmeshChk->isChecked());

  myGroupChk->setEnabled(!isToAll);
  myGroupBtn->setEnabled(myGroupChk->isChecked());
  myGroup->setEnabled(myGroupChk->isChecked());

  if (!mySubmeshChk->isChecked())
    mySubmesh->clear();
  if (!myGroupChk->isChecked())
    myGroup->clear();

}

Field Documentation

SMESH_Actor* SMESHGUI_MultiEditDlg.myActor [protected, inherited]
QPushButton* SMESHGUI_MultiEditDlg.myAddBtn [protected, inherited]
QPushButton* SMESHGUI_MultiEditDlg.myApplyBtn [protected, inherited]
bool SMESHGUI_MultiEditDlg.myBusy [protected, inherited]
QPushButton* SMESHGUI_MultiEditDlg.myCloseBtn [protected, inherited]
QComboBox* SMESHGUI_MultiEditDlg.myComboBoxFunctor [protected, inherited]
int SMESHGUI_MultiEditDlg.myEntityType [protected, inherited]
QButtonGroup* SMESHGUI_MultiEditDlg.myEntityTypeGrp [protected, inherited]
QPushButton* SMESHGUI_MultiEditDlg.myFilterBtn [protected, inherited]
int SMESHGUI_MultiEditDlg.myFilterType [protected, inherited]
QLineEdit* SMESHGUI_MultiEditDlg.myGroup [protected, inherited]
QPushButton* SMESHGUI_MultiEditDlg.myGroupBtn [protected, inherited]
QCheckBox* SMESHGUI_MultiEditDlg.myGroupChk [protected, inherited]
QButtonGroup* SMESHGUI_MultiEditDlg.myGroupChoice [protected, inherited]
QPushButton* SMESHGUI_MultiEditDlg.myHelpBtn [protected, inherited]
QString SMESHGUI_MultiEditDlg.myHelpFileName [protected, inherited]
TColStd_MapOfInteger SMESHGUI_MultiEditDlg.myIds [protected, inherited]
QListWidget* SMESHGUI_MultiEditDlg.myListBox [protected, inherited]
SMESH::SMESH_Mesh_var SMESHGUI_MultiEditDlg.myMesh [protected, inherited]
QPushButton* SMESHGUI_MultiEditDlg.myOkBtn [protected, inherited]
QPushButton* SMESHGUI_MultiEditDlg.myRemoveBtn [protected, inherited]
LightApp_SelectionMgr* SMESHGUI_MultiEditDlg.mySelectionMgr [protected, inherited]
SVTK_Selector* SMESHGUI_MultiEditDlg.mySelector [protected, inherited]
QGroupBox* SMESHGUI_MultiEditDlg.mySelGrp [protected, inherited]

Definition at line 133 of file SMESHGUI_MultiEditDlg.h.

Referenced by SMESHGUI_MultiEditDlg.createMainFrame().

SMESHGUI* SMESHGUI_MultiEditDlg.mySMESHGUI [protected, inherited]
QPushButton* SMESHGUI_MultiEditDlg.mySortBtn [protected, inherited]
QLineEdit* SMESHGUI_MultiEditDlg.mySubmesh [protected, inherited]
QPushButton* SMESHGUI_MultiEditDlg.mySubmeshBtn [protected, inherited]
QCheckBox* SMESHGUI_MultiEditDlg.mySubmeshChk [protected, inherited]
QCheckBox* SMESHGUI_MultiEditDlg.myToAllChk [protected, inherited]
Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS