for (int i = 0, iEnd = theIds.size(); i < iEnd; i++){
anIds->InsertId(0,theIds[i]);
vtkIdType anId = myBallPolyData->InsertNextCell(VTK_POLY_VERTEX,anIds);
- double d = theDiameter;
+ double d = theDiameter * theActor->GetBallScale();
aScalars->SetTuple(anId,&d);
anIds->Reset();
}
Reverse = (myElementType == SMDSAbs_Face || myElementType == SMDSAbs_Volume ) ? new QCheckBox(tr("SMESH_REVERSE"), GroupC1) : 0;
+ AutomaticPresentation = (myGeomType == SMDSEntity_Quadrangle || myGeomType == SMDSEntity_Polygon ||
+ myGeomType == SMDSEntity_Pyramid || myGeomType == SMDSEntity_Hexa ||
+ myGeomType == SMDSEntity_Penta || myGeomType == SMDSEntity_Hexagonal_Prism ) ? new QCheckBox(tr("SMESH_AUTOMATIC_PRESENTATION"), GroupC1) : 0;
+ if ( AutomaticPresentation ) {
+ GetNextPresentationButton = new QPushButton(tr("SMESH_BUT_GET_NEXT_SHAPE"), GroupC1);
+ GetNextPresentationButton->setAutoDefault(false);
+ }
DiameterSpinBox = ( myGeomType == SMDSEntity_Ball ) ? new SMESHGUI_SpinBox(GroupC1) : 0;
QLabel* diameterLabel = DiameterSpinBox ? new QLabel( tr("BALL_DIAMETER"),GroupC1) : 0;
GroupC1Layout->addWidget(TextLabelC1A1, 0, 0);
GroupC1Layout->addWidget(SelectButtonC1A1, 0, 1);
GroupC1Layout->addWidget(LineEditC1A1, 0, 2);
+ if ( AutomaticPresentation ) {
+ AutomaticPresentation->setChecked(true);
+ GroupC1Layout->addWidget(AutomaticPresentation, 1, 0, 1, 2);
+ GroupC1Layout->addWidget(GetNextPresentationButton, 1, 2, 1, 1);
+ }
if ( Reverse ) {
- GroupC1Layout->addWidget(Reverse, 1, 0, 1, 3);
+ GroupC1Layout->addWidget(Reverse, 2, 0, 1, 3);
}
if ( DiameterSpinBox ) {
GroupC1Layout->addWidget(diameterLabel, 1, 0);
myActor = 0;
/* signals and slots connections */
- connect(buttonOk, SIGNAL(clicked()), SLOT(ClickOnOk()));
- connect(buttonCancel, SIGNAL(clicked()), SLOT(reject()));
- connect(buttonApply, SIGNAL(clicked()), SLOT(ClickOnApply()));
- connect(buttonHelp, SIGNAL(clicked()), SLOT(ClickOnHelp()));
-
- connect(SelectButtonC1A1,SIGNAL(clicked()), SLOT(SetEditCurrentArgument()));
- connect(LineEditC1A1, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
- connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()),SLOT(DeactivateActiveDialog()));
- connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(SelectionIntoArgument()));
+ connect(buttonOk, SIGNAL(clicked()), SLOT(ClickOnOk()));
+ connect(buttonCancel, SIGNAL(clicked()), SLOT(reject()));
+ connect(buttonApply, SIGNAL(clicked()), SLOT(ClickOnApply()));
+ connect(buttonHelp, SIGNAL(clicked()), SLOT(ClickOnHelp()));
+
+ connect(SelectButtonC1A1, SIGNAL(clicked()), SLOT(SetEditCurrentArgument()));
+ connect(LineEditC1A1, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
+ connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()),SLOT(DeactivateActiveDialog()));
+ connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(SelectionIntoArgument()));
/* to close dialog if study frame change */
- connect(mySMESHGUI, SIGNAL(SignalStudyFrameChanged()), SLOT(reject()));
- connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(reject()));
+ connect(mySMESHGUI, SIGNAL(SignalStudyFrameChanged()), SLOT(reject()));
+ connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(reject()));
if (Reverse)
- connect(Reverse, SIGNAL(stateChanged(int)), SLOT(CheckBox(int)));
-
+ connect(Reverse, SIGNAL(stateChanged(int)), SLOT(CheckBox(int)));
+ if (AutomaticPresentation) {
+ connect(AutomaticPresentation, SIGNAL(stateChanged(int)), SLOT(SelectionIntoArgument()));
+ connect(GetNextPresentationButton, SIGNAL(clicked()), SLOT(GetNextShapePresentation()));
+ }
// set selection mode
SMESH::SetPointRepresentation(true);
buttonOk->setEnabled(false);
buttonApply->setEnabled(false);
+ if ( AutomaticPresentation )
+ GetNextPresentationButton->setEnabled(false);
myEditCurrentArgument->setText("");
buttonOk->setEnabled(false);
buttonApply->setEnabled(false);
+ if ( AutomaticPresentation )
+ GetNextPresentationButton->setEnabled(false);
mySimulation->SetVisibility(false);
if(myNbOkNodes) {
buttonOk->setEnabled(true);
buttonApply->setEnabled(true);
+ if ( AutomaticPresentation && AutomaticPresentation->isChecked() )
+ GetNextPresentationButton->setEnabled(true);
displaySimulation();
}
myActor = 0;
myBusy = true;
+ QString anOldEditArgument = myEditCurrentArgument->text();
myEditCurrentArgument->setText("");
myBusy = false;
buttonOk->setEnabled(false);
buttonApply->setEnabled(false);
+ if ( AutomaticPresentation )
+ GetNextPresentationButton->setEnabled(false);
mySimulation->SetVisibility(false);
// SMESH::SetPointRepresentation(true);
// get selected nodes
QString aString = "";
- int nbNodes = SMESH::GetNameOfSelectedNodes(mySelector,myActor->getIO(),aString);
- myBusy = true;
- myEditCurrentArgument->setText(aString);
- myBusy = false;
- if (myIsPoly && myElementType == SMDSAbs_Face && nbNodes >= 3 ) {
- myNbNodes = nbNodes;
- } else if (myNbNodes != nbNodes && myNbNodes != 1) {
- return;
+ int nbNodes = 0;
+ while ( aString == "" || anOldEditArgument == aString ) {
+ if ( AutomaticPresentation && AutomaticPresentation->isChecked() ) {
+ nbNodes = SMESH::GetNameOfSelectedSortedNodes( myGeomType , mySelector, myActor, myShift, aString );
+ }
+ else
+ nbNodes = SMESH::GetNameOfSelectedNodes( mySelector, myActor->getIO(), aString );
+ if ( aString!= "" && myNbNodes == nbNodes && anOldEditArgument == aString && AutomaticPresentation && AutomaticPresentation->isChecked()) {
+ myShift++;
+ if ( myShift > nbNodes ) {
+ myEditCurrentArgument->setText(aString);
+ myShift = 0;
+ break;
+ }
+ continue;
+ }
+ myBusy = true;
+ myEditCurrentArgument->setText(aString);
+ myBusy = false;
+ if (myIsPoly && myElementType == SMDSAbs_Face && nbNodes >= 3 )
+ myNbNodes = nbNodes;
+ else if (myNbNodes != nbNodes && myNbNodes != 1) {
+ myShift = 0;
+ return;
+ }
+ if ( !AutomaticPresentation || !AutomaticPresentation->isChecked() ||
+ ( myIsPoly && nbNodes < 3 ) )
+ break;
}
// OK
buttonOk->setEnabled(true);
buttonApply->setEnabled(true);
+ if ( AutomaticPresentation && AutomaticPresentation->isChecked() )
+ GetNextPresentationButton->setEnabled(true);
displaySimulation();
}
SelectionIntoArgument();
}
+//=================================================================================
+// function : GetNextShapePresentation()
+// purpose :
+//=================================================================================
+void SMESHGUI_AddMeshElementDlg::GetNextShapePresentation()
+{
+ myShift++;
+ SetEditCurrentArgument();
+}
+
//=================================================================================
// function : DeactivateActiveDialog()
// purpose :