Salome HOME
Remove obsolete staff; redesign Handle-based and CDL-generated classes
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_RotationDlg.cxx
index c451a29c4653085edb1a164a6f716bb822fc1410..1a9724012a00cc871ad913e4172f765c8373c473 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -52,7 +52,6 @@
 #include <SVTK_ViewModel.h>
 #include <SVTK_ViewWindow.h>
 #include <SALOME_ListIO.hxx>
-#include <SALOME_ListIteratorOfListIO.hxx>
 
 // SALOME KERNEL includes
 #include <SALOMEDSClient.hxx>
@@ -85,9 +84,6 @@ enum { MOVE_ELEMS_BUTTON = 0, COPY_ELEMS_BUTTON, MAKE_MESH_BUTTON }; //!< action
 #define SPACING 8
 #define MARGIN  11
 
-//To disable automatic genericobj management, the following line should be commented.
-//Otherwise, it should be uncommented. Refer to KERNEL_SRC/src/SALOMEDSImpl/SALOMEDSImpl_AttributeIOR.cxx
-#define WITHGENERICOBJ
 
 //=================================================================================
 // class    : SMESHGUI_RotationDlg()
@@ -439,86 +435,74 @@ bool SMESHGUI_RotationDlg::ClickOnApply()
       switch ( actionButton ) {
       case MOVE_ELEMS_BUTTON:
         if(CheckBoxMesh->isChecked()) {
-         for ( int i = 0; i < myObjects.count(); i++ ) {
-           SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[i]->GetMeshEditor();
-           myMeshes[i]->SetParameters(aParameters.join( ":" ).toLatin1().constData());
-           aMeshEditor->RotateObject(myObjects[i], anAxis, anAngle, false);
-         }
-       }
-       else {
-         SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[0]->GetMeshEditor();
-         myMeshes[0]->SetParameters(aParameters.join( ":" ).toLatin1().constData());
-         aMeshEditor->Rotate(anElementsId, anAxis, anAngle, false);
-       }
+          for ( int i = 0; i < myObjects.count(); i++ ) {
+            SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[i]->GetMeshEditor();
+            myMeshes[i]->SetParameters(aParameters.join( ":" ).toLatin1().constData());
+            aMeshEditor->RotateObject(myObjects[i], anAxis, anAngle, false);
+          }
+        }
+        else {
+          SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[0]->GetMeshEditor();
+          myMeshes[0]->SetParameters(aParameters.join( ":" ).toLatin1().constData());
+          aMeshEditor->Rotate(anElementsId, anAxis, anAngle, false);
+        }
         break;
       case COPY_ELEMS_BUTTON:
         if ( makeGroups ) {
           SMESH::ListOfGroups_var groups;
           if(CheckBoxMesh->isChecked()) {
-           for ( int i = 0; i < myObjects.count(); i++ ) {
-             SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[i]->GetMeshEditor();
-             myMeshes[i]->SetParameters(aParameters.join( ":" ).toLatin1().constData());
-             groups = aMeshEditor->RotateObjectMakeGroups(myObjects[i], anAxis, anAngle);
-           }
-         }
+            for ( int i = 0; i < myObjects.count(); i++ ) {
+              SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[i]->GetMeshEditor();
+              myMeshes[i]->SetParameters(aParameters.join( ":" ).toLatin1().constData());
+              groups = aMeshEditor->RotateObjectMakeGroups(myObjects[i], anAxis, anAngle);
+            }
+          }
           else {
-           SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[0]->GetMeshEditor();
-           myMeshes[0]->SetParameters(aParameters.join( ":" ).toLatin1().constData());
+            SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[0]->GetMeshEditor();
+            myMeshes[0]->SetParameters(aParameters.join( ":" ).toLatin1().constData());
             groups = aMeshEditor->RotateMakeGroups(anElementsId, anAxis, anAngle);
-         }
+          }
         }
         else {
           if(CheckBoxMesh->isChecked()) {
-           for ( int i = 0; i < myObjects.count(); i++ ) {
-             SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[i]->GetMeshEditor();
-             myMeshes[i]->SetParameters(aParameters.join( ":" ).toLatin1().constData());
-             aMeshEditor->RotateObject(myObjects[i], anAxis, anAngle, true);
-           }
-         }
+            for ( int i = 0; i < myObjects.count(); i++ ) {
+              SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[i]->GetMeshEditor();
+              myMeshes[i]->SetParameters(aParameters.join( ":" ).toLatin1().constData());
+              aMeshEditor->RotateObject(myObjects[i], anAxis, anAngle, true);
+            }
+          }
           else {
-           SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[0]->GetMeshEditor();
-           myMeshes[0]->SetParameters(aParameters.join( ":" ).toLatin1().constData());
-           aMeshEditor->Rotate(anElementsId, anAxis, anAngle, true);
-         }
+            SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[0]->GetMeshEditor();
+            myMeshes[0]->SetParameters(aParameters.join( ":" ).toLatin1().constData());
+            aMeshEditor->Rotate(anElementsId, anAxis, anAngle, true);
+          }
         }
         break;
       case MAKE_MESH_BUTTON: {
         SMESH::SMESH_Mesh_var mesh;
         if (CheckBoxMesh->isChecked()) {
-         for ( int i = 0; i < myObjects.count(); i++ ) {
-           QString aName = SMESH::UniqueMeshName( LineEditNewMesh->text().replace( "*", myObjectsNames[i] ) );
-           SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[i]->GetMeshEditor();
-           myMeshes[i]->SetParameters(aParameters.join( ":" ).toLatin1().constData());
-           mesh = aMeshEditor->RotateObjectMakeMesh(myObjects[i], anAxis, anAngle, makeGroups,
-                                                    aName.toLatin1().data());
-           if (!mesh->_is_nil()) {
-             if( _PTR(SObject) aSObject = SMESH::ObjectToSObject( mesh ) )
-               anEntryList.append( aSObject->GetID().c_str() );
-#ifdef WITHGENERICOBJ
-             // obj has been published in study. Its refcount has been incremented.
-             // It is safe to decrement its refcount
-             // so that it will be destroyed when the entry in study will be removed
-             mesh->UnRegister();
-#endif
-           }
-         }
-       }
+          for ( int i = 0; i < myObjects.count(); i++ ) {
+            QString aName = SMESH::UniqueMeshName( LineEditNewMesh->text().replace( "*", myObjectsNames[i] ) );
+            SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[i]->GetMeshEditor();
+            myMeshes[i]->SetParameters(aParameters.join( ":" ).toLatin1().constData());
+            mesh = aMeshEditor->RotateObjectMakeMesh(myObjects[i], anAxis, anAngle, makeGroups,
+                                                     aName.toLatin1().data());
+            if (!mesh->_is_nil()) {
+              if( _PTR(SObject) aSObject = SMESH::ObjectToSObject( mesh ) )
+                anEntryList.append( aSObject->GetID().c_str() );
+            }
+          }
+        }
         else {
-         SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[0]->GetMeshEditor();
-         myMeshes[0]->SetParameters(aParameters.join( ":" ).toLatin1().constData());
+          SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[0]->GetMeshEditor();
+          myMeshes[0]->SetParameters(aParameters.join( ":" ).toLatin1().constData());
           mesh = aMeshEditor->RotateMakeMesh(anElementsId, anAxis, anAngle, makeGroups,
                                              LineEditNewMesh->text().toLatin1().data());
-         if (!mesh->_is_nil()) {
-           if( _PTR(SObject) aSObject = SMESH::ObjectToSObject( mesh ) )
-             anEntryList.append( aSObject->GetID().c_str() );
-#ifdef WITHGENERICOBJ
-           // obj has been published in study. Its refcount has been incremented.
-           // It is safe to decrement its refcount
-           // so that it will be destroyed when the entry in study will be removed
-           mesh->UnRegister();
-#endif
-         }
-       }
+          if (!mesh->_is_nil()) {
+            if( _PTR(SObject) aSObject = SMESH::ObjectToSObject( mesh ) )
+              anEntryList.append( aSObject->GetID().c_str() );
+          }
+        }
         break;
       }
       }
@@ -679,7 +663,7 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
 
   // get selected mesh
   SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
+  mySelectionMgr->selectedObjects(aList);
 
   int nbSel = aList.Extent();
   if (nbSel < 1)
@@ -697,25 +681,25 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
       Handle(SALOME_InteractiveObject) IO = it.Value();
       SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO( IO );
       if ( aMesh->_is_nil() )
-       return;
+        return;
       
       myActor = SMESH::FindActorByObject( aMesh );
       if ( !myActor )
-       myActor = SMESH::FindActorByEntry( IO->getEntry() );
+        myActor = SMESH::FindActorByEntry( IO->getEntry() );
       if ( !myActor && !CheckBoxMesh->isChecked() )
-       return;
+        return;
       
       if ( !SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO )->_is_nil() ) {
-       if ( _PTR(Study) aStudy = SMESH::GetActiveStudyDocument() ) {
-         _PTR(SObject) obj = aStudy->FindObjectID( qPrintable( QString( IO->getEntry() ) ) );
-         _PTR(GenericAttribute) anAttr;
-         if ( obj && obj->FindAttribute( anAttr, "AttributeName" ) ) {
-           _PTR(AttributeName) aNameAttr( anAttr );
-           myObjects << SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
-           myObjectsNames << aNameAttr->Value().c_str();
-           myMeshes << aMesh;
-         }
-       }
+        if ( _PTR(Study) aStudy = SMESH::GetActiveStudyDocument() ) {
+          _PTR(SObject) obj = aStudy->FindObjectID( qPrintable( QString( IO->getEntry() ) ) );
+          _PTR(GenericAttribute) anAttr;
+          if ( obj && obj->FindAttribute( anAttr, "AttributeName" ) ) {
+            _PTR(AttributeName) aNameAttr( anAttr );
+            myObjects << SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
+            myObjectsNames << aNameAttr->Value().c_str();
+            myMeshes << aMesh;
+          }
+        }
       }
     }
 
@@ -734,7 +718,7 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
       SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
 
       if ( myMeshes.isEmpty() )
-       return;
+        return;
       // get IDs from mesh
         /*
           SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
@@ -1144,19 +1128,19 @@ void SMESHGUI_RotationDlg::onDisplaySimulation( bool toDisplayPreview ) {
         SUIT_OverrideCursor aWaitCursor;
         bool copy = ( ActionGroup->checkedId() == COPY_ELEMS_BUTTON  ||
                       ActionGroup->checkedId() == MAKE_MESH_BUTTON );
-       QList<SMESH::MeshPreviewStruct_var> aMeshPreviewStruct;
+        QList<SMESH::MeshPreviewStruct_var> aMeshPreviewStruct;
         if(CheckBoxMesh->isChecked())
-         for ( int i = 0; i < myObjects.count(); i++ ) {
-           SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[i]->GetMeshEditPreviewer();
-           aMeshEditor->RotateObject(myObjects[i], anAxis, anAngle, copy);
-           aMeshPreviewStruct << aMeshEditor->GetPreviewData();
-         }
-       else {
-         SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[0]->GetMeshEditPreviewer();
+          for ( int i = 0; i < myObjects.count(); i++ ) {
+            SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[i]->GetMeshEditPreviewer();
+            aMeshEditor->RotateObject(myObjects[i], anAxis, anAngle, copy);
+            aMeshPreviewStruct << aMeshEditor->GetPreviewData();
+          }
+        else {
+          SMESH::SMESH_MeshEditor_var aMeshEditor = myMeshes[0]->GetMeshEditPreviewer();
           aMeshEditor->Rotate(anElementsId, anAxis, anAngle, copy);
-         aMeshPreviewStruct << aMeshEditor->GetPreviewData();
-       }
-       setSimulationPreview( aMeshPreviewStruct );
+          aMeshPreviewStruct << aMeshEditor->GetPreviewData();
+        }
+        setSimulationPreview( aMeshPreviewStruct );
       } catch (...) {
         hidePreview();
       }