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