X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvSlicerManagerCommand.cxx;h=77b667e263bee3269a1f210e98a1f1bbf2c7cf0f;hb=0608e5a94e72e6c2ae9a1de81657b1f48ed61c3b;hp=09a95456a2a1fc574933b63ca3349fb3c81615ff;hpb=8e55faf6d71d39430ea3c9e93a54d2f0399371d9;p=clitk.git diff --git a/vv/vvSlicerManagerCommand.cxx b/vv/vvSlicerManagerCommand.cxx index 09a9545..77b667e 100644 --- a/vv/vvSlicerManagerCommand.cxx +++ b/vv/vvSlicerManagerCommand.cxx @@ -96,6 +96,7 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, if ( VisibleInWindow > -1 ) { if (event == vtkCommand::KeyPressEvent) { std::string KeyPress = isi->GetInteractor()->GetKeySym(); + bool bCtrlKey = isi->GetInteractor()->GetControlKey(); if (KeyPress == "Tab") { if(isi->GetInteractor()->GetShiftKey()) this->SM->PrevImage(VisibleInWindow); @@ -108,7 +109,7 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, return; } if (KeyPress == "w") { - this->SM->SetLocalColorWindowing(VisibleInWindow); + this->SM->SetLocalColorWindowing(VisibleInWindow, bCtrlKey); return; } if (KeyPress == "0") { @@ -185,7 +186,6 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, return; } if (KeyPress == "h") { - std::cout << "KeyPress == \"h\"\n"; this->SM->SetCursorAndCornerAnnotationVisibility(0); this->SM->Render(); return; @@ -210,15 +210,13 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, return; } if (KeyPress == "g") { - double* cursorPos = this->SM->GetSlicer(VisibleInWindow)->GetCursorPosition(); - this->SM->GetSlicer(VisibleInWindow)->SetCurrentPosition( - cursorPos[0],cursorPos[1],cursorPos[2],cursorPos[3]); - this->SM->UpdateViews(1,VisibleInWindow); - this->SM->UpdateLinked(VisibleInWindow); - return; - } - if (KeyPress == "o") { - this->SM->GetSlicer(VisibleInWindow)->SetCurrentPosition(0,0,0,0); + if(bCtrlKey) + this->SM->GetSlicer(VisibleInWindow)->SetCurrentPosition(0,0,0,0); + else { + double* cursorPos = this->SM->GetSlicer(VisibleInWindow)->GetCursorPosition(); + this->SM->GetSlicer(VisibleInWindow)->SetCurrentPosition( + cursorPos[0],cursorPos[1],cursorPos[2],cursorPos[3]); + } this->SM->UpdateViews(1,VisibleInWindow); this->SM->UpdateLinked(VisibleInWindow); return; @@ -268,6 +266,7 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, this->SM->UpdateSliceRange(VisibleInWindow); } + this->SM->EmitKeyPressed(KeyPress); } //All type of mouse events @@ -278,7 +277,6 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, return; } - //DD(event); // Mouse release HERE if (event == vtkCommand::EndPickEvent) { // DD(VisibleInWindow); @@ -364,8 +362,12 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, zWorld = z; break; } + this->SM->GetSlicer(VisibleInWindow)->SetCurrentPosition(xWorld,yWorld,zWorld, - this->SM->GetSlicer(VisibleInWindow)->GetTSlice()); + this->SM->GetSlicer(VisibleInWindow)->GetTSlice()); + // We propagate the mouse position + this->SM->EmitMousePositionUpdated(VisibleInWindow); + if (newLandmark) { this->SM->AddLandmark(xWorld,yWorld,zWorld, this->SM->GetSlicer(VisibleInWindow)->GetTSlice()); @@ -406,8 +408,8 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, this->SM->SetColorWindow(window*dx); this->SM->SetColorLevel(level-dy); this->SM->SetPreset(6); - this->SM->UpdateWindowLevel(); this->SM->Render(); + this->SM->UpdateWindowLevel(); return; } }