VTK
vtkSmartVolumeMapper.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkSmartVolumeMapper.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=========================================================================*/
79#ifndef vtkSmartVolumeMapper_h
80#define vtkSmartVolumeMapper_h
81
82#include "vtkRenderingVolumeOpenGL2Module.h" // For export macro
83#include "vtkVolumeMapper.h"
84#include "vtkImageReslice.h" // for VTK_RESLICE_NEAREST, VTK_RESLICE_CUBIC
85
90class vtkRenderWindow;
91class vtkVolume;
94
95class VTKRENDERINGVOLUMEOPENGL2_EXPORT vtkSmartVolumeMapper : public vtkVolumeMapper
96{
97public:
100 void PrintSelf( ostream& os, vtkIndent indent );
101
103
113 vtkSetMacro( FinalColorWindow, float );
115
117
120 vtkGetMacro( FinalColorWindow, float );
122
124
131 vtkSetMacro( FinalColorLevel, float );
133
135
138 vtkGetMacro( FinalColorLevel, float );
140
141// The possible values for the default and current render mode ivars
142 enum
143 {
144 DefaultRenderMode=0,
145#if !defined(VTK_LEGACY_REMOVE)
146 RayCastAndTextureRenderMode=1,
147#endif // !VTK_LEGACY_REMOVE
148 RayCastRenderMode=2,
149#if !defined(VTK_LEGACY_REMOVE)
150 TextureRenderMode=3,
151#endif // !VTK_LEGACY_REMOVE
152 GPURenderMode=4,
153 UndefinedRenderMode=5,
154 OSPRayRenderMode=6,
155 InvalidRenderMode=7
156 };
157
163
170
177
184
190
192
195 vtkGetMacro( RequestedRenderMode, int );
197
203
205
212 vtkSetMacro( MaxMemoryInBytes, vtkIdType );
213 vtkGetMacro( MaxMemoryInBytes, vtkIdType );
215
217
223 vtkSetClampMacro( MaxMemoryFraction, float, 0.1f, 1.0f );
224 vtkGetMacro( MaxMemoryFraction, float );
226
228
232 vtkSetClampMacro(InterpolationMode, int,
234 vtkGetMacro(InterpolationMode, int);
239
246 vtkVolume *volume,
247 vtkVolume *volume2,
249 int blend_mode,
250 double viewDirection[3],
251 double viewUp[3] );
252
254
260 vtkSetClampMacro( InteractiveUpdateRate, double, 1.0e-10, 1.0e10 );
262
264
269 vtkGetMacro( InteractiveUpdateRate, double );
271
273
281 vtkSetClampMacro( InteractiveAdjustSampleDistances, int, 0, 1);
282 vtkGetMacro( InteractiveAdjustSampleDistances, int);
283 vtkBooleanMacro( InteractiveAdjustSampleDistances, int);
285
287
296 vtkSetClampMacro( AutoAdjustSampleDistances, int, 0, 1 );
297 vtkGetMacro( AutoAdjustSampleDistances, int );
298 vtkBooleanMacro( AutoAdjustSampleDistances, int );
300
302
309 vtkSetMacro( SampleDistance, float );
310 vtkGetMacro( SampleDistance, float );
312
318
326
328
336 {
337 DISABLED = -1,
338 MAGNITUDE = 0,
339 COMPONENT = 1,
340 };
341
342 vtkSetClampMacro(VectorMode, int, -1, 1);
343 vtkGetMacro(VectorMode, int);
344
345 vtkSetClampMacro(VectorComponent, int, 0, 3);
346 vtkGetMacro(VectorComponent, int);
348
349protected:
352
359
366
368
374
376
382
387
389
397
399
408
414
416
428
434 vtkVolume *vol);
435
441 vtkVolume *vol);
442
444
451
452
459
464
470
477
486
488
498
499private:
504 void SetupVectorMode(vtkVolume* vol);
505
506 vtkSmartVolumeMapper(const vtkSmartVolumeMapper&) VTK_DELETE_FUNCTION;
507 void operator=(const vtkSmartVolumeMapper&) VTK_DELETE_FUNCTION;
508
509 vtkOSPRayVolumeInterface *OSPRayMapper;
510};
511
512#endif
Ray casting performed on the GPU.
topologically and geometrically regular array of data
Definition: vtkImageData.h:46
Colapses components with magnitude function.
Resamples an image to be larger or smaller.
a simple class to control print indentation
Definition: vtkIndent.h:40
Removes link dependence on optional ospray module.
create a window for renderers to draw into
abstract specification for renderers
Definition: vtkRenderer.h:64
Adaptive volume mapper.
int Initialized
Initialization variables.
int VectorMode
VectorMode is a special rendering mode for 3-component vectors which makes use of GPURayCastMapper's ...
int RequestedRenderMode
The requested render mode is used to compute the current render mode.
void ReleaseGraphicsResources(vtkWindow *)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Release any graphics resources that are being...
int GetLastUsedRenderMode()
This will return the render mode used during the previous call to Render().
vtkImageResample * GPUResampleFilter
This is the resample filter that may be used if we need to create a low resolution version of the vol...
vtkFixedPointVolumeRayCastMapper * RayCastMapper
vtkImageData * InputDataMagnitude
float SampleDistance
The distance between sample points along the ray.
vtkIdType MaxMemoryInBytes
GPU mapper-specific memory ivars.
void Render(vtkRenderer *, vtkVolume *)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Initialize rendering for this volume.
void Initialize(vtkRenderer *ren, vtkVolume *vol)
The initialize method.
int InitializedBlendMode
We need to keep track of the blend mode we had when we initialized because we need to reinitialize (a...
int AutoAdjustSampleDistances
Set whether or not the sample distance should be automatically calculated within the internal volume ...
void SetInterpolationModeToLinear()
void ConnectFilterInput(vtkImageResample *f)
Connect input of the vtkSmartVolumeMapper to the input of the internal resample filter by doing a sha...
void SetRequestedRenderModeToOSPRay()
Set the requested render mode to vtkSmartVolumeMapper::OSPRayRenderMode.
void CreateCanonicalView(vtkRenderer *ren, vtkVolume *volume, vtkVolume *volume2, vtkImageData *image, int blend_mode, double viewDirection[3], double viewUp[3])
This method can be used to render a representative view of the input data into the supplied image giv...
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
int InteractiveAdjustSampleDistances
If the InteractiveAdjustSampleDistances flag is enabled, vtkSmartVolumeMapper interactively sets and ...
void SetInterpolationModeToNearestNeighbor()
void SetRequestedRenderMode(int mode)
Set the requested render mode.
static vtkSmartVolumeMapper * New()
double InteractiveUpdateRate
If the DesiredUpdateRate of the vtkRenderWindow causing the Render is at or above this value,...
void ConnectMapperInput(vtkVolumeMapper *m)
Connect input of the vtkSmartVolumeMapper to the input of the internal volume mapper by doing a shall...
int InterpolationMode
Used for downsampling.
vtkTimeStamp SupportStatusCheckTime
void SetRequestedRenderModeToRayCast()
Set the requested render mode to vtkSmartVolumeMapper::RayCastRenderMode.
vtkGPUVolumeRayCastMapper * GPUMapper
void SetRequestedRenderModeToGPU()
Set the requested render mode to vtkSmartVolumeMapper::GPURenderMode.
vtkGPUVolumeRayCastMapper * GPULowResMapper
The three potential mappers.
float FinalColorWindow
Window / level ivars.
void SetRequestedRenderModeToDefault()
Set the requested render mode to vtkSmartVolumeMapper::DefaultRenderMode.
vtkImageMagnitude * ImageMagnitude
This filter is used to compute the magnitude of 3-component data.
void ComputeRenderMode(vtkRenderer *ren, vtkVolume *vol)
The method that computes the render mode from the requested render mode based on the support status f...
void SetInterpolationModeToCubic()
VectorModeType
VectorMode is a special rendering mode for 3-component vectors which makes use of GPURayCastMapper's ...
record modification and/or execution time
Definition: vtkTimeStamp.h:36
Abstract class for a volume mapper.
represents the common properties for rendering a volume.
represents a volume (data & properties) in a rendered scene
Definition: vtkVolume.h:51
window superclass for vtkRenderWindow
Definition: vtkWindow.h:35
@ mode
Definition: vtkX3D.h:247
@ image
Definition: vtkX3D.h:374
#define VTK_RESLICE_CUBIC
#define VTK_RESLICE_NEAREST
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
int vtkIdType
Definition: vtkType.h:287