2 #include "OCCViewer_Utilities.h"
3 #include "OCCViewer_ViewWidget.h"
5 #include <OCCViewer_ViewFrame.h>
6 #include <OCCViewer_ViewModel.h>
7 #include <SUIT_ViewManager.h>
9 #include <QtxActionToolMgr.h>
13 void OCCViewer_Utilities::setViewer2DMode( OCCViewer_Viewer* theViewer,
14 const OCCViewer_ViewWindow::Mode2dType& theMode )
16 OCCViewer_ViewFrame* aFrame = dynamic_cast<OCCViewer_ViewFrame*>
17 ( theViewer->getViewManager()->getActiveView() );
18 OCCViewer_ViewWindow* aView = aFrame ? aFrame->getView( OCCViewer_ViewFrame::MAIN_VIEW ) : 0;
23 aView->set2dMode( theMode );
24 bool is2dMode = theMode != OCCViewer_ViewWindow::No2dMode;
26 // enable/disable view actions
27 QList<int> aNo2dActions;
28 aNo2dActions << OCCViewer_ViewWindow::ChangeRotationPointId
29 << OCCViewer_ViewWindow::RotationId
30 << OCCViewer_ViewWindow::FrontId
31 << OCCViewer_ViewWindow::BackId
32 << OCCViewer_ViewWindow::TopId
33 << OCCViewer_ViewWindow::BottomId
34 << OCCViewer_ViewWindow::LeftId
35 << OCCViewer_ViewWindow::RightId
36 << OCCViewer_ViewWindow::AntiClockWiseId
37 << OCCViewer_ViewWindow::ClockWiseId
38 << OCCViewer_ViewWindow::ResetId;
40 QtxActionToolMgr* aToolMgr = aView->toolMgr();
42 for ( int i = 0, aNb = aNo2dActions.size(); i < aNb; i++ ) {
43 anAction = aToolMgr->action( aNo2dActions[i] );
45 anAction->setEnabled( !is2dMode );
48 // change view position
50 case OCCViewer_ViewWindow::XYPlane:
53 case OCCViewer_ViewWindow::XZPlane:
56 case OCCViewer_ViewWindow::YZPlane:
62 void OCCViewer_Utilities::setViewWidget2DMode( OCCViewer_ViewWidget* theViewWidget,
63 const OCCViewer_ViewWidget::Mode2dType& theMode )
69 theViewWidget->set2dMode( theMode );
70 bool is2dMode = theMode != OCCViewer_ViewWindow::No2dMode;
72 // enable/disable view actions
73 QList<OCCViewer_ViewWidget::ButtonsType> aNo2dActions;
74 aNo2dActions << OCCViewer_ViewWidget::RotationId
75 << OCCViewer_ViewWidget::FrontId
76 << OCCViewer_ViewWidget::BackId
77 << OCCViewer_ViewWidget::TopId
78 << OCCViewer_ViewWidget::BottomId
79 << OCCViewer_ViewWidget::LeftId
80 << OCCViewer_ViewWidget::RightId;
83 for ( int i = 0, aNb = aNo2dActions.size(); i < aNb; i++ ) {
84 anAction = theViewWidget->action( aNo2dActions[i] );
86 anAction->setVisible( !is2dMode );
89 // change view position
91 case OCCViewer_ViewWindow::XYPlane:
92 theViewWidget->onTopView();
94 case OCCViewer_ViewWindow::XZPlane:
95 theViewWidget->onLeftView();
97 case OCCViewer_ViewWindow::YZPlane:
98 theViewWidget->onFrontView();