]> Creatis software - clitk.git/blobdiff - vv/vvBinaryImageOverlayActor.h
Debug RTStruct conversion with empty struc
[clitk.git] / vv / vvBinaryImageOverlayActor.h
index e4e3be9be351d4f3533741e178dd0e0fdfdc29fc..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,22 +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 update(int slicer, int slice);
-  void hideActors();
-  void showActors();
-  void setColor(double r, double g, double b);
-  void setImage(vvImage::Pointer image);
-  void initialize();
+  void SetSlicer(vvSlicer * slicer);
+  void SetColor(double r, double g, double b);
+  void SetOpacity(double d);
+  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, bool force=false);
+  void HideActors();
+  void ShowActors();
+  void RemoveActors();
 
  protected:
   vvSlicer * mSlicer;
@@ -53,9 +60,16 @@ class vvBinaryImageOverlayActor
   vvImage::Pointer mImage;
   std::vector<double> mColor;
   double mAlpha;
-  
-  std::vector<vtkImageMapToRGBA *> mMapperList;
-  std::vector<vtkImageActor*> mImageActorList;
+  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, 
@@ -71,6 +85,10 @@ class vvBinaryImageOverlayActor
                                         vtkImageActor * actor, 
                                         double position);
 
+private:
+  vvBinaryImageOverlayActor();
+  ~vvBinaryImageOverlayActor();
+    
 }; // end class vvBinaryImageOverlayActor
 //------------------------------------------------------------------------------