]> Creatis software - clitk.git/blobdiff - vv/vvSlicerManagerCommand.cxx
Delete widget first, the image data after
[clitk.git] / vv / vvSlicerManagerCommand.cxx
index 5d252043bb0603c9f5f0f58419df63b9f0a3ff73..cb2a394ec5a57c5f0e002cb383a9c3e2ca2b3713 100644 (file)
@@ -85,9 +85,10 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller,
 
 
     if (event == vtkCommand::StartPickEvent && VisibleInWindow == -1) {
-      for (int i = 0; i < this->SM->NumberOfSlicers(); i++) {
+      for (int i = 0; i < this->SM->GetNumberOfSlicers(); i++) {
         if (this->SM->GetSlicer(i)->GetCursorVisibility()) {
           this->SM->GetSlicer(i)->SetCursorVisibility(0);
+          this->SM->GetSlicer(i)->SetCornerAnnotationVisibility(0);
           this->SM->GetSlicer(i)->Render();
         }
       }
@@ -184,10 +185,18 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller,
           return;
         }
         if (KeyPress == "h") {
-          this->SM->SetCursorVisibility(0);
+          this->SM->SetCursorAndCornerAnnotationVisibility(0);
           this->SM->Render();
           return;
         }
+        if (KeyPress == "x") {
+          for(int i=0; i<SM->GetNumberOfSlicers(); i++) {
+            SM->RemoveActor("overlay",0);
+            SM->SetColorMap(0);
+            SM->Render();
+          }
+          return;
+        }
         if (KeyPress == "u") {
           this->SM->Reload();
           this->SM->Render();
@@ -196,6 +205,7 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller,
         if (KeyPress == "r" || KeyPress=="R") {
           this->SM->GetSlicer(VisibleInWindow)->ResetCamera();
           this->SM->GetSlicer(VisibleInWindow)->Render();
+          this->SM->UpdateLinkedNavigation( this->SM->GetSlicer(VisibleInWindow) );
           return;
         }
         if (KeyPress == "g") {
@@ -217,18 +227,12 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller,
           return;
         }
         if (KeyPress == "Up") {
-          DD("------------ up");
           this->SM->GetSlicer(VisibleInWindow)->SetSlice(this->SM->GetSlicer(VisibleInWindow)->GetSlice()+1);
-          DD("------------ after set slice");
-          this->SM->UpdateInfoOnCursorPosition(VisibleInWindow);
-          DD("------------ after UpdateInfoOnCursorPosition");
           this->SM->UpdateSlice(VisibleInWindow);
-          DD("------------ after updateslice");
         }
         if (KeyPress == "Down") {
           this->SM->GetSlicer(VisibleInWindow)->SetSlice(this->SM->GetSlicer(VisibleInWindow)->GetSlice()-1);
           this->SM->UpdateSlice(VisibleInWindow);
-          this->SM->UpdateInfoOnCursorPosition(VisibleInWindow);
         }
         if (KeyPress == "space") {
           newLandmark = true;
@@ -242,19 +246,16 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller,
           this->SM->GetSlicer(VisibleInWindow)->GetAnnotation()->SetText(2,"Sagital\n<slice>");
           this->SM->GetSlicer(VisibleInWindow)->SetSliceOrientation(0);
           this->SM->UpdateSliceRange(VisibleInWindow);
-          this->SM->UpdateInfoOnCursorPosition(VisibleInWindow);
         }
         if (KeyPress == "F3") {
           this->SM->GetSlicer(VisibleInWindow)->GetAnnotation()->SetText(2,"Coronal\n<slice>");
           this->SM->GetSlicer(VisibleInWindow)->SetSliceOrientation(1);
           this->SM->UpdateSliceRange(VisibleInWindow);
-          this->SM->UpdateInfoOnCursorPosition(VisibleInWindow);
         }
         if (KeyPress == "F4") {
           this->SM->GetSlicer(VisibleInWindow)->GetAnnotation()->SetText(2,"Axial\n<slice>");
           this->SM->GetSlicer(VisibleInWindow)->SetSliceOrientation(2);
           this->SM->UpdateSliceRange(VisibleInWindow);
-          this->SM->UpdateInfoOnCursorPosition(VisibleInWindow);
         }
 
       }
@@ -291,6 +292,11 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller,
         mStartSlicer = -1;
       }
 
+      if (event == vtkCommand::EndInteractionEvent) {
+       this->SM->Picked();
+        this->SM->UpdateLinkedNavigation(this->SM->GetSlicer(VisibleInWindow),true);
+        return;
+      }
     }
     if (VisibleInWindow > -1) {
       this->SM->Activated();
@@ -298,19 +304,21 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller,
       this->SM->GetSlicer(VisibleInWindow)->GetAnnotation()->SetVisibility(1);
 
       if (event == vtkCommand::MouseWheelForwardEvent && !isi->GetInteractor()->GetControlKey()) {
+       this->SM->Picked();
         this->SM->GetSlicer(VisibleInWindow)->SetSlice(this->SM->GetSlicer(VisibleInWindow)->GetSlice()+1);
         this->SM->UpdateSlice(VisibleInWindow);
-        this->SM->UpdateInfoOnCursorPosition(VisibleInWindow);
       } else if (event == vtkCommand::MouseWheelForwardEvent && isi->GetInteractor()->GetControlKey()) {
         double factor = 2;
         this->Dolly(pow((double)1.1, factor),isi->GetInteractor());
+        Execute(caller, vtkCommand::EndInteractionEvent, NULL);
       } else if (event == vtkCommand::MouseWheelBackwardEvent && !isi->GetInteractor()->GetControlKey()) {
+       this->SM->Picked();
         this->SM->GetSlicer(VisibleInWindow)->SetSlice(this->SM->GetSlicer(VisibleInWindow)->GetSlice()-1);
         this->SM->UpdateSlice(VisibleInWindow);
-        this->SM->UpdateInfoOnCursorPosition(VisibleInWindow);
       } else if (event == vtkCommand::MouseWheelBackwardEvent && isi->GetInteractor()->GetControlKey()) {
         double factor = -2;
         this->Dolly(pow((double)1.1, factor),isi->GetInteractor());
+        Execute(caller, vtkCommand::EndInteractionEvent, NULL);
       }
       double xWorld=0;
       double yWorld=0;
@@ -356,6 +364,7 @@ void vvSlicerManagerCommand::Execute(vtkObject *caller,
         this->SM->Render();
       }
       if (event == vtkCommand::PickEvent || event == vtkCommand::StartPickEvent) {
+       this->SM->Picked();
         this->SM->UpdateViews(1,VisibleInWindow);
         this->SM->UpdateLinked(VisibleInWindow);
         this->SM->UpdateInfoOnCursorPosition(VisibleInWindow);