VTK
vtkVolumeMapper.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkVolumeMapper.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
27 #ifndef vtkVolumeMapper_h
28 #define vtkVolumeMapper_h
29 
30 #include "vtkRenderingVolumeModule.h" // For export macro
32 
33 class vtkRenderer;
34 class vtkVolume;
35 class vtkImageData;
36 
37 #define VTK_CROP_SUBVOLUME 0x0002000
38 #define VTK_CROP_FENCE 0x2ebfeba
39 #define VTK_CROP_INVERTED_FENCE 0x5140145
40 #define VTK_CROP_CROSS 0x0417410
41 #define VTK_CROP_INVERTED_CROSS 0x7be8bef
42 
43 class vtkWindow;
44 
46 {
47 public:
49  void PrintSelf( ostream& os, vtkIndent indent );
50 
52 
53  virtual void SetInputData( vtkImageData * );
54  virtual void SetInputData( vtkDataSet * );
57 
59 
65  vtkSetMacro( BlendMode, int );
67  { this->SetBlendMode( vtkVolumeMapper::COMPOSITE_BLEND ); }
69  { this->SetBlendMode( vtkVolumeMapper::MAXIMUM_INTENSITY_BLEND ); }
71  { this->SetBlendMode( vtkVolumeMapper::MINIMUM_INTENSITY_BLEND ); }
73  { this->SetBlendMode( vtkVolumeMapper::ADDITIVE_BLEND ); }
74  vtkGetMacro( BlendMode, int );
76 
78 
80  vtkSetClampMacro(Cropping,int,0,1);
81  vtkGetMacro(Cropping,int);
82  vtkBooleanMacro(Cropping,int);
84 
86 
89  vtkSetVector6Macro( CroppingRegionPlanes, double );
90  vtkGetVectorMacro( CroppingRegionPlanes, double, 6 );
92 
94 
96  vtkGetVectorMacro( VoxelCroppingRegionPlanes, double, 6 );
98 
100 
109  vtkSetClampMacro( CroppingRegionFlags, int, 0x0, 0x7ffffff );
110  vtkGetMacro( CroppingRegionFlags, int );
112  {this->SetCroppingRegionFlags( VTK_CROP_SUBVOLUME );};
114  {this->SetCroppingRegionFlags( VTK_CROP_FENCE );};
116  {this->SetCroppingRegionFlags( VTK_CROP_INVERTED_FENCE );};
118  {this->SetCroppingRegionFlags( VTK_CROP_CROSS );};
120  {this->SetCroppingRegionFlags( VTK_CROP_INVERTED_CROSS );};
122 
123 //BTX
124 
127  virtual void Render(vtkRenderer *ren, vtkVolume *vol)=0;
128 
134 
135  enum
136  {
140  ADDITIVE_BLEND
141  };
142 //ETX
143 
144 protected:
147 
149 
150  // Cropping variables, and a method for converting the world
151  // coordinate cropping region planes to voxel coordinates
152  int Cropping;
153  double CroppingRegionPlanes[6];
154  double VoxelCroppingRegionPlanes[6];
157 
159 
160 private:
161  vtkVolumeMapper(const vtkVolumeMapper&); // Not implemented.
162  void operator=(const vtkVolumeMapper&); // Not implemented.
163 };
164 
165 
166 #endif
167 
168 
vtkVolumeMapper::MINIMUM_INTENSITY_BLEND
@ MINIMUM_INTENSITY_BLEND
Definition: vtkVolumeMapper.h:139
VTK_CROP_INVERTED_CROSS
#define VTK_CROP_INVERTED_CROSS
Definition: vtkVolumeMapper.h:41
vtkVolumeMapper
Abstract class for a volume mapper.
Definition: vtkVolumeMapper.h:46
vtkVolumeMapper::SetBlendModeToComposite
void SetBlendModeToComposite()
Definition: vtkVolumeMapper.h:66
VTK_CROP_FENCE
#define VTK_CROP_FENCE
Definition: vtkVolumeMapper.h:38
vtkVolumeMapper::FillInputPortInformation
virtual int FillInputPortInformation(int, vtkInformation *)
vtkVolume
represents a volume (data & properties) in a rendered scene
Definition: vtkVolume.h:50
vtkVolumeMapper::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkVolumeMapper::SetBlendModeToAdditive
void SetBlendModeToAdditive()
Definition: vtkVolumeMapper.h:72
vtkRenderingVolumeModule.h
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkVolumeMapper::BlendMode
int BlendMode
Definition: vtkVolumeMapper.h:148
vtkVolumeMapper::ReleaseGraphicsResources
virtual void ReleaseGraphicsResources(vtkWindow *)
Definition: vtkVolumeMapper.h:133
vtkVolumeMapper::~vtkVolumeMapper
~vtkVolumeMapper()
vtkVolumeMapper::MAXIMUM_INTENSITY_BLEND
@ MAXIMUM_INTENSITY_BLEND
Definition: vtkVolumeMapper.h:138
vtkVolumeMapper::GetInput
vtkImageData * GetInput()
vtkGetVectorMacro
#define vtkGetVectorMacro(name, type, count)
Definition: vtkSetGet.h:424
vtkVolumeMapper::SetCroppingRegionFlagsToSubVolume
void SetCroppingRegionFlagsToSubVolume()
Definition: vtkVolumeMapper.h:111
vtkAbstractVolumeMapper.h
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
vtkVolumeMapper::SetBlendModeToMinimumIntensity
void SetBlendModeToMinimumIntensity()
Definition: vtkVolumeMapper.h:70
vtkSetClampMacro
#define vtkSetClampMacro(name, type, min, max)
Definition: vtkSetGet.h:143
VTK_CROP_SUBVOLUME
#define VTK_CROP_SUBVOLUME
Definition: vtkVolumeMapper.h:37
vtkVolumeMapper::SetCroppingRegionFlagsToFence
void SetCroppingRegionFlagsToFence()
Definition: vtkVolumeMapper.h:113
vtkVolumeMapper::ConvertCroppingRegionPlanesToVoxels
void ConvertCroppingRegionPlanesToVoxels()
VTK_CROP_CROSS
#define VTK_CROP_CROSS
Definition: vtkVolumeMapper.h:40
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkVolumeMapper::Render
virtual void Render(vtkRenderer *ren, vtkVolume *vol)=0
VTK_CROP_INVERTED_FENCE
#define VTK_CROP_INVERTED_FENCE
Definition: vtkVolumeMapper.h:39
vtkVolumeMapper::SetInputData
virtual void SetInputData(vtkDataSet *)
vtkVolumeMapper::COMPOSITE_BLEND
@ COMPOSITE_BLEND
Definition: vtkVolumeMapper.h:137
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkVolumeMapper::SetCroppingRegionFlagsToInvertedCross
void SetCroppingRegionFlagsToInvertedCross()
Definition: vtkVolumeMapper.h:119
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkVolumeMapper::vtkVolumeMapper
vtkVolumeMapper()
vtkVolumeMapper::SetCroppingRegionFlagsToCross
void SetCroppingRegionFlagsToCross()
Definition: vtkVolumeMapper.h:117
vtkVolumeMapper::Cropping
int Cropping
Definition: vtkVolumeMapper.h:152
vtkVolumeMapper::SetBlendModeToMaximumIntensity
void SetBlendModeToMaximumIntensity()
Definition: vtkVolumeMapper.h:68
vtkAbstractVolumeMapper
Abstract class for a volume mapper.
Definition: vtkAbstractVolumeMapper.h:38
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkSetVector6Macro
#define vtkSetVector6Macro(name, type)
Definition: vtkSetGet.h:360
vtkVolumeMapper::ADDITIVE_BLEND
@ ADDITIVE_BLEND
Definition: vtkVolumeMapper.h:140
vtkVolumeMapper::SetInputData
virtual void SetInputData(vtkImageData *)
vtkVolumeMapper::SetCroppingRegionFlagsToInvertedFence
void SetCroppingRegionFlagsToInvertedFence()
Definition: vtkVolumeMapper.h:115
vtkVolumeMapper::CroppingRegionFlags
int CroppingRegionFlags
Definition: vtkVolumeMapper.h:155
VTKRENDERINGVOLUME_EXPORT
#define VTKRENDERINGVOLUME_EXPORT
Definition: vtkRenderingVolumeModule.h:15