X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvSlicerManagerCommand.cxx;h=f5d2b699bd495e881d533abaad7c20a43d511c83;hb=9c5f0e4d3d6b33e09d0413439ed7a867e3d85faa;hp=ab0e5f8b8835b0440a2fe170472d796cb9b9cc11;hpb=f4fc4c25f08ee080852aa6e75526bfa8116cc59a;p=clitk.git diff --git a/vv/vvSlicerManagerCommand.cxx b/vv/vvSlicerManagerCommand.cxx index ab0e5f8..f5d2b69 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,37 +109,37 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, return; } if (KeyPress == "w") { - this->SM->SetLocalColorWindowing(VisibleInWindow); + this->SM->SetLocalColorWindowing(VisibleInWindow, bCtrlKey); return; } if (KeyPress == "0") { - this->SM->SetPreset(0); + this->SM->SetPreset(WL_AUTO); this->SM->UpdateWindowLevel(); return; } if (KeyPress == "1") { - this->SM->SetPreset(1); + this->SM->SetPreset(WL_HOUNSFIELD); this->SM->UpdateWindowLevel(); return; } if (KeyPress == "2") { - this->SM->SetPreset(2); + this->SM->SetPreset(WL_SOFTTISSUE); this->SM->UpdateWindowLevel(); return; } if (KeyPress == "3") { - this->SM->SetPreset(3); + this->SM->SetPreset(WL_LUNGS); this->SM->UpdateWindowLevel(); return; } if (KeyPress == "4") { - this->SM->SetPreset(4); + this->SM->SetPreset(WL_BONES); this->SM->UpdateWindowLevel(); return; } if (KeyPress == "5") { - this->SM->SetPreset(5); + this->SM->SetPreset(WL_HEAD); this->SM->UpdateWindowLevel(); return; } @@ -163,7 +164,7 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, return; } if (KeyPress == "equal") { //keycodes are in vtkWin32RenderWindowInteractor - this->SM->SetPreset(7); + this->SM->SetPreset(WL_VENTILATION); //this->SM->SetColorMap(1); this->SM->UpdateWindowLevel(); return; @@ -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,9 +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]); + 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; @@ -262,17 +266,17 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, this->SM->UpdateSliceRange(VisibleInWindow); } + this->SM->EmitKeyPressed(KeyPress); } //All type of mouse events if (event == vtkCommand::LeaveEvent) { this->SM->GetSlicer(VisibleInWindow)->SetCurrentPosition(-VTK_DOUBLE_MAX,-VTK_DOUBLE_MAX, - -VTK_DOUBLE_MAX,this->SM->GetSlicer(VisibleInWindow)->GetTSlice()); + -VTK_DOUBLE_MAX,this->SM->GetSlicer(VisibleInWindow)->GetMaxCurrentTSlice()); this->SM->GetSlicer(VisibleInWindow)->Render(); return; } - //DD(event); // Mouse release HERE if (event == vtkCommand::EndPickEvent) { // DD(VisibleInWindow); @@ -358,8 +362,25 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, zWorld = z; break; } - this->SM->GetSlicer(VisibleInWindow)->SetCurrentPosition(xWorld,yWorld,zWorld, - this->SM->GetSlicer(VisibleInWindow)->GetTSlice()); + + // <<<<<<< HEAD + // this->SM->GetSlicer(VisibleInWindow)->SetCurrentPosition(xWorld,yWorld,zWorld, + // this->SM->GetSlicer(VisibleInWindow)->GetTSlice()); + // // We propagate the mouse position + // this->SM->EmitMousePositionUpdated(VisibleInWindow); + // ======= + double p[3]; p[0] = xWorld; p[1] = yWorld; p[2] = zWorld; + double pt[3]; + this->SM->GetSlicer(VisibleInWindow)->GetSlicingTransform()->TransformPoint(p, pt); + + this->SM->GetSlicer(VisibleInWindow)->SetCurrentPosition(pt[0],pt[1],pt[2], + this->SM->GetSlicer(VisibleInWindow)->GetMaxCurrentTSlice()); + + // We propagate the mouse position + this->SM->EmitMousePositionUpdated(VisibleInWindow); + + //>>>>>>> 921642d767beba2442dacc8fdb40dc36396e1b7d + if (newLandmark) { this->SM->AddLandmark(xWorld,yWorld,zWorld, this->SM->GetSlicer(VisibleInWindow)->GetTSlice()); @@ -399,9 +420,9 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, this->SM->SetColorWindow(window*dx); this->SM->SetColorLevel(level-dy); - this->SM->SetPreset(6); - this->SM->UpdateWindowLevel(); + this->SM->SetPreset(WL_USER); this->SM->Render(); + this->SM->UpdateWindowLevel(); return; } }