]> Creatis software - clitk.git/blobdiff - vv/vvBinaryImageOverlayActor.h
remove tools (now in tests_dav)
[clitk.git] / vv / vvBinaryImageOverlayActor.h
index f33014ddd6c8426c1f5e1cfaccc3f554e4859ab2..0b02c6277c350ce2f7c9826afcf6deae080e3da6 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
 
@@ -29,20 +29,24 @@ class vtkImageMapToRGBA;
 class vtkImageActor;
 
 //------------------------------------------------------------------------------
-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 update(int slicer, int slice);
-  void hideActors();
-  void showActors();
-  void setColor(double r, double g, double b);
-  void setImage(vvImage::Pointer image, double bg);
-  void initialize();
+  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 SetDepth(double d) { mDepth = d; }
+  void Initialize(bool IsVisible=true);
+  void UpdateColor();
+  void UpdateSlice(int slicer, int slice, bool force=false);
+  void HideActors();
+  void ShowActors();
 
  protected:
   vvSlicer * mSlicer;
@@ -50,13 +54,17 @@ class vvBinaryImageOverlayActor
   int mTSlice;
   int mPreviousTSlice;
   int mPreviousSlice;
-  vvImage::Pointer mImage;
+  vvImage * mImage;
   std::vector<double> mColor;
   double mAlpha;
   double mBackgroundValue;
-  
-  std::vector<vtkImageMapToRGBA *> mMapperList;
-  std::vector<vtkImageActor*> mImageActorList;
+  double mForegroundValue;
+  bool m_modeBG;
+  vtkSmartPointer<vtkLookupTable> mColorLUT;
+  double mDepth;
+
+  std::vector<vtkSmartPointer<vtkImageMapToRGBA> > mMapperList;
+  std::vector<vtkSmartPointer<vtkImageActor> > mImageActorList;
 
   void ComputeExtent(int orientation, 
                     int slice, 
@@ -72,6 +80,10 @@ class vvBinaryImageOverlayActor
                                         vtkImageActor * actor, 
                                         double position);
 
+private:
+  vvBinaryImageOverlayActor();
+  ~vvBinaryImageOverlayActor();
+    
 }; // end class vvBinaryImageOverlayActor
 //------------------------------------------------------------------------------