]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/Visualization/ImageBlender.h
sphere widget done, finally
[cpPlugins.git] / lib / cpExtensions / Visualization / ImageBlender.h
1 #ifndef __CPEXTENSIONS__VISUALIZATION__IMAGEBLENDER__H__
2 #define __CPEXTENSIONS__VISUALIZATION__IMAGEBLENDER__H__
3
4 #include <cpExtensions/cpExtensions_Export.h>
5
6 #include <vector>
7
8 #include <vtkThreadedImageAlgorithm.h>
9
10 namespace cpExtensions
11 {
12   namespace Visualization
13   {
14     /**
15      * @note: Based on vtkImageWeightedSum
16      */
17     class cpExtensions_EXPORT ImageBlender
18       : public vtkThreadedImageAlgorithm
19     {
20     public:
21       typedef ImageBlender Self;
22       vtkTypeMacro( ImageBlender, vtkThreadedImageAlgorithm );
23
24     public:
25       static Self* New( );
26
27     protected:
28       ImageBlender( );
29       virtual ~ImageBlender( );
30
31       int RequestInformation(
32         vtkInformation* request,
33         vtkInformationVector** inputVector,
34         vtkInformationVector* outputVector
35         );
36       int RequestData(
37         vtkInformation* request,
38         vtkInformationVector** inputVector,
39         vtkInformationVector* outputVector
40         );
41       void ThreadedRequestData(
42         vtkInformation* request,
43         vtkInformationVector** inputVector,
44         vtkInformationVector* outputVector,
45         vtkImageData*** inData, vtkImageData** outData,
46         int outExt[ 6 ], int id
47         );
48       int FillInputPortInformation( int i, vtkInformation* info );
49
50     private:
51       // Purposely not implemented.
52       ImageBlender( const Self& other );
53       void operator=( const Self& other );
54
55     protected:
56       std::vector< double > m_Ranges;
57     };
58
59   } // ecapseman
60
61 } // ecapseman
62
63 #endif //  __CPEXTENSIONS__VISUALIZATION__IMAGEBLENDER__H__
64
65 // eof - $RCSfile$