]> Creatis software - clitk.git/blobdiff - vv/vvBinaryImageOverlayActor.h
Debug RTStruct conversion with empty struc
[clitk.git] / vv / vvBinaryImageOverlayActor.h
index 5893158fa3472c670894a5a06a0600c656d12f29..2e575c316caf14d51f444c22cb274fa9d974bff5 100644 (file)
@@ -3,7 +3,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
@@ -14,7 +14,7 @@
 
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
-======================================================================-====*/
+===========================================================================**/
 #ifndef VVBINARYIMAGEOVERLAYACTOR_H
 #define VVBINARYIMAGEOVERLAYACTOR_H
 
@@ -27,24 +27,29 @@ class vtkActor;
 class vvImage;
 class vtkImageMapToRGBA;
 class vtkImageActor;
+class vtkImageReslice;
+class vtkTransform;
 
 //------------------------------------------------------------------------------
-class vvBinaryImageOverlayActor
+class vvBinaryImageOverlayActor : public itk::LightObject
 {
   //  Q_OBJECT
  public:
-  vvBinaryImageOverlayActor();
-  ~vvBinaryImageOverlayActor();
+  typedef vvBinaryImageOverlayActor Self;
+  typedef itk::SmartPointer<Self> Pointer;
+  itkNewMacro(Self);
 
   void SetSlicer(vvSlicer * slicer);
   void SetColor(double r, double g, double b);
   void SetOpacity(double d);
-  void SetImage(vvImage * image, double bg, bool modeBG=true);
+  void SetImage(vvImage::Pointer image, double bg, bool modeBG=true);
+  void SetDepth(double d) { mDepth = d; }
   void Initialize(bool IsVisible=true);
   void UpdateColor();
-  void UpdateSlice(int slicer, int slice);
+  void UpdateSlice(int slicer, int slice, bool force=false);
   void HideActors();
   void ShowActors();
+  void RemoveActors();
 
  protected:
   vvSlicer * mSlicer;
@@ -52,16 +57,19 @@ class vvBinaryImageOverlayActor
   int mTSlice;
   int mPreviousTSlice;
   int mPreviousSlice;
-  vvImage * mImage;
+  vvImage::Pointer mImage;
   std::vector<double> mColor;
   double mAlpha;
   double mBackgroundValue;
   double mForegroundValue;
   bool m_modeBG;
   vtkSmartPointer<vtkLookupTable> mColorLUT;
+  double mDepth;
 
   std::vector<vtkSmartPointer<vtkImageMapToRGBA> > mMapperList;
   std::vector<vtkSmartPointer<vtkImageActor> > mImageActorList;
+  vtkSmartPointer<vtkImageReslice> mFusionReslice;
+  vtkSmartPointer<vtkTransform> mConcatenatedFusionTransform;
 
   void ComputeExtent(int orientation, 
                     int slice, 
@@ -77,6 +85,10 @@ class vvBinaryImageOverlayActor
                                         vtkImageActor * actor, 
                                         double position);
 
+private:
+  vvBinaryImageOverlayActor();
+  ~vvBinaryImageOverlayActor();
+    
 }; // end class vvBinaryImageOverlayActor
 //------------------------------------------------------------------------------