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

dox/Rendering/vtkVolumeMapper.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkVolumeMapper.h,v $ 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 =========================================================================*/ 00027 #ifndef __vtkVolumeMapper_h 00028 #define __vtkVolumeMapper_h 00029 00030 #include "vtkAbstractVolumeMapper.h" 00031 00032 class vtkRenderer; 00033 class vtkVolume; 00034 class vtkImageData; 00035 00036 #define VTK_CROP_SUBVOLUME 0x0002000 00037 #define VTK_CROP_FENCE 0x2ebfeba 00038 #define VTK_CROP_INVERTED_FENCE 0x5140145 00039 #define VTK_CROP_CROSS 0x0417410 00040 #define VTK_CROP_INVERTED_CROSS 0x7be8bef 00041 00042 class vtkWindow; 00043 class vtkImageClip; 00044 00045 class VTK_RENDERING_EXPORT vtkVolumeMapper : public vtkAbstractVolumeMapper 00046 { 00047 public: 00048 vtkTypeRevisionMacro(vtkVolumeMapper,vtkAbstractVolumeMapper); 00049 void PrintSelf( ostream& os, vtkIndent indent ); 00050 00052 00053 virtual void SetInput( vtkImageData * ); 00054 virtual void SetInput( vtkDataSet * ); 00055 vtkImageData *GetInput(); 00057 00059 00061 vtkSetClampMacro(Cropping,int,0,1); 00062 vtkGetMacro(Cropping,int); 00063 vtkBooleanMacro(Cropping,int); 00065 00067 00070 vtkSetVector6Macro( CroppingRegionPlanes, double ); 00071 vtkGetVectorMacro( CroppingRegionPlanes, double, 6 ); 00073 00075 00077 vtkGetVectorMacro( VoxelCroppingRegionPlanes, double, 6 ); 00079 00081 00090 vtkSetClampMacro( CroppingRegionFlags, int, 0x0, 0x7ffffff ); 00091 vtkGetMacro( CroppingRegionFlags, int ); 00092 void SetCroppingRegionFlagsToSubVolume() 00093 {this->SetCroppingRegionFlags( VTK_CROP_SUBVOLUME );}; 00094 void SetCroppingRegionFlagsToFence() 00095 {this->SetCroppingRegionFlags( VTK_CROP_FENCE );}; 00096 void SetCroppingRegionFlagsToInvertedFence() 00097 {this->SetCroppingRegionFlags( VTK_CROP_INVERTED_FENCE );}; 00098 void SetCroppingRegionFlagsToCross() 00099 {this->SetCroppingRegionFlags( VTK_CROP_CROSS );}; 00100 void SetCroppingRegionFlagsToInvertedCross() 00101 {this->SetCroppingRegionFlags( VTK_CROP_INVERTED_CROSS );}; 00103 00104 //BTX 00105 00108 virtual void Render(vtkRenderer *ren, vtkVolume *vol)=0; 00109 00114 virtual void ReleaseGraphicsResources(vtkWindow *) {}; 00115 00116 //ETX 00117 00119 00121 virtual void SetUseImageClipper(int); 00122 vtkGetMacro(UseImageClipper, int ); 00123 vtkBooleanMacro(UseImageClipper, int ); 00125 00126 protected: 00127 vtkVolumeMapper(); 00128 ~vtkVolumeMapper(); 00129 00130 // Cropping variables, and a method for converting the world 00131 // coordinate cropping region planes to voxel coordinates 00132 int Cropping; 00133 double CroppingRegionPlanes[6]; 00134 double VoxelCroppingRegionPlanes[6]; 00135 int CroppingRegionFlags; 00136 void ConvertCroppingRegionPlanesToVoxels(); 00137 00138 // Clipper used on input to ensure it is the right size 00139 int UseImageClipper; 00140 vtkImageClip *ImageClipper; 00141 00142 00143 private: 00144 vtkVolumeMapper(const vtkVolumeMapper&); // Not implemented. 00145 void operator=(const vtkVolumeMapper&); // Not implemented. 00146 }; 00147 00148 00149 #endif 00150 00151