-bool TransformationGUI::OnGUIEvent(int theCommandID, QAD_Desktop* parent)
-{
- TransformationGUI* myTransformationGUI = new TransformationGUI();
- myTransformationGUI->myGeomGUI->EmitSignalDeactivateDialog();
- SALOME_Selection* Sel = SALOME_Selection::Selection(QAD_Application::getDesktop()->getActiveStudy()->getSelection());
-
- switch (theCommandID)
- {
- case 5021: // TRANSLATION
- {
- TransformationGUI_TranslationDlg *aDlg = new TransformationGUI_TranslationDlg(parent, "", myTransformationGUI, Sel);
- break;
- }
- case 5022: // ROTATION
- {
- TransformationGUI_RotationDlg *aDlg = new TransformationGUI_RotationDlg(parent, "", myTransformationGUI, Sel);
- break;
- }
- case 5023: // MIRROR
- {
- TransformationGUI_MirrorDlg *aDlg = new TransformationGUI_MirrorDlg(parent, "", myTransformationGUI, Sel);
- break;
- }
- case 5024: // SCALE
- {
- TransformationGUI_ScaleDlg *aDlg = new TransformationGUI_ScaleDlg(parent, "", myTransformationGUI, Sel );
- break;
- }
- case 5025: // MULTI TRANSLATION
- {
- TransformationGUI_MultiTranslationDlg *aDlg = new TransformationGUI_MultiTranslationDlg(parent, "", myTransformationGUI, Sel);
- break;
- }
- case 5026: // MULTI ROTATION
- {
- TransformationGUI_MultiRotationDlg *aDlg = new TransformationGUI_MultiRotationDlg(parent, "", myTransformationGUI, Sel);
- break;
- }
- default:
- {
- parent->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID));
- break;
- }
- }
- return true;
-}
-
-
-//=================================================================================
-// function : MakeTranslationAndDisplay()
-// purpose : Translate a shape
-//=================================================================================
-void TransformationGUI::MakeTranslationAndDisplay(GEOM::GEOM_Shape_ptr Shape, gp_Vec V)
-{
- try {
- GEOM::GEOM_Shape_var result = myGeom->MakeTranslation(Shape, V.X(), V.Y(), V.Z());
- if(result->_is_nil()) {
- QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_ABORT"));
- return;
- }
- result->NameType(Shape->NameType());
- if(myGeomBase->Display(result))
- QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_DONE"));
- }
- catch(const SALOME::SALOME_Exception& S_ex) {
- QtCatchCorbaException(S_ex);
- }
- return;
-}
-
-
-//=======================================================================================
-// function : MakeRotationAndDisplay()
-// purpose :
-//=======================================================================================
-void TransformationGUI::MakeRotationAndDisplay(GEOM::GEOM_Shape_ptr Shape, const gp_Pnt loc,
- const gp_Dir dir, const Standard_Real angle)
-{
- try {
- const GEOM::AxisStruct axis = myGeom->MakeAxisStruct(loc.X(), loc.Y(), loc.Z(),
- dir.X(), dir.Y(), dir.Z());
- GEOM::GEOM_Shape_var result = myGeom->MakeRotation(Shape, axis, angle);
- if(result->_is_nil()) {
- QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_ABORT"));
- return ;
- }
- result->NameType(Shape->NameType());
- if(myGeomBase->Display(result))
- QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_DONE"));
- }
- catch(const SALOME::SALOME_Exception& S_ex) {
- QtCatchCorbaException(S_ex);
- }
- return;
-}
-
-
-//=====================================================================================
-// function : MakeMirrorAndDisplay()
-// purpose :
-//=====================================================================================
-void TransformationGUI::MakeMirrorAndDisplay(GEOM::GEOM_Shape_ptr Shape1, GEOM::GEOM_Shape_ptr Shape2)
-{
- try {
- GEOM::GEOM_Shape_var result = myGeom->MakeMirrorByPlane(Shape1, Shape2);
- if(result->_is_nil()) {
- QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_NULLSHAPE"));
- return;
- }
- result->NameType(Shape1->NameType());
- if(myGeomBase->Display(result))
- QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_DONE"));
- }
- catch(const SALOME::SALOME_Exception& S_ex) {
- QtCatchCorbaException(S_ex);
- }
- return;
-}
-
-
-//=====================================================================================
-// function : MakeScaleAndDisplay()
-// purpose :
-//=====================================================================================
-void TransformationGUI::MakeScaleAndDisplay(GEOM::GEOM_Shape_ptr Shape, const gp_Pnt centralPoint,
- const Standard_Real factor)
-{
- try {
- GEOM::PointStruct P = myGeom->MakePointStruct(centralPoint.X(), centralPoint.Y(), centralPoint.Z());
- GEOM::GEOM_Shape_var result = myGeom->MakeScaleTransform(Shape, P, factor);
- result->NameType(Shape->NameType());
- if(myGeomBase->Display(result))
- QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_DONE"));
- else
- QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_NULLSHAPE"));
- }
- catch(const SALOME::SALOME_Exception& S_ex) {
- QtCatchCorbaException(S_ex);
- }
- return;
-}
-
-
-//=================================================================================
-// function : MakeMultiTranslation1DAndDisplay()
-// purpose : Multi-Translate a shape
-//=================================================================================
-void TransformationGUI::MakeMultiTranslation1DAndDisplay(GEOM::GEOM_Shape_ptr Shape, const gp_Dir Dir,
- const double Step, const short NbTimes)