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
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