]> Creatis software - clitk.git/blobdiff - vv/vvSlicerManager.h
remove tools (now in tests_dav)
[clitk.git] / vv / vvSlicerManager.h
index 13c6970206ee37551f767caac9629d1625ac7de0..aff339a42b0f846e388265369cc724fecf31ac9e 100644 (file)
@@ -4,7 +4,7 @@
 
   Authors belong to: 
   - University of LYON              http://www.universite-lyon.fr/
-  - Léon Bérard cancer center       http://oncora1.lyon.fnclcc.fr
+  - Léon Bérard cancer center       http://www.centreleonberard.fr
   - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
 
   This software is distributed WITHOUT ANY WARRANTY; without even
@@ -15,7 +15,7 @@
 
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
-  ======================================================================-====*/
+  ===========================================================================**/
 
 #ifndef VVSLICERMANAGER_H
 #define VVSLICERMANAGER_H
@@ -36,10 +36,11 @@ class vtkRenderWindow;
 class vtkPolyData;
 
 // VV
-#include "vvConstants.h"
 #include "clitkCommon.h"
 #include "vvImage.h"
 #include "vvMesh.h"
+#include "vvImageReader.h"
+
 class vvSlicer;
 class vvInteractorStyleNavigator;
 class vvImageReader;
@@ -58,9 +59,9 @@ class vvSlicerManager : public QObject {
     return mLastError;
   }
 
-  bool SetImage(std::string filename,LoadedImageType type, int n=0, unsigned int slice=0);
+  bool SetImage(std::string filename, vvImageReader::LoadedImageType type, int n=0, unsigned int slice=0);
   void SetImage(vvImage::Pointer image);
-  bool SetImages(std::vector<std::string> filenames, LoadedImageType type, int n=0);
+  bool SetImages(std::vector<std::string> filenames, vvImageReader::LoadedImageType type, int n=0);
 
   bool SetOverlay(std::string filename, int dim, std::string component);
   bool SetFusion(std::string filename, int dim, std::string component);
@@ -79,6 +80,7 @@ class vvSlicerManager : public QObject {
   std::string GetVFName()        { return mVFName; }
   std::string GetOverlayName()   { return mOverlayName; }
   std::string GetFusionName()    { return mFusionName; }
+  std::string GetListOfAbsoluteFilePathInOneString(const std::string &actorType);
 
   ///Switch between nearest neighbor and linear interpolation
   void ToggleInterpolation();
@@ -100,6 +102,7 @@ class vvSlicerManager : public QObject {
 
   void SetFilename(std::string f, int number=0);
 
+  void SetSliceOrientation(int slicer, int orientation);
   void SetTSlice(int slice);
   void SetNextTSlice(int originating_slicer);
   void SetPreviousTSlice(int originating_slicer);
@@ -108,9 +111,11 @@ class vvSlicerManager : public QObject {
   void GenerateDefaultLookupTable();
   void SetColorWindow(double s);
   void SetColorLevel(double s);
-  void SetLocalColorWindowing(const int slicer);
+  void SetOverlayColorWindow(double s);
+  void SetOverlayColorLevel(double s);
+  void SetLinkOverlayWindowLevel(bool b);
+  void SetLocalColorWindowing(const int slicer, const bool bCtrlKey);
   void SetOpacity(int i, double factor);
-  void SetColorMap();
   void SetColorMap(int colormap);
   void SetPreset(int preset);
   void SetOverlayColor(int color) {
@@ -119,6 +124,9 @@ class vvSlicerManager : public QObject {
   void SetFusionOpacity(int opacity) {
     mFusionOpacity = opacity;
   }
+  void SetFusionThresholdOpacity(int thresOpacity) {
+    mFusionThresOpacity = thresOpacity;
+  }
   void SetFusionColorMap(int colorMap) {
     mFusionColorMap = colorMap;
   }
@@ -131,33 +139,39 @@ class vvSlicerManager : public QObject {
 
   double GetColorWindow();
   double GetColorLevel();
+  double GetOverlayColorWindow() const;
+  double GetOverlayColorLevel() const;
+  bool GetLinkOverlayWindowLevel() const;
   int GetColorMap() {
     return mColorMap;
   }
   int GetPreset() {
     return mPreset;
   }
-  int GetOverlayColor() {
+  int GetOverlayColor() const {
     return mOverlayColor;
   }
-
-  int GetFusionOpacity() {
+  int GetFusionOpacity() const {
     return mFusionOpacity;
   }
-  int GetFusionColorMap() {
+  int GetFusionThresholdOpacity() const {
+    return mFusionThresOpacity;
+  }
+  int GetFusionColorMap() const {
     return mFusionColorMap;
   }
-  double GetFusionWindow() {
+  double GetFusionWindow() const {
     return mFusionWindow;
   }
-  double GetFusionLevel() {
+  double GetFusionLevel() const {
     return mFusionLevel;
   }
 
-  void SetCursorVisibility(int s);
+  void SetCursorAndCornerAnnotationVisibility(int s);
   void UpdateViews(int current, int slicer);
   void UpdateLinked(int slicer);
   void UpdateLinkedNavigation(vvSlicer *slicer, bool bPropagate=false);
+  void ResetTransformationToIdentity(const std::string actorType);
   void Render();
 
   void AddLink(std::string newId) {
@@ -166,6 +180,10 @@ class vvSlicerManager : public QObject {
   void RemoveLink(std::string oldId) {
     mLinkedId.remove(oldId); 
   }
+  
+  bool IsLinked() {
+    return mLinkedId.size() > 0;
+  }
 
   ///Remove the actor defined by its type and index (example: 3rd contour)
   void RemoveActor(const std::string& actor_type, int overlay_index);
@@ -199,36 +217,37 @@ signals :
   void UpdateVector(int display, double x, double y, double z, double value);
   void UpdateOverlay(int display, double valueOver, double valueRef);
   void UpdateFusion(int display, double valueFus);
-  void UpdateWindows(int slicer, int view, int slice);
+  void UpdateOrientation(int slicer, int orientation);
   void UpdateSlice(int slicer, int slice);
   void UpdateTSlice(int slicer, int slice);
   void UpdateSliceRange(int slice, int min, int max, int tmin, int tmax);
-  void WindowLevelChanged(double window, double level, int preset, int colormap);
+  void WindowLevelChanged();
   void UpdateLinkManager(std::string, int slicer, double x, double y, double z, int temps);
-  void UpdateLinkedNavigation(std::string, vvSlicerManager*);
+  void UpdateLinkedNavigation(std::string, vvSlicerManager*, vvSlicer*);
   void LandmarkAdded();
   void ChangeImageWithIndexOffset(vvSlicerManager *sm, int slicer, int offset);
   void LeftButtonReleaseSignal(int slicer);
   void AVerticalSliderHasChanged(int slicer, int slice);
 
 protected:
-  std::vector<vvSlicer*> mSlicers;
-  vvImageReader* mReader;
-  vvImageReader* mOverlayReader;
-  vvImageReader* mFusionReader;
+  std::vector< vtkSmartPointer<vvSlicer> > mSlicers;
+  vvImageReader::Pointer mReader;
+  vvImageReader::Pointer mOverlayReader;
+  vvImageReader::Pointer mFusionReader;
+  vvImageReader::Pointer mVectorReader;
   vvImage::Pointer mImage;
   vvImage::Pointer mVF;
-  vvImageReader* mVectorReader;
   int mColorMap;
   int mOverlayColor;
 
   int mFusionOpacity;
+  int mFusionThresOpacity;
   int mFusionColorMap;
   double mFusionWindow;
   double mFusionLevel;
 
   int mPreset;
-  LoadedImageType mType;
+  vvImageReader::LoadedImageType mType;
   std::string mVFComponent;
   std::string mOverlayComponent;
   std::string mFusionComponent;