X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_ViewerProxy.cpp;h=345efbe077f98fcf03dbc081845174c29d42bb80;hb=64fc7e4fdd63997ec7a502b233ef5f88186d5bbb;hp=cf300615a91fcd56eec14c96019b28c163a98cdd;hpb=0eb89d31b37c6e7c1bb6459f06c9ced0cd3960d2;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_ViewerProxy.cpp b/src/XGUI/XGUI_ViewerProxy.cpp index cf300615a..345efbe07 100644 --- a/src/XGUI/XGUI_ViewerProxy.cpp +++ b/src/XGUI/XGUI_ViewerProxy.cpp @@ -47,11 +47,12 @@ Handle(V3d_View) XGUI_ViewerProxy::activeView() const } } -void XGUI_ViewerProxy::setViewProjection(double theX, double theY, double theZ) +void XGUI_ViewerProxy::setViewProjection(double theX, double theY, double theZ, double theTwist) { Handle(V3d_View) aView3d = activeView(); if (!aView3d.IsNull()) { aView3d->SetProj(theX, theY, theZ); + aView3d->SetTwist( theTwist ); aView3d->FitAll(0.01, true); aView3d->SetZSize(0.); } @@ -169,6 +170,8 @@ void XGUI_ViewerProxy::onTryCloseView(AppElements_ViewWindow* theWnd) void XGUI_ViewerProxy::onDeleteView(AppElements_ViewWindow* theWnd) { + if (myWindowScale.contains(theWnd->v3dView())) + myWindowScale.remove (theWnd->v3dView()); emit deleteView(theWnd); } @@ -176,6 +179,8 @@ void XGUI_ViewerProxy::onViewCreated(ModuleBase_IViewWindow* theWnd) { theWnd->viewPort()->installEventFilter(this); + myWindowScale.insert (theWnd->v3dView(), theWnd->v3dView()->Camera()->Scale()); + emit viewCreated(theWnd); } @@ -186,6 +191,8 @@ void XGUI_ViewerProxy::onViewCreated(AppElements_ViewWindow* theWnd) connect(theWnd, SIGNAL(vpTransformationFinished(AppElements_ViewWindow::OperationType)), this, SLOT(onViewTransformed(AppElements_ViewWindow::OperationType))); + myWindowScale.insert (theWnd->v3dView(), theWnd->v3dView()->Camera()->Scale()); + emit viewCreated(theWnd); } @@ -278,6 +285,12 @@ void XGUI_ViewerProxy::removeSelectionFilter(const Handle(SelectMgr_Filter)& the myWorkshop->displayer()->removeSelectionFilter(theFilter); } +//*************************************** +bool XGUI_ViewerProxy::hasSelectionFilter(const Handle(SelectMgr_Filter)& theFilter) +{ + return myWorkshop->displayer()->hasSelectionFilter(theFilter); +} + //*************************************** void XGUI_ViewerProxy::clearSelectionFilters() { @@ -307,3 +320,16 @@ void XGUI_ViewerProxy::onViewTransformed(AppElements_ViewWindow::OperationType t emit viewTransformed((int) theType); } + +//*************************************** +void XGUI_ViewerProxy::Zfitall() +{ + if (myWorkshop->isSalomeMode()) { + myWorkshop->salomeConnector()->viewer()->Zfitall(); + } else { + AppElements_Viewer* aViewer = myWorkshop->mainWindow()->viewer(); + AppElements_ViewWindow* aView = aViewer->activeViewWindow(); + if (aView) + aView->v3dView()->ZFitAll(); + } +} \ No newline at end of file