X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSVTK%2FSVTK_ViewWindow.cxx;h=d56dde955cb163a7d2ecb1ae12e500e2f75d6d9c;hb=02904c3728214667f919cfe06072a91e1687b12f;hp=51d68610e9fd3558cef161067f7cc4be5167c15d;hpb=415c05527a7d93f2a505fa3173422f4bca73e6fc;p=modules%2Fgui.git diff --git a/src/SVTK/SVTK_ViewWindow.cxx b/src/SVTK/SVTK_ViewWindow.cxx index 51d68610e..d56dde955 100755 --- a/src/SVTK/SVTK_ViewWindow.cxx +++ b/src/SVTK/SVTK_ViewWindow.cxx @@ -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 @@ -799,9 +799,9 @@ bool SVTK_ViewWindow::isCubeAxesDisplayed() /*! Redirect the request to #SVTK_Renderer::OnViewTrihedron */ -void SVTK_ViewWindow::onViewTrihedron() +void SVTK_ViewWindow::onViewTrihedron(bool show) { - GetRenderer()->OnViewTrihedron(); + GetRenderer()->SetTrihedronVisibility(show); Repaint(); } @@ -1866,10 +1866,11 @@ void SVTK_ViewWindow::activateSetRotationSelected(void* theData) } /*! - Set the point selected by user as a rotation point + Set the gravity center of element selected by user as a rotation point */ -void SVTK_ViewWindow::activateStartPointSelection() +void SVTK_ViewWindow::activateStartPointSelection( Selection_Mode theSelectionMode ) { + SetSelectionMode( theSelectionMode ); myEventDispatcher->InvokeEvent(SVTK::StartPointSelection,0); } @@ -2049,8 +2050,11 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) anAction = new QtxAction(tr("MNU_SHOW_TRIHEDRON"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_TRIHEDRON" ) ), tr( "MNU_SHOW_TRIHEDRON" ), 0, this); + anAction->setCheckable( true ); + anAction->setChecked( true ); + anAction->setStatusTip(tr("DSC_SHOW_TRIHEDRON")); - connect(anAction, SIGNAL(activated()), this, SLOT(onViewTrihedron())); + connect(anAction, SIGNAL(toggled(bool)), this, SLOT(onViewTrihedron(bool))); mgr->registerAction( anAction, ViewTrihedronId ); // onNonIsometric: Manage non-isometric params @@ -2490,22 +2494,22 @@ SUIT_CameraProperties SVTK_ViewWindow::cameraProperties() double anAxialScale[3]; aCamera->OrthogonalizeViewUp(); - aCamera->GetFocalPoint(aFocalPoint); - aCamera->GetPosition(aPosition); - aCamera->GetViewUp(aViewUp); + aCamera->GetFocalPoint( aFocalPoint ); + aCamera->GetPosition( aPosition ); + aCamera->GetViewUp( aViewUp ); - aProps.setFocalPoint(aFocalPoint[0], aFocalPoint[1], aFocalPoint[2]); - aProps.setPosition(aPosition[0], aPosition[1], aPosition[2]); - aProps.setViewUp(aViewUp[0], aViewUp[1], aViewUp[2]); - aProps.setMappingScale(aCamera->GetParallelScale()); + aProps.setFocalPoint( aFocalPoint[0], aFocalPoint[1], aFocalPoint[2] ); + aProps.setPosition( aPosition[0], aPosition[1], aPosition[2] ); + aProps.setViewUp( aViewUp[0], aViewUp[1], aViewUp[2] ); + aProps.setMappingScale( aCamera->GetParallelScale() * 2.0 ); - if (aProps.getProjection() == SUIT_CameraProperties::PrjPerspective) + if ( aProps.getProjection() == SUIT_CameraProperties::PrjPerspective ) { - aProps.setViewAngle(aCamera->GetViewAngle()); + aProps.setViewAngle( aCamera->GetViewAngle() ); } - GetRenderer()->GetScale(anAxialScale); - aProps.setAxialScale(anAxialScale[0], anAxialScale[1], anAxialScale[2]); + GetRenderer()->GetScale( anAxialScale ); + aProps.setAxialScale( anAxialScale[0], anAxialScale[1], anAxialScale[2] ); return aProps; } @@ -2535,26 +2539,26 @@ void SVTK_ViewWindow::synchronize( SUIT_ViewWindow* theView ) double anAxialScale[3]; // get common properties - aProps.getViewUp(aViewUp[0], aViewUp[1], aViewUp[2]); - aProps.getPosition(aPosition[0], aPosition[1], aPosition[2]); - aProps.getFocalPoint(aFocalPoint[0], aFocalPoint[1], aFocalPoint[2]); - aProps.getAxialScale(anAxialScale[0], anAxialScale[1], anAxialScale[2]); + aProps.getViewUp( aViewUp[0], aViewUp[1], aViewUp[2] ); + aProps.getPosition( aPosition[0], aPosition[1], aPosition[2] ); + aProps.getFocalPoint( aFocalPoint[0], aFocalPoint[1], aFocalPoint[2] ); + aProps.getAxialScale( anAxialScale[0], anAxialScale[1], anAxialScale[2] ); // restore properties to the camera - aCamera->SetViewUp(aViewUp); - aCamera->SetPosition(aPosition); - aCamera->SetFocalPoint(aFocalPoint); - aCamera->SetParallelScale(aProps.getMappingScale()); + aCamera->SetViewUp( aViewUp ); + aCamera->SetPosition( aPosition ); + aCamera->SetFocalPoint( aFocalPoint ); + aCamera->SetParallelScale( aProps.getMappingScale() / 2.0 ); - if (aProps.getProjection() == SUIT_CameraProperties::PrjPerspective) + if ( aProps.getProjection() == SUIT_CameraProperties::PrjPerspective ) { - aCamera->SetViewAngle(aProps.getViewAngle()); + aCamera->SetViewAngle( aProps.getViewAngle() ); } - GetRenderer()->SetScale(anAxialScale); + GetRenderer()->SetScale( anAxialScale ); getRenderer()->ResetCameraClippingRange(); - Repaint(false); + Repaint( false ); blockSignals( blocked ); }