+
+//=================================================================================
+// function : onDisplaySimulation
+// purpose : Show/Hide preview
+//=================================================================================
+void SMESHGUI_ScaleDlg::onDisplaySimulation( bool toDisplayPreview ) {
+ if (myPreviewCheckBox->isChecked() && toDisplayPreview) {
+ if ( myNbOkElements && isValid() ) {
+ QStringList aListElementsId = myElementsId.split(" ", QString::SkipEmptyParts);
+
+ SMESH::long_array_var anElementsId = new SMESH::long_array;
+
+ anElementsId->length(aListElementsId.count());
+ for (int i = 0; i < aListElementsId.count(); i++)
+ anElementsId[i] = aListElementsId[i].toInt();
+
+ SMESH::PointStruct aPoint;
+ SMESH::double_array_var aScaleFact = new SMESH::double_array;
+ getScale(aPoint, aScaleFact);
+
+ try {
+ bool copy = ( ActionGroup->checkedId() == COPY_ELEMS_BUTTON ||
+ ActionGroup->checkedId() == MAKE_MESH_BUTTON );
+ SUIT_OverrideCursor aWaitCursor;
+ SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditPreviewer();
+ SMESH::SMESH_IDSource_var obj;
+ if ( CheckBoxMesh->isChecked() )
+ obj = mySelectedObject;
+ else
+ obj = aMeshEditor->MakeIDSource(anElementsId, SMESH::ALL);
+ aMeshEditor->Scale(obj, aPoint, aScaleFact, copy);
+
+ SMESH::MeshPreviewStruct_var aMeshPreviewStruct = aMeshEditor->GetPreviewData();
+ mySimulation->SetData(aMeshPreviewStruct._retn());
+
+ } catch (...) {
+ hidePreview();
+ }
+ } else {
+ hidePreview();
+ }
+ } else {
+ hidePreview();
+ }
+}
+
+//=================================================================================
+// function : getScale
+// purpose : get scale parameters
+//=================================================================================
+void SMESHGUI_ScaleDlg::getScale( SMESH::PointStruct& thePoint , SMESH::double_array_var& theScaleFact) {
+ thePoint.x = SpinBox1_1->GetValue();
+ thePoint.y = SpinBox1_2->GetValue();
+ thePoint.z = SpinBox1_3->GetValue();
+
+ theScaleFact->length(3);
+ theScaleFact[0] = SpinBox_FX->GetValue();
+ if (GetConstructorId() == 0) {
+ theScaleFact[1] = SpinBox_FX->GetValue();
+ theScaleFact[2] = SpinBox_FX->GetValue();
+ }
+ else {
+ theScaleFact[1] = SpinBox_FY->GetValue();
+ theScaleFact[2] = SpinBox_FZ->GetValue();
+ }
+}