VTK
dox/Imaging/General/vtkImageSlabReslice.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkImageSlabReslice.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00046 #ifndef __vtkImageSlabReslice_h
00047 #define __vtkImageSlabReslice_h
00048 
00049 #include "vtkImagingGeneralModule.h" // For export macro
00050 #include "vtkImageReslice.h"
00051 
00052 // For backwards compatibility
00053 #define VTK_IMAGESLAB_BLEND_MIN VTK_IMAGE_SLAB_MIN
00054 #define VTK_IMAGESLAB_BLEND_MAX VTK_IMAGE_SLAB_MAX
00055 #define VTK_IMAGESLAB_BLEND_MEAN VTK_IMAGE_SLAB_MEAN
00056 
00057 class VTKIMAGINGGENERAL_EXPORT vtkImageSlabReslice : public vtkImageReslice
00058 {
00059 public:
00060 
00061   static vtkImageSlabReslice *New();
00062   vtkTypeMacro(vtkImageSlabReslice, vtkImageReslice);
00063 
00065   virtual void PrintSelf(ostream& os, vtkIndent indent);
00066 
00068 
00069   vtkSetMacro( BlendMode, int );
00070   vtkGetMacro( BlendMode, int );
00071   void SetBlendModeToMin()  { this->SetBlendMode(VTK_IMAGE_SLAB_MIN ); }
00072   void SetBlendModeToMax()  { this->SetBlendMode(VTK_IMAGE_SLAB_MAX ); }
00073   void SetBlendModeToMean() { this->SetBlendMode(VTK_IMAGE_SLAB_MEAN); }
00075 
00077 
00080   vtkGetMacro( NumBlendSamplePoints, int );
00082 
00084 
00086   vtkSetMacro( SlabThickness, double );
00087   vtkGetMacro( SlabThickness, double );
00089 
00091 
00093   vtkSetMacro( SlabResolution, double );
00094   vtkGetMacro( SlabResolution, double );
00096 
00097 protected:
00098   vtkImageSlabReslice();
00099   ~vtkImageSlabReslice();
00100 
00102 
00105   virtual int RequestInformation(vtkInformation *, vtkInformationVector **,
00106                                  vtkInformationVector *);
00108 
00109   int    BlendMode; // can be MIN, MIP, MAX
00110   double SlabThickness;
00111   double SlabResolution;
00112   int    NumBlendSamplePoints;
00113 
00114 private:
00115   vtkImageSlabReslice(const vtkImageSlabReslice&);  // Not implemented.
00116   void operator=(const vtkImageSlabReslice&);  // Not implemented.
00117 };
00118 
00119 #endif