]> Creatis software - clitk.git/blobdiff - vv/vvSlicerManager.h
Use smart pointers for vvSlicers
[clitk.git] / vv / vvSlicerManager.h
index 785c2579f259b6386edf3c79e3f5b390a29a15c5..ea079c426bb359dd6ebf1d41282d1d8f31e7ce6c 100644 (file)
@@ -40,6 +40,8 @@ class vtkPolyData;
 #include "clitkCommon.h"
 #include "vvImage.h"
 #include "vvMesh.h"
+#include "vvImageReader.h"
+
 class vvSlicer;
 class vvInteractorStyleNavigator;
 class vvImageReader;
@@ -58,9 +60,8 @@ class vvSlicerManager : public QObject {
     return mLastError;
   }
 
-  bool SetImage(std::string filename,LoadedImageType type, int n=0);
+  bool SetImage(std::string filename,LoadedImageType type, int n=0, unsigned int slice=0);
   void SetImage(vvImage::Pointer image);
-  void SetExtractedImage(std::string filename, vvImage::Pointer image, int slice);
   bool SetImages(std::vector<std::string> filenames, LoadedImageType type, int n=0);
 
   bool SetOverlay(std::string filename, int dim, std::string component);
@@ -88,7 +89,7 @@ class vvSlicerManager : public QObject {
   void SetSlicerWindow(int i, vtkRenderWindow* RW);
   void SetInteractorStyleNavigator(int i,vtkInteractorStyle* style);
 
-  int NumberOfSlicers()        { return mSlicers.size(); }
+  int GetNumberOfSlicers()        { return mSlicers.size(); }
   vvImage::Pointer GetImage()  { return mImage; }
   vvImage::Pointer GetVF()     { return mVF; }
   int GetType()                { return mType; }
@@ -155,7 +156,7 @@ class vvSlicerManager : public QObject {
     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);
@@ -177,6 +178,7 @@ class vvSlicerManager : public QObject {
   void ReloadVF();
 
   void Activated();
+  void Picked();
   void UpdateInfoOnCursorPosition(int slicer);
   void UpdateWindowLevel();
   void UpdateSlice(int slicer);
@@ -190,9 +192,11 @@ class vvSlicerManager : public QObject {
   void PrevImage(int slicer);
   void LeftButtonReleaseEvent(int slicer);
   void VerticalSliderHasChanged(int slicer, int slice);
+  double GetScalarComponentAsDouble(vtkImageData *image, double X, double Y, double Z, int component=0);
 
 signals :
   void currentImageChanged(std::string id);
+  void currentPickedImageChanged(std::string id);
   void UpdatePosition(int visibility,double x, double y, double z, double X, double Y, double Z, double value);
   void UpdateVector(int display, double x, double y, double z, double value);
   void UpdateOverlay(int display, double valueOver, double valueRef);
@@ -210,13 +214,13 @@ signals :
   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;