void Zoom3D::StartLeftButtonAction() { DisableSpinMode(); // If shift is pressed, pan, otherwise rubber band zoom. The pan // action matches the Navigate2D/3D modes. Save which one we did so // we can issue the proper "End.." statement when the button is // released. if (Interactor->GetShiftKey()) { StartBoundingBox(); StartPan(); shiftPressed = true; } // NOTE: the shift and ctrl go into the rubberband zoom and affect // whether one gets a rectangle (shift) or zooms out (ctrl). At // this point the shift is intercepted above to pan which matches // the Navigate2D/3D modes. else { int x, y; Interactor->GetEventPosition(x, y); StartZoom(); StartRubberBand(x, y); } }
void Zoom3D::StartLeftButtonAction() { DisableSpinMode(); // // If ctrl or shift is pushed, pan, otherwise zoom. Save which one we // did so we can issue the proper "End.." statement when the button is // released. // if (Interactor->GetControlKey() || Interactor->GetShiftKey()) { StartBoundingBox(); StartPan(); ctrlOrShiftPushed = true; } else { int x, y; Interactor->GetEventPosition(x, y); StartZoom(); StartRubberBand(x, y); ctrlOrShiftPushed = false; } }
void FlyThrough::OnTimer(void) { vtkRenderWindowInteractor *rwi = Interactor; int Pos[2]; rwi->GetEventPosition(Pos); bool matchedUpState = true; switch (State) { case VTKIS_ROTATE: RotateAboutCamera3D(Pos[0], Pos[1]); rwi->CreateTimer(VTKI_TIMER_UPDATE); break; case VTKIS_PAN: PanCamera3D(Pos[0], Pos[1]); rwi->CreateTimer(VTKI_TIMER_UPDATE); break; case VTKIS_ZOOM: DollyCameraAndFocus3D(Pos[0], Pos[1]); rwi->CreateTimer(VTKI_TIMER_UPDATE); break; default: matchedUpState = false; break; } if (!matchedUpState && shouldSpin) { VisWindow *vw = proxy; if(!vw->GetSpinModeSuspended()) { if (vw->GetSpinMode()) { OldX = spinOldX; OldY = spinOldY; RotateAboutCamera3D(spinNewX, spinNewY); rwi->CreateTimer(VTKI_TIMER_UPDATE); } else { DisableSpinMode(); } } else if(vw->GetSpinMode()) { // Don't mess with the camera, just create another timer so // we keep getting into this method until spin mode is no // longer suspended. rwi->CreateTimer(VTKI_TIMER_UPDATE); } } }
void FlyThrough::StartMiddleButtonAction() { DisableSpinMode(); StartBoundingBox(); StartZoom(); }
void FlyThrough::StartLeftButtonAction() { DisableSpinMode(); StartBoundingBox(); // // If ctrl or shift is pushed, pan, otherwise rotate. Save which one we // did so we can issue the proper "End.." statement when the button is // released. // if (Interactor->GetControlKey()|| Interactor->GetShiftKey()) { StartPan(); ctrlOrShiftPushed = true; } else { StartRotate(); ctrlOrShiftPushed = false; } }