]> Creatis software - clitk.git/blobdiff - vv/vvSlicerManager.h
Merge branch 'master' of git.creatis.insa-lyon.fr:clitk
[clitk.git] / vv / vvSlicerManager.h
index e8a229b877d8dc3e9d669c58d429742401e2753d..4fc274c5e4723ce460984cc7850de60ea60dbc58 100644 (file)
@@ -52,6 +52,7 @@ class vvSlicerManager : public QObject {
   Q_OBJECT
 
   public:
+  typedef enum {WORLD_SLICING, VOXELS_SLICING} SlicingPresetType;
   vvSlicerManager(int numberOfSlicers);
   ~vvSlicerManager();
 
@@ -63,7 +64,7 @@ class vvSlicerManager : public QObject {
   void SetImage(vvImage::Pointer image);
   bool SetImages(std::vector<std::string> filenames, vvImageReader::LoadedImageType type, int n=0);
 
-  bool SetOverlay(std::string filename, int dim, std::string component);
+  bool SetOverlay(std::vector<std::string> filenames, int dim, std::string component, vvImageReader::LoadedImageType type);
   bool SetFusion(std::string filename, int dim, std::string component);
   ///Set a VF by loading it from the disk
   bool SetVF(std::string filename);
@@ -85,6 +86,10 @@ class vvSlicerManager : public QObject {
   ///Switch between nearest neighbor and linear interpolation
   void ToggleInterpolation();
   vvSlicer* GetSlicer(int i);
+  int GetSelectedSlicer() {
+    return mSelectedSlicer;
+  }
+  
   void UpdateSlicer(int num, bool state);
   void SetSlicerWindow(int i, vtkRenderWindow* RW);
   void SetInteractorStyleNavigator(int i,vtkInteractorStyle* style);
@@ -94,7 +99,7 @@ class vvSlicerManager : public QObject {
   vvImage::Pointer GetVF()     { return mVF; }
   int GetType()                { return mType; }
   void SetId(std::string id)   { mId = id; }
-  std::string GetId()          { return mId; }
+  std::string GetId()  const        { return mId; }
   int GetDimension() {
     if (mImage) return mImage->GetNumberOfDimensions();
     else return -1;
@@ -103,6 +108,7 @@ class vvSlicerManager : public QObject {
   void SetFilename(std::string f, int number=0);
 
   void SetSliceOrientation(int slicer, int orientation);
+  int GetTSlice();
   void SetTSlice(int slice);
   void SetNextTSlice(int originating_slicer);
   void SetPreviousTSlice(int originating_slicer);
@@ -136,34 +142,40 @@ class vvSlicerManager : public QObject {
   void SetFusionLevel(double level) {
     mFusionLevel = level;
   }
+  void SetFusionShowLegend(int show) {
+    mFusionShowLegend = show;
+  }
 
-  double GetColorWindow();
-  double GetColorLevel();
-  double GetOverlayColorWindow();
-  double GetOverlayColorLevel();
-  bool GetLinkOverlayWindowLevel();
+  double GetColorWindow() const;
+  double GetColorLevel() const;
+  double GetOverlayColorWindow() const;
+  double GetOverlayColorLevel() const;
+  bool GetLinkOverlayWindowLevel() const;
   int GetColorMap() {
     return mColorMap;
   }
-  int GetPreset() {
+  int GetPreset() const {
     return mPreset;
   }
-  int GetOverlayColor() {
+  SlicingPresetType GetSlicingPreset() {
+    return mSlicingPreset;
+  }
+  int GetOverlayColor() const {
     return mOverlayColor;
   }
-  int GetFusionOpacity() {
+  int GetFusionOpacity() const {
     return mFusionOpacity;
   }
-  int GetFusionThresholdOpacity() {
+  int GetFusionThresholdOpacity() const {
     return mFusionThresOpacity;
   }
-  int GetFusionColorMap() {
+  int GetFusionColorMap() const {
     return mFusionColorMap;
   }
-  double GetFusionWindow() {
+  double GetFusionWindow() const {
     return mFusionWindow;
   }
-  double GetFusionLevel() {
+  double GetFusionLevel() const {
     return mFusionLevel;
   }
 
@@ -181,6 +193,10 @@ class vvSlicerManager : public QObject {
     mLinkedId.remove(oldId); 
   }
   
+  std::list<std::string> GetLinks() const {
+    return mLinkedId;
+  }
+  
   bool IsLinked() {
     return mLinkedId.size() > 0;
   }
@@ -196,10 +212,13 @@ class vvSlicerManager : public QObject {
   void Activated();
   void Picked();
   void UpdateInfoOnCursorPosition(int slicer);
+  void EmitMousePositionUpdated(int slicer);
+  void EmitKeyPressed(std::string keyPress);
   void UpdateWindowLevel();
   void UpdateSlice(int slicer);
   void UpdateTSlice(int slicer);
   void UpdateSliceRange(int slicer);
+  void SetSlicingPreset(SlicingPresetType preset);
 
   vvLandmarks *GetLandmarks();
   void AddLandmark(float x,float y,float z,float t);
@@ -217,6 +236,8 @@ 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 MousePositionUpdatedSignal(int slicer);
+  void KeyPressedSignal(std::string KeyPressed);
   void UpdateOrientation(int slicer, int orientation);
   void UpdateSlice(int slicer, int slice);
   void UpdateTSlice(int slicer, int slice);
@@ -231,6 +252,7 @@ signals :
 
 protected:
   std::vector< vtkSmartPointer<vvSlicer> > mSlicers;
+  int mSelectedSlicer;
   vvImageReader::Pointer mReader;
   vvImageReader::Pointer mOverlayReader;
   vvImageReader::Pointer mFusionReader;
@@ -245,8 +267,10 @@ protected:
   int mFusionColorMap;
   double mFusionWindow;
   double mFusionLevel;
+  bool mFusionShowLegend;
 
   int mPreset;
+  SlicingPresetType mSlicingPreset;
   vvImageReader::LoadedImageType mType;
   std::string mVFComponent;
   std::string mOverlayComponent;