00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
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
00105
00108
virtual void Render(
vtkRenderer *ren,
vtkVolume *vol)=0;
00109
00114 virtual void ReleaseGraphicsResources(
vtkWindow *) {};
00115
00116
00117
00119
00121
virtual void SetUseImageClipper(
int);
00122 vtkGetMacro(UseImageClipper,
int );
00123 vtkBooleanMacro(UseImageClipper,
int );
00125
00126
protected:
00127 vtkVolumeMapper();
00128 ~vtkVolumeMapper();
00129
00130
00131
00132 int Cropping;
00133 double CroppingRegionPlanes[6];
00134 double VoxelCroppingRegionPlanes[6];
00135 int CroppingRegionFlags;
00136
void ConvertCroppingRegionPlanesToVoxels();
00137
00138
00139 int UseImageClipper;
00140 vtkImageClip *ImageClipper;
00141
00142
00143
private:
00144 vtkVolumeMapper(
const vtkVolumeMapper&);
00145
void operator=(
const vtkVolumeMapper&);
00146 };
00147
00148
00149
#endif
00150
00151