vtkImageBlend.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00080 #ifndef __vtkImageBlend_h
00081 #define __vtkImageBlend_h
00082
00083
00084 #include "vtkImageMultipleInputFilter.h"
00085
00086 class vtkImageStencilData;
00087
00088 #define VTK_IMAGE_BLEND_MODE_NORMAL 0
00089 #define VTK_IMAGE_BLEND_MODE_COMPOUND 1
00090
00091 class VTK_IMAGING_EXPORT vtkImageBlend : public vtkImageMultipleInputFilter
00092 {
00093 public:
00094 static vtkImageBlend *New();
00095 vtkTypeRevisionMacro(vtkImageBlend,vtkImageMultipleInputFilter);
00096 void PrintSelf(ostream& os, vtkIndent indent);
00097
00099
00101 void SetOpacity(int idx, double opacity);
00102 double GetOpacity(int idx);
00104
00106
00107 virtual void SetStencil(vtkImageStencilData*);
00108 vtkGetObjectMacro(Stencil, vtkImageStencilData);
00110
00112
00113 vtkSetClampMacro(BlendMode,int,
00114 VTK_IMAGE_BLEND_MODE_NORMAL,
00115 VTK_IMAGE_BLEND_MODE_COMPOUND );
00116 vtkGetMacro(BlendMode,int);
00117 void SetBlendModeToNormal()
00118 {this->SetBlendMode(VTK_IMAGE_BLEND_MODE_NORMAL);};
00119 void SetBlendModeToCompound()
00120 {this->SetBlendMode(VTK_IMAGE_BLEND_MODE_COMPOUND);};
00121 const char *GetBlendModeAsString(void);
00123
00125
00127 vtkSetMacro(CompoundThreshold,float);
00128 vtkGetMacro(CompoundThreshold,float);
00130
00131 protected:
00132 vtkImageBlend();
00133 ~vtkImageBlend();
00134
00135 void ComputeInputUpdateExtent(int inExt[6], int outExt[6],
00136 int whichInput);
00137
00138 void ExecuteInformation() {
00139 this->vtkImageMultipleInputFilter::ExecuteInformation(); };
00140
00141 void ExecuteInformation(vtkImageData **, vtkImageData *);
00142
00143 void ThreadedExecute(vtkImageData **inDatas,
00144 vtkImageData *outData,
00145 int extent[6],
00146 int id);
00147
00148 void ExecuteData(vtkDataObject *output);
00149
00150 vtkImageStencilData *Stencil;
00151 double *Opacity;
00152 int OpacityArrayLength;
00153 int BlendMode;
00154 float CompoundThreshold;
00155 int DataWasPassed;
00156 private:
00157 vtkImageBlend(const vtkImageBlend&);
00158 void operator=(const vtkImageBlend&);
00159 };
00160
00162 inline const char *vtkImageBlend::GetBlendModeAsString()
00163 {
00164 switch (this->BlendMode)
00165 {
00166 case VTK_IMAGE_BLEND_MODE_NORMAL:
00167 return "Normal";
00168 case VTK_IMAGE_BLEND_MODE_COMPOUND:
00169 return "Compound";
00170 default:
00171 return "Unknown Blend Mode";
00172 }
00173 }
00174
00175
00176 #endif
00177
00178
00179
00180