//# include <QWindowsStyle>
//#endif
+#ifdef __APPLE__
+#include <OpenGL/gl.h>
+#else
#include <GL/gl.h>
+#endif
// To avoid conflict between KeyPress from the X.h (define KeyPress 2)
// and QEvent::KeyPress (qevent.h)
mySelectionEnabled = true;
myCursorIsHand = false;
+ myPanningByBtn = false;
clearViewAspects();
}
int x1 = (int)( aEvent->x() + width()*delta/100 );
int y1 = (int)( aEvent->y() + height()*delta/100 );
myViewPort->zoom( x, y, x1, y1 );
+#if OCC_VERSION_LARGE <= 0x07000000
myViewPort->getView()->ZFitAll();
+#endif
emit vpTransformationFinished ( ZOOMVIEW );
}
}
if ( theEvent->button() == Qt::LeftButton )
{
Handle(AIS_InteractiveContext) ic = myModel->getAISContext();
- ic->Select();
+ ic->Select( Standard_True );
for ( ic->InitSelected(); ic->MoreSelected(); ic->NextSelected() )
{
TopoDS_Shape aShape = ic->SelectedShape();
}
if ( ic->NbSelected() == 0 ) myCurrPointType = myPrevPointType;
if ( mySetRotationPointDlg ) mySetRotationPointDlg->toggleChange();
- ic->CloseAllContexts();
+ ic->CloseAllContexts( Standard_True );
myOperation = NOTHING;
myViewPort->setCursor( myCursor );
myCursorIsHand = false;
}
+void OCCViewer_ViewWindow::onPanning()
+{
+ myPanningByBtn = true;
+ activatePanning();
+}
+
/*!
\brief Start panning operation.
if ( myRotationPointSelection )
{
Handle(AIS_InteractiveContext) ic = myModel->getAISContext();
- ic->CloseAllContexts();
+ ic->CloseAllContexts( Standard_True );
myOperation = NOTHING;
myViewPort->setCursor( myCursor );
myCursorIsHand = false;
if ( myRotationPointSelection )
{
Handle(AIS_InteractiveContext) ic = myModel->getAISContext();
- ic->CloseAllContexts();
+ ic->CloseAllContexts( Standard_True );
myOperation = NOTHING;
myViewPort->setCursor( myCursor );
myCursorIsHand = false;
case PANVIEW:
case ZOOMVIEW:
+#if OCC_VERSION_LARGE <= 0x07000000
myViewPort->getView()->ZFitAll();
- resetState();
- break;
+#endif
+ {
+ OCCViewer_ViewManager* aMgr = dynamic_cast<OCCViewer_ViewManager*>( getViewManager() );
+ bool isChained = aMgr->isChainedOperations();
+ bool isReset = !( myOperation==PANVIEW && myPanningByBtn && isChained ) || theEvent->button() == Qt::RightButton;
+ if( isReset )
+ resetState();
+ break;
+ }
case PANGLOBAL:
if ( theEvent->button() == Qt::LeftButton ) {
aAction = new QtxAction(tr("MNU_PAN_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_PAN" ) ),
tr( "MNU_PAN_VIEW" ), 0, this);
aAction->setStatusTip(tr("DSC_PAN_VIEW"));
- connect(aAction, SIGNAL(triggered()), this, SLOT(activatePanning()));
+ connect(aAction, SIGNAL(triggered()), this, SLOT(onPanning()));
toolMgr()->registerAction( aAction, PanId );
// Global Panning
gp_Pln pln (gp_Pnt(x, y, z), gp_Dir(dx, dy, dz));
double a, b, c, d;
pln.Coefficients(a, b, c, d);
-
+#if OCC_VERSION_LARGE > 0x07000000
+ Handle(Graphic3d_SequenceOfHClipPlane) aPlanes = view->ClipPlanes();
+ Graphic3d_SequenceOfHClipPlane::Iterator anIter (*aPlanes);
+ if(aPlanes->Size() > 0 ) {
+#else
Graphic3d_SequenceOfHClipPlane aPlanes = view->GetClipPlanes();
+ Graphic3d_SequenceOfHClipPlane::Iterator anIter (aPlanes);
if(aPlanes.Size() > 0 ) {
- Graphic3d_SequenceOfHClipPlane::Iterator anIter (aPlanes);
+#endif
Handle(Graphic3d_ClipPlane) aClipPlane = anIter.Value();
aClipPlane->SetEquation(pln);
aClipPlane->SetOn(Standard_True);
}
}
else {
+#if OCC_VERSION_LARGE > 0x07000000
+ Handle(Graphic3d_SequenceOfHClipPlane) aPlanes = view->ClipPlanes();
+ Graphic3d_SequenceOfHClipPlane::Iterator anIter (*aPlanes);
+#else
Graphic3d_SequenceOfHClipPlane aPlanes = view->GetClipPlanes();
Graphic3d_SequenceOfHClipPlane::Iterator anIter (aPlanes);
+#endif
for( ;anIter.More();anIter.Next() ){
Handle(Graphic3d_ClipPlane) aClipPlane = anIter.Value();
aClipPlane->SetOn(Standard_False);
{
Handle(V3d_View) view = myViewPort->getView();
bool res = false;
- Graphic3d_SequenceOfHClipPlane aPlanes = view->GetClipPlanes();
- Graphic3d_SequenceOfHClipPlane::Iterator anIter (aPlanes);
+#if OCC_VERSION_LARGE > 0x07000000
+ Handle(Graphic3d_SequenceOfHClipPlane) aPlanes = view->ClipPlanes();
+ Graphic3d_SequenceOfHClipPlane::Iterator anIter (*aPlanes);
+#else
+ Graphic3d_SequenceOfHClipPlane aPlanes = view->GetClipPlanes();
+ Graphic3d_SequenceOfHClipPlane::Iterator anIter (aPlanes);
+#endif
for( ;anIter.More();anIter.Next() ) {
Handle(Graphic3d_ClipPlane) aClipPlane = anIter.Value();
if(aClipPlane->IsOn()) {
#endif
getViewPort()->setAxialScale( anAxialScale[0], anAxialScale[1], anAxialScale[2] );
-
+#if OCC_VERSION_LARGE <= 0x07000000
aDestView->ZFitAll();
+#endif
aDestView->SetImmediateUpdate( Standard_True );
aDestView->Redraw();