}
}
-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.);
+ if (aView3d->Depth() < 0.1)
+ aView3d->DepthFitAll();
}
}
void XGUI_ViewerProxy::onDeleteView(AppElements_ViewWindow* theWnd)
{
+ if (myWindowScale.contains(theWnd->v3dView()))
+ myWindowScale.remove (theWnd->v3dView());
emit deleteView(theWnd);
}
{
theWnd->viewPort()->installEventFilter(this);
+ myWindowScale.insert (theWnd->v3dView(), theWnd->v3dView()->Camera()->Scale());
+
emit viewCreated(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);
}
}
}
+//***************************************
+bool XGUI_ViewerProxy::enableDrawMode(bool isEnabled)
+{
+ if (myWorkshop->isSalomeMode()) {
+ return myWorkshop->salomeConnector()->viewer()->enableDrawMode(isEnabled);
+ } else {
+ return myWorkshop->mainWindow()->viewer()->enableDrawMode(isEnabled);
+ }
+}
+
//***************************************
void XGUI_ViewerProxy::addSelectionFilter(const Handle(SelectMgr_Filter)& theFilter)
{
myWorkshop->displayer()->removeSelectionFilter(theFilter);
}
+//***************************************
+bool XGUI_ViewerProxy::hasSelectionFilter(const Handle(SelectMgr_Filter)& theFilter)
+{
+ return myWorkshop->displayer()->hasSelectionFilter(theFilter);
+}
+
//***************************************
void XGUI_ViewerProxy::clearSelectionFilters()
{
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) {
+ Handle(V3d_View) aView3d = aView->v3dView();
+ aView3d->ZFitAll();
+ if (aView3d->Depth() < 0.1)
+ aView3d->DepthFitAll();
+ }
+ }
+}
\ No newline at end of file