Imaging/vtkImageBlend.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00092 #ifndef __vtkImageBlend_h
00093 #define __vtkImageBlend_h
00094
00095
00096 #include "vtkImageMultipleInputFilter.h"
00097
00098 class vtkImageStencilData;
00099
00100 #define VTK_IMAGE_BLEND_MODE_NORMAL 0
00101 #define VTK_IMAGE_BLEND_MODE_COMPOUND 1
00102
00103 class VTK_IMAGING_EXPORT vtkImageBlend : public vtkImageMultipleInputFilter
00104 {
00105 public:
00106 static vtkImageBlend *New();
00107 vtkTypeRevisionMacro(vtkImageBlend,vtkImageMultipleInputFilter);
00108 void PrintSelf(ostream& os, vtkIndent indent);
00109
00111
00113 void SetOpacity(int idx, double opacity);
00114 double GetOpacity(int idx);
00116
00118
00119 virtual void SetStencil(vtkImageStencilData*);
00120 vtkGetObjectMacro(Stencil, vtkImageStencilData);
00122
00124
00125 vtkSetClampMacro(BlendMode,int,
00126 VTK_IMAGE_BLEND_MODE_NORMAL,
00127 VTK_IMAGE_BLEND_MODE_COMPOUND );
00128 vtkGetMacro(BlendMode,int);
00129 void SetBlendModeToNormal()
00130 {this->SetBlendMode(VTK_IMAGE_BLEND_MODE_NORMAL);};
00131 void SetBlendModeToCompound()
00132 {this->SetBlendMode(VTK_IMAGE_BLEND_MODE_COMPOUND);};
00133 const char *GetBlendModeAsString(void);
00135
00137
00139 vtkSetMacro(CompoundThreshold,float);
00140 vtkGetMacro(CompoundThreshold,float);
00142
00143 protected:
00144 vtkImageBlend();
00145 ~vtkImageBlend();
00146
00147 void ComputeInputUpdateExtent(int inExt[6], int outExt[6],
00148 int whichInput);
00149
00150 void ExecuteInformation() {
00151 this->vtkImageMultipleInputFilter::ExecuteInformation(); };
00152
00153 void ExecuteInformation(vtkImageData **, vtkImageData *);
00154
00155 void ThreadedExecute(vtkImageData **inDatas,
00156 vtkImageData *outData,
00157 int extent[6],
00158 int id);
00159
00160 void ExecuteData(vtkDataObject *output);
00161
00162 vtkImageStencilData *Stencil;
00163 double *Opacity;
00164 int OpacityArrayLength;
00165 int BlendMode;
00166 float CompoundThreshold;
00167 int DataWasPassed;
00168 private:
00169 vtkImageBlend(const vtkImageBlend&);
00170 void operator=(const vtkImageBlend&);
00171 };
00172
00174 inline const char *vtkImageBlend::GetBlendModeAsString()
00175 {
00176 switch (this->BlendMode)
00177 {
00178 case VTK_IMAGE_BLEND_MODE_NORMAL:
00179 return "Normal";
00180 case VTK_IMAGE_BLEND_MODE_COMPOUND:
00181 return "Compound";
00182 default:
00183 return "Unknown Blend Mode";
00184 }
00185 }
00186
00187
00188 #endif
00189
00190
00191
00192