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

vtkImageMask.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkImageMask.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 =========================================================================*/
00036 #ifndef __vtkImageMask_h
00037 #define __vtkImageMask_h
00038 
00039 
00040 #include "vtkImageTwoInputFilter.h"
00041 
00042 class VTK_IMAGING_EXPORT vtkImageMask : public vtkImageTwoInputFilter
00043 {
00044 public:
00045   static vtkImageMask *New();
00046   vtkTypeRevisionMacro(vtkImageMask,vtkImageTwoInputFilter);
00047   void PrintSelf(ostream& os, vtkIndent indent);
00048 
00050 
00051   void SetMaskedOutputValue(int num, float *v);
00052   void SetMaskedOutputValue(float v) {this->SetMaskedOutputValue(1, &v);}
00053   void SetMaskedOutputValue(float v1, float v2) 
00054     {float v[2]; v[0]=v1; v[1]=v2; this->SetMaskedOutputValue(2, v);}
00055   void SetMaskedOutputValue(float v1, float v2, float v3) 
00056     {float v[3]; v[0]=v1; v[1]=v2; v[2]=v3; this->SetMaskedOutputValue(3, v);}
00057   float *GetMaskedOutputValue() {return this->MaskedOutputValue;}
00058   int GetMaskedOutputValueLength() {return this->MaskedOutputValueLength;}
00060 
00062 
00065   vtkSetClampMacro ( MaskAlpha, float, 0.0, 1.0 );
00066   vtkGetMacro ( MaskAlpha, float );
00068 
00070   void SetImageInput(vtkImageData *in) {this->SetInput1(in);}
00071 
00073   void SetMaskInput(vtkImageData *in) {this->SetInput2(in);}
00074   
00076 
00080   vtkSetMacro(NotMask,int);
00081   vtkGetMacro(NotMask,int);
00082   vtkBooleanMacro(NotMask, int);
00084   
00085 protected:
00086   vtkImageMask();
00087   ~vtkImageMask();
00088 
00089   float *MaskedOutputValue;
00090   int MaskedOutputValueLength;
00091   int NotMask;
00092   float MaskAlpha;
00093   
00094   void ExecuteInformation(vtkImageData **inDatas, vtkImageData *outData);
00095   void ExecuteInformation(){this->vtkImageTwoInputFilter::ExecuteInformation();};
00096  
00097   void ThreadedExecute(vtkImageData **inDatas, vtkImageData *outData,
00098                        int extent[6], int id);
00099 private:
00100   vtkImageMask(const vtkImageMask&);  // Not implemented.
00101   void operator=(const vtkImageMask&);  // Not implemented.
00102 };
00103 
00104 #endif
00105 
00106 
00107