PAL16842 (Genertion of groups when a mesh is transformed)

+  QCheckBox*        MakeGroupsCheck;
This commit is contained in:
eap 2007-11-12 10:00:22 +00:00
parent 0562181892
commit e7636315f5
12 changed files with 190 additions and 10 deletions

View File

@ -270,6 +270,10 @@ SMESHGUI_ExtrusionAlongPathDlg::SMESHGUI_ExtrusionAlongPathDlg( SMESHGUI* theMod
AnglesGrpLayout->addWidget( AngleSpin, 0, 2 );
AnglesGrpLayout->setRowStretch(1, 10);
// CheckBox for groups generation
MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments);
MakeGroupsCheck->setChecked(true);
// layouting
GroupArgumentsLayout->addWidget( ElementsLab, 0, 0 );
GroupArgumentsLayout->addWidget( SelectElementsButton, 0, 1 );
@ -280,6 +284,7 @@ SMESHGUI_ExtrusionAlongPathDlg::SMESHGUI_ExtrusionAlongPathDlg( SMESHGUI* theMod
GroupArgumentsLayout->addMultiCellWidget(BasePointGrp, 3, 4, 1, 2);
GroupArgumentsLayout->addWidget( AnglesCheck, 5, 0 );
GroupArgumentsLayout->addMultiCellWidget(AnglesGrp, 5, 6, 1, 2);
GroupArgumentsLayout->addMultiCellWidget(MakeGroupsCheck, 7, 7, 0, 2);
GroupArgumentsLayout->setRowStretch(6, 10);
/***************************************************************/
@ -599,10 +604,18 @@ bool SMESHGUI_ExtrusionAlongPathDlg::ClickOnApply()
try {
SUIT_OverrideCursor wc;
SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
SMESH::SMESH_MeshEditor::Extrusion_Error retVal =
aMeshEditor->ExtrusionAlongPath(anElementsId.inout(), myPathMesh, myPathShape, aNodeStart,
AnglesCheck->isChecked(), anAngles.inout(),
BasePointCheck->isChecked(), aBasePoint);
SMESH::SMESH_MeshEditor::Extrusion_Error retVal;
if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
SMESH::ListOfGroups_var groups =
aMeshEditor->ExtrusionAlongPathMakeGroups(anElementsId.inout(), myPathMesh,
myPathShape, aNodeStart,
AnglesCheck->isChecked(), anAngles.inout(),
BasePointCheck->isChecked(), aBasePoint, retVal);
else
retVal = aMeshEditor->ExtrusionAlongPath(anElementsId.inout(), myPathMesh,
myPathShape, aNodeStart,
AnglesCheck->isChecked(), anAngles.inout(),
BasePointCheck->isChecked(), aBasePoint);
//wc.stop();
wc.suspend();
@ -652,6 +665,8 @@ bool SMESHGUI_ExtrusionAlongPathDlg::ClickOnApply()
//mySelectionMgr->clearSelected();
SMESH::Update( myMeshActor->getIO(), myMeshActor->GetVisibility() );
if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
mySMESHGUI->updateObjBrowser(true); // new groups may appear
//SMESH::UpdateView();
Init(false);
ConstructorsClicked(GetConstructorId());
@ -825,6 +840,14 @@ void SMESHGUI_ExtrusionAlongPathDlg::SelectionIntoArgument()
myMesh = SMESH::GetMeshByIO(IO);
if (myMesh->_is_nil())
return;
// MakeGroups is available if there are groups
if ( myMesh->NbGroups() == 0 ) {
MakeGroupsCheck->setChecked(false);
MakeGroupsCheck->setEnabled(false);
} else {
MakeGroupsCheck->setEnabled(true);
}
// find actor
myMeshActor = SMESH::FindActorByObject(myMesh);
if (!myMeshActor)

View File

@ -141,6 +141,7 @@ private:
SMESHGUI_SpinBox* YSpin;
QLabel* ZLab;
SMESHGUI_SpinBox* ZSpin;
QCheckBox* MakeGroupsCheck;
QGroupBox* GroupButtons;
QPushButton* OkButton;

View File

@ -225,6 +225,12 @@ SMESHGUI_ExtrusionDlg::SMESHGUI_ExtrusionDlg (SMESHGUI* theModule,
SpinBox_NbSteps = new QSpinBox(GroupArguments, "SpinBox_NbSteps");
GroupArgumentsLayout->addMultiCellWidget(SpinBox_NbSteps, 3, 3, 2, 7);
// CheckBox for groups generation
MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments);
MakeGroupsCheck->setChecked(true);
GroupArgumentsLayout->addMultiCellWidget(MakeGroupsCheck, 4, 4, 0, 7);
SMESHGUI_ExtrusionDlgLayout->addWidget(GroupArguments, 1, 0);
/* Initialisations */
@ -401,12 +407,20 @@ bool SMESHGUI_ExtrusionDlg::ClickOnApply()
try {
SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
QApplication::setOverrideCursor(Qt::waitCursor);
aMeshEditor->ExtrusionSweep(myElementsId.inout(), aVector, aNbSteps);
if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
SMESH::ListOfGroups_var groups =
aMeshEditor->ExtrusionSweepMakeGroups(myElementsId.inout(), aVector, aNbSteps);
else
aMeshEditor->ExtrusionSweep(myElementsId.inout(), aVector, aNbSteps);
QApplication::restoreOverrideCursor();
} catch (...) {
}
SMESH::UpdateView();
if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
mySMESHGUI->updateObjBrowser(true); // new groups may appear
Init(false);
ConstructorsClicked(GetConstructorId());
SelectionIntoArgument();
@ -562,6 +576,14 @@ void SMESHGUI_ExtrusionDlg::SelectionIntoArgument()
if (myEditCurrentArgument == LineEditElements) {
int aNbElements = 0;
// MakeGroups is available if there are groups
if ( myMesh->NbGroups() == 0 ) {
MakeGroupsCheck->setChecked(false);
MakeGroupsCheck->setEnabled(false);
} else {
MakeGroupsCheck->setEnabled(true);
}
if (CheckBoxMesh->isChecked()) {
SMESH::ElementType neededType = GetConstructorId() ? SMESH::FACE : SMESH::EDGE;

View File

@ -112,6 +112,7 @@ private:
SMESHGUI_SpinBox* SpinBox_Dz;
QLabel* TextLabelNbSteps;
QSpinBox* SpinBox_NbSteps;
QCheckBox* MakeGroupsCheck;
QGroupBox* GroupButtons;
QPushButton* buttonOk;

View File

@ -290,6 +290,12 @@ SMESHGUI_RevolutionDlg::SMESHGUI_RevolutionDlg( SMESHGUI* theModule, const char*
SpinBox_Tolerance = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Tolerance");
GroupArgumentsLayout->addWidget(SpinBox_Tolerance, 5, 2);
// CheckBox for groups generation
MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments);
MakeGroupsCheck->setChecked(true);
GroupArgumentsLayout->addMultiCellWidget(MakeGroupsCheck, 6, 6, 0, 3);
SMESHGUI_RevolutionDlgLayout->addWidget(GroupArguments, 1, 0);
/* Initialisations */
@ -479,12 +485,21 @@ void SMESHGUI_RevolutionDlg::ClickOnApply()
try {
SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
QApplication::setOverrideCursor(Qt::waitCursor);
aMeshEditor->RotationSweep(anElementsId.inout(), anAxis, anAngle, aNbSteps, aTolerance);
if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
SMESH::ListOfGroups_var groups =
aMeshEditor->RotationSweepMakeGroups(anElementsId.inout(), anAxis,
anAngle, aNbSteps, aTolerance);
else
aMeshEditor->RotationSweep(anElementsId.inout(), anAxis, anAngle, aNbSteps, aTolerance);
QApplication::restoreOverrideCursor();
} catch (...) {
}
SMESH::UpdateView();
if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
mySMESHGUI->updateObjBrowser(true); // new groups may appear
Init(false);
ConstructorsClicked(GetConstructorId());
SelectionIntoArgument();
@ -640,6 +655,14 @@ void SMESHGUI_RevolutionDlg::SelectionIntoArgument()
if (myEditCurrentArgument == (QWidget*)LineEditElements) {
myElementsId = "";
// MakeGroups is available if there are groups
if ( myMesh->NbGroups() == 0 ) {
MakeGroupsCheck->setChecked(false);
MakeGroupsCheck->setEnabled(false);
} else {
MakeGroupsCheck->setEnabled(true);
}
if (CheckBoxMesh->isChecked()) {
int aConstructorId = GetConstructorId();

View File

@ -110,6 +110,7 @@ private:
QPushButton* SelectElementsButton;
QLineEdit* LineEditElements;
QCheckBox* CheckBoxMesh;
QCheckBox* MakeGroupsCheck;
QLabel* TextLabelPoint;
QPushButton* SelectPointButton;

View File

@ -283,6 +283,10 @@ SMESHGUI_RotationDlg::SMESHGUI_RotationDlg( SMESHGUI* theModule, const char* nam
CheckBoxCopy->setText(tr("SMESH_CREATE_COPY"));
GroupArgumentsLayout->addMultiCellWidget(CheckBoxCopy, 4, 4, 0, 2);
// CheckBox for groups generation
MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments);
GroupArgumentsLayout->addMultiCellWidget(MakeGroupsCheck, 5, 5, 0, 2);
SMESHGUI_RotationDlgLayout->addWidget(GroupArguments, 1, 0);
/* Initialisations */
@ -339,6 +343,7 @@ SMESHGUI_RotationDlg::SMESHGUI_RotationDlg( SMESHGUI* theModule, const char* nam
connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
connect(LineEditElements, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
connect(CheckBoxMesh, SIGNAL(toggled(bool)), SLOT(onSelectMesh(bool)));
connect(CheckBoxCopy, SIGNAL(toggled(bool)), SLOT(onCopyChecked(bool)));
this->show(); /* displays Dialog */
@ -386,6 +391,8 @@ void SMESHGUI_RotationDlg::Init (bool ResetControls)
CheckBoxCopy->setChecked(false);
CheckBoxMesh->setChecked(false);
MakeGroupsCheck->setChecked(false);
MakeGroupsCheck->setEnabled(false);
}
onSelectMesh(CheckBoxMesh->isChecked());
@ -432,12 +439,18 @@ void SMESHGUI_RotationDlg::ClickOnApply()
try {
SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
QApplication::setOverrideCursor(Qt::waitCursor);
aMeshEditor->Rotate(anElementsId.inout(), anAxis, anAngle, toCreateCopy);
if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
SMESH::ListOfGroups_var groups =
aMeshEditor->RotateMakeGroups(anElementsId.inout(), anAxis, anAngle);
else
aMeshEditor->Rotate(anElementsId.inout(), anAxis, anAngle, toCreateCopy);
QApplication::restoreOverrideCursor();
} catch (...) {
}
SMESH::UpdateView();
if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
mySMESHGUI->updateObjBrowser(true); // new groups may appear
Init(false);
SelectionIntoArgument();
}
@ -592,6 +605,14 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
if (myEditCurrentArgument == (QWidget*)LineEditElements) {
myElementsId = "";
// MakeGroups is available if there are groups and "Copy"
if ( myMesh->NbGroups() == 0 ) {
MakeGroupsCheck->setChecked(false);
MakeGroupsCheck->setEnabled(false);
}
else if (CheckBoxCopy->isChecked() ) {
MakeGroupsCheck->setEnabled(true);
}
if (CheckBoxMesh->isChecked()) {
SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
@ -854,6 +875,19 @@ void SMESHGUI_RotationDlg::onVectorChanged()
}
}
//=======================================================================
//function : onCopyChecked
//purpose : slot called when Copy checkBox is checked
//=======================================================================
void SMESHGUI_RotationDlg::onCopyChecked(bool isOn)
{
// enable "MakeGroupsCheck"
if ( !myMesh->_is_nil() && myMesh->NbGroups() == 0)
isOn = false;
MakeGroupsCheck->setEnabled(isOn);
}
//=================================================================================
// function : keyPressEvent()
// purpose :

View File

@ -129,6 +129,7 @@ private:
QLabel* TextLabelAngle;
SMESHGUI_SpinBox* SpinBox_Angle;
QCheckBox* CheckBoxCopy;
QCheckBox* MakeGroupsCheck;
QString myHelpFileName;
@ -146,6 +147,7 @@ private slots:
void onTextChange (const QString&);
void onSelectMesh (bool toSelectMesh);
void onVectorChanged();
void onCopyChecked(bool isOn);
protected:
QGridLayout* SMESHGUI_RotationDlgLayout;

View File

@ -277,6 +277,10 @@ SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule, const char* nam
CheckBoxCopy->setText(tr("SMESH_CREATE_COPY"));
GroupArgumentsLayout->addMultiCellWidget(CheckBoxCopy, 3, 3, 0, 2);
// CheckBox for groups generation
MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments);
MakeGroupsCheck->setChecked(false);
GroupArgumentsLayout->addMultiCellWidget(MakeGroupsCheck, 4, 4, 0, 2);
SMESHGUI_SymmetryDlgLayout->addWidget(GroupArguments, 1, 0);
@ -331,6 +335,7 @@ SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule, const char* nam
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
connect(LineEditElements, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
connect(CheckBoxMesh, SIGNAL(toggled(bool)), SLOT(onSelectMesh(bool)));
connect(CheckBoxCopy, SIGNAL(toggled(bool)), SLOT(onCopyChecked(bool)));
this->show(); /* displays Dialog */
@ -377,6 +382,8 @@ void SMESHGUI_SymmetryDlg::Init (bool ResetControls)
CheckBoxCopy->setChecked(false);
CheckBoxMesh->setChecked(false);
MakeGroupsCheck->setChecked(false);
MakeGroupsCheck->setEnabled(false);
onSelectMesh(false);
}
}
@ -492,12 +499,18 @@ void SMESHGUI_SymmetryDlg::ClickOnApply()
try {
SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
QApplication::setOverrideCursor(Qt::waitCursor);
aMeshEditor->Mirror(anElementsId, aMirror, aMirrorType, toCreateCopy);
if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
SMESH::ListOfGroups_var groups =
aMeshEditor->MirrorMakeGroups(anElementsId, aMirror, aMirrorType);
else
aMeshEditor->Mirror(anElementsId, aMirror, aMirrorType, toCreateCopy);
QApplication::restoreOverrideCursor();
} catch (...) {
}
SMESH::UpdateView();
if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
mySMESHGUI->updateObjBrowser(true); // new groups may appear
Init(false);
ConstructorsClicked(GetConstructorId());
SelectionIntoArgument();
@ -654,6 +667,14 @@ void SMESHGUI_SymmetryDlg::SelectionIntoArgument()
if (myEditCurrentArgument == (QWidget*)LineEditElements) {
myElementsId = "";
// MakeGroups is available if there are groups and "Copy"
if ( myMesh->NbGroups() == 0 ) {
MakeGroupsCheck->setChecked(false);
MakeGroupsCheck->setEnabled(false);
}
else if (CheckBoxCopy->isChecked() ) {
MakeGroupsCheck->setEnabled(true);
}
if (CheckBoxMesh->isChecked()) {
SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
@ -927,6 +948,19 @@ void SMESHGUI_SymmetryDlg::onVectorChanged()
}
}
//=======================================================================
//function : onCopyChecked
//purpose : slot called when Copy checkBox is checked
//=======================================================================
void SMESHGUI_SymmetryDlg::onCopyChecked(bool isOn)
{
// enable "MakeGroupsCheck"
if ( !myMesh->_is_nil() && myMesh->NbGroups() == 0)
isOn = false;
MakeGroupsCheck->setEnabled(isOn);
}
//=================================================================================
// function : keyPressEvent()
// purpose :

View File

@ -129,6 +129,7 @@ private:
SMESHGUI_SpinBox* SpinBox_DZ;
QCheckBox* CheckBoxCopy;
QCheckBox* MakeGroupsCheck;
QString myHelpFileName;
@ -146,7 +147,8 @@ private:
void onTextChange(const QString&);
void onSelectMesh(bool toSelectMesh);
void onVectorChanged();
void onCopyChecked(bool isOn);
protected:
QGridLayout* SMESHGUI_SymmetryDlgLayout;
QGridLayout* GroupConstructorsLayout;

View File

@ -260,6 +260,10 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const cha
CheckBoxCopy->setText(tr("SMESH_CREATE_COPY"));
GroupArgumentsLayout->addMultiCellWidget(CheckBoxCopy, 4, 4, 0, 2);
// CheckBox for groups generation
MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments);
MakeGroupsCheck->setChecked(false);
GroupArgumentsLayout->addMultiCellWidget(MakeGroupsCheck, 5, 5, 0, 2);
SMESHGUI_TranslationDlgLayout->addWidget(GroupArguments, 1, 0);
@ -310,6 +314,7 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const cha
connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
connect(LineEditElements, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
connect(CheckBoxMesh, SIGNAL(toggled(bool)), SLOT(onSelectMesh(bool)));
connect(CheckBoxCopy, SIGNAL(toggled(bool)), SLOT(onCopyChecked(bool)));
this->show(); /* displays Dialog */
@ -356,6 +361,8 @@ void SMESHGUI_TranslationDlg::Init (bool ResetControls)
CheckBoxCopy->setChecked(false);
CheckBoxMesh->setChecked(false);
MakeGroupsCheck->setChecked(false);
MakeGroupsCheck->setEnabled(false);
onSelectMesh(false);
}
}
@ -457,12 +464,18 @@ void SMESHGUI_TranslationDlg::ClickOnApply()
try {
SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
QApplication::setOverrideCursor(Qt::waitCursor);
aMeshEditor->Translate(anElementsId.inout(), aVector, toCreateCopy);
if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
SMESH::ListOfGroups_var groups =
aMeshEditor->TranslateMakeGroups(anElementsId.inout(), aVector);
else
aMeshEditor->Translate(anElementsId.inout(), aVector, toCreateCopy);
QApplication::restoreOverrideCursor();
} catch (...) {
}
SMESH::UpdateView();
if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
mySMESHGUI->updateObjBrowser(true); // new groups may appear
Init(false);
ConstructorsClicked(GetConstructorId());
SelectionIntoArgument();
@ -619,6 +632,15 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
if (myEditCurrentArgument == (QWidget*)LineEditElements) {
myElementsId = "";
// MakeGroups is available if there are groups and "Copy"
if ( myMesh->NbGroups() == 0 ) {
MakeGroupsCheck->setChecked(false);
MakeGroupsCheck->setEnabled(false);
}
else if (CheckBoxCopy->isChecked() ) {
MakeGroupsCheck->setEnabled(true);
}
if (CheckBoxMesh->isChecked()) {
SMESH::GetNameOfSelectedIObjects( mySelectionMgr, aString );
@ -852,6 +874,19 @@ void SMESHGUI_TranslationDlg::onSelectMesh (bool toSelectMesh)
SelectionIntoArgument();
}
//=======================================================================
//function : onCopyChecked
//purpose : slot called when Copy checkBox is checked
//=======================================================================
void SMESHGUI_TranslationDlg::onCopyChecked(bool isOn)
{
// enable "MakeGroupsCheck"
if ( !myMesh->_is_nil() && myMesh->NbGroups() == 0)
isOn = false;
MakeGroupsCheck->setEnabled(isOn);
}
//=================================================================================
// function : GetConstructorId()
// purpose :

View File

@ -124,6 +124,7 @@ private:
QLabel* TextLabel2_3;
SMESHGUI_SpinBox* SpinBox2_3;
QCheckBox* CheckBoxCopy;
QCheckBox* MakeGroupsCheck;
QString myHelpFileName;
@ -140,6 +141,7 @@ private:
void ActivateThisDialog() ;
void onTextChange(const QString&);
void onSelectMesh(bool toSelectMesh);
void onCopyChecked(bool isOn);
protected:
QGridLayout* SMESHGUI_TranslationDlgLayout;