Back to index

salome-geom  6.5.0
Public Member Functions
TransformationGUI Class Reference

#include <TransformationGUI.h>

List of all members.

Public Member Functions

 TransformationGUI (GeometryGUI *)
 ~TransformationGUI ()
bool OnGUIEvent (int, SUIT_Desktop *)

Detailed Description

Definition at line 36 of file TransformationGUI.h.


Constructor & Destructor Documentation

TransformationGUI::TransformationGUI ( GeometryGUI *  parent)

Definition at line 56 of file TransformationGUI.cxx.

  : GEOMGUI( parent )
{
}

Definition at line 65 of file TransformationGUI.cxx.

{
}

Member Function Documentation

bool TransformationGUI::OnGUIEvent ( int  theCommandID,
SUIT_Desktop *  parent 
)

Definition at line 74 of file TransformationGUI.cxx.

{
  SalomeApp_Application* app = getGeometryGUI()->getApp();
  if ( !app ) return false;

  getGeometryGUI()->EmitSignalDeactivateDialog();
  QDialog* aDlg = NULL;

  switch ( theCommandID ) {
  case GEOMOp::OpTranslate:      // TRANSLATION
    aDlg = new TransformationGUI_TranslationDlg( getGeometryGUI(), parent );
    break;
  case GEOMOp::OpRotate:         // ROTATION
    aDlg = new TransformationGUI_RotationDlg( getGeometryGUI(), parent );
    break;
  case GEOMOp::OpChangeLoc:      // POSITION
    aDlg = new TransformationGUI_PositionDlg( getGeometryGUI(), parent );
    break;
  case GEOMOp::OpMirror:         // MIRROR
    aDlg = new TransformationGUI_MirrorDlg( getGeometryGUI(), parent );
    break;
  case GEOMOp::OpScale:          // SCALE
    aDlg = new TransformationGUI_ScaleDlg( getGeometryGUI(), parent );
    break;
  case GEOMOp::OpOffset:         // OFFSET
    aDlg = new TransformationGUI_OffsetDlg( getGeometryGUI(), parent );
    break;
  case GEOMOp::OpProjection:     // PROJECTION
    aDlg = new TransformationGUI_ProjectionDlg( getGeometryGUI(), parent );
    break;
  case GEOMOp::OpMultiTranslate: // MULTI TRANSLATION
    aDlg = new TransformationGUI_MultiTranslationDlg( getGeometryGUI(), parent );
    break;
  case GEOMOp::OpMultiRotate:    // MULTI ROTATION
    aDlg = new TransformationGUI_MultiRotationDlg( getGeometryGUI(), parent );
    break;
  case GEOMOp::OpReimport:       // RELOAD IMPORTED SHAPE
    {
      SalomeApp_Study* anAppStudy = dynamic_cast<SalomeApp_Study*>(app->activeStudy());

      GEOM::GEOM_ITransformOperations_var anOp =
        GeometryGUI::GetGeomGen()->GetITransformOperations(anAppStudy->id());
      if (anOp->_is_nil()) return false;

      GEOM_Displayer aDisp (anAppStudy);
      SUIT_Desktop* desk = app->desktop();
      QList<SUIT_ViewWindow*> wnds = desk->windows();

      LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
      SALOME_ListIO aSelList;
      aSelMgr->selectedObjects(aSelList);

      SALOME_ListIteratorOfListIO aSelIt (aSelList);
      for (; aSelIt.More(); aSelIt.Next()) {
        Handle(SALOME_InteractiveObject) io = aSelIt.Value();
        GEOM::GEOM_Object_var aGeomObj = GEOMBase::ConvertIOinGEOMObject( io );
        if ( !CORBA::is_nil( aGeomObj ) ) {
          anOp->RecomputeObject(aGeomObj);

          SUIT_ViewWindow* wnd;
          QListIterator<SUIT_ViewWindow*> it (wnds);
          while (it.hasNext() && (wnd = it.next()))
          {
            if (SUIT_ViewManager* vman = wnd->getViewManager()) {
              if (SUIT_ViewModel* vmodel = vman->getViewModel()) {
                if (SALOME_View* view = dynamic_cast<SALOME_View*>(vmodel)) {
                  if (view->isVisible(io)) {
                    aDisp.Erase(io, true, false, view);
                  getGeometryGUI()->GetShapeReader().RemoveShapeFromBuffer( getGeometryGUI()->getApp()->orb()->object_to_string( aGeomObj.in() ) );
                    aDisp.Display(io, true, view);
                  }
                  // ? Redisplay subshapes ?
                }
              }
            }
          }
        }
      } // for (; aSelIt.More(); aSelIt.Next())
    }
    break;
  default:
    app->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) );
    break;
  }

  if ( aDlg != NULL )
    aDlg->show();

  return true;
}

Here is the call graph for this function:


The documentation for this class was generated from the following files: