X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvSlicerManagerCommand.cxx;h=9e978324b038d586b63d61420267858ed71d7f1c;hb=HEAD;hp=d01abbb42dc38868035093357b90d48bd76886d9;hpb=0c99a00f9dfb4aa65dca28a55bc7c768b42f5559;p=clitk.git diff --git a/vv/vvSlicerManagerCommand.cxx b/vv/vvSlicerManagerCommand.cxx index d01abbb..9e97832 100644 --- a/vv/vvSlicerManagerCommand.cxx +++ b/vv/vvSlicerManagerCommand.cxx @@ -38,7 +38,6 @@ #include "vtkTransform.h" #include - //------------------------------------------------------------------------------ vvSlicerManagerCommand::vvSlicerManagerCommand() { @@ -74,7 +73,7 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, if (isi) { double x = isi->GetInteractor()->GetEventPosition()[0]; double y = isi->GetInteractor()->GetEventPosition()[1]; - double z; + double z(4000); int VisibleInWindow = this->FindSlicerNumber(isi->GetInteractor()->GetRenderWindow()); vtkRenderer* renderer=NULL; @@ -112,59 +111,59 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, this->SM->SetLocalColorWindowing(VisibleInWindow, bCtrlKey); return; } - if (KeyPress == "0") { - this->SM->SetPreset(0); + if (KeyPress == "0" || KeyPress == "KP_0") { + this->SM->SetPreset(WL_AUTO); this->SM->UpdateWindowLevel(); return; } - if (KeyPress == "1") { - this->SM->SetPreset(1); + if (KeyPress == "1" || KeyPress == "KP_1") { + this->SM->SetPreset(WL_HOUNSFIELD); this->SM->UpdateWindowLevel(); return; } - if (KeyPress == "2") { - this->SM->SetPreset(2); + if (KeyPress == "2" || KeyPress == "KP_2") { + this->SM->SetPreset(WL_SOFTTISSUE); this->SM->UpdateWindowLevel(); return; } - if (KeyPress == "3") { - this->SM->SetPreset(3); + if (KeyPress == "3" || KeyPress == "KP_3") { + this->SM->SetPreset(WL_LUNGS); this->SM->UpdateWindowLevel(); return; } - if (KeyPress == "4") { - this->SM->SetPreset(4); + if (KeyPress == "4" || KeyPress == "KP_4") { + this->SM->SetPreset(WL_BONES); this->SM->UpdateWindowLevel(); return; } - if (KeyPress == "5") { - this->SM->SetPreset(5); + if (KeyPress == "5" || KeyPress == "KP_5") { + this->SM->SetPreset(WL_HEAD); this->SM->UpdateWindowLevel(); return; } - if (KeyPress == "6") { + if (KeyPress == "6" || KeyPress == "KP_6") { this->SM->SetColorMap(0); this->SM->UpdateWindowLevel(); return; } - if (KeyPress == "7") { + if (KeyPress == "7" || KeyPress == "KP_7") { this->SM->SetColorMap(1); this->SM->UpdateWindowLevel(); return; } - if (KeyPress == "8") { + if (KeyPress == "8" || KeyPress == "KP_8") { this->SM->SetColorMap(2); this->SM->UpdateWindowLevel(); return; } - if (KeyPress == "9") { + if (KeyPress == "9" || KeyPress == "KP_9") { this->SM->SetColorMap(3); this->SM->UpdateWindowLevel(); 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; @@ -266,12 +265,13 @@ 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; } @@ -362,15 +362,32 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, 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, + double pLand[3]; pLand[0] = xWorld; pLand[1] = yWorld; pLand[2] = zWorld; + double ptLand[3]; + this->SM->GetSlicer(VisibleInWindow)->GetConcatenatedTransform()->TransformPoint(pLand, ptLand); + this->SM->AddNewLandmark(ptLand[0],ptLand[1],ptLand[2], this->SM->GetSlicer(VisibleInWindow)->GetTSlice()); - this->SM->GetSlicer(VisibleInWindow)->UpdateLandmarks(); + this->SM->GetSlicer(VisibleInWindow)->RemoveLandmarks(); + //this->SM->GetSlicer(VisibleInWindow)->DisplayLandmarks(); this->SM->Render(); } if (event == vtkCommand::PickEvent || event == vtkCommand::StartPickEvent) { @@ -406,7 +423,7 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller, this->SM->SetColorWindow(window*dx); this->SM->SetColorLevel(level-dy); - this->SM->SetPreset(6); + this->SM->SetPreset(WL_USER); this->SM->Render(); this->SM->UpdateWindowLevel(); return;