2 #include "OCCViewer_Utilities.h"
4 #include <OCCViewer_ViewFrame.h>
5 #include <OCCViewer_ViewModel.h>
6 #include <OCCViewer_ViewPort3d.h>
7 #include <SUIT_ViewManager.h>
9 #include <QtxActionToolMgr.h>
11 #include <V3d_View.hxx>
15 void OCCViewer_Utilities::setViewer2DMode( OCCViewer_Viewer* theViewer,
16 const OCCViewer_ViewWindow::Mode2dType& theMode )
18 OCCViewer_ViewFrame* aFrame = dynamic_cast<OCCViewer_ViewFrame*>
19 ( theViewer->getViewManager()->getActiveView() );
20 OCCViewer_ViewWindow* aView = aFrame ? aFrame->getView( OCCViewer_ViewFrame::MAIN_VIEW ) : 0;
25 aView->set2dMode( theMode );
26 bool is2dMode = theMode != OCCViewer_ViewWindow::No2dMode;
28 // enable/disable view actions
29 QList<int> aNo2dActions;
30 aNo2dActions << OCCViewer_ViewWindow::ChangeRotationPointId
31 << OCCViewer_ViewWindow::RotationId
32 << OCCViewer_ViewWindow::FrontId
33 << OCCViewer_ViewWindow::BackId
34 << OCCViewer_ViewWindow::TopId
35 << OCCViewer_ViewWindow::BottomId
36 << OCCViewer_ViewWindow::LeftId
37 << OCCViewer_ViewWindow::RightId
38 << OCCViewer_ViewWindow::AntiClockWiseId
39 << OCCViewer_ViewWindow::ClockWiseId
40 << OCCViewer_ViewWindow::ResetId;
42 QtxActionToolMgr* aToolMgr = aView->toolMgr();
44 for ( int i = 0, aNb = aNo2dActions.size(); i < aNb; i++ ) {
45 anAction = aToolMgr->action( aNo2dActions[i] );
47 anAction->setEnabled( !is2dMode );
50 // change view position
51 Handle(V3d_View) aView3d = aView->getViewPort()->getView();
52 if ( !aView3d.IsNull() ) {
54 case OCCViewer_ViewWindow::XYPlane:
55 aView3d->SetProj (V3d_Zpos);
57 case OCCViewer_ViewWindow::XZPlane:
58 aView3d->SetProj (V3d_Yneg);
60 case OCCViewer_ViewWindow::YZPlane:
61 aView3d->SetProj (V3d_Xpos);