Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Imaging/vtkImageBlend.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageBlend.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 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&); // Not implemented. 00158 void operator=(const vtkImageBlend&); // Not implemented. 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