VTK  9.1.0
vtkMultiBlockVolumeMapper.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkMultiBlockVolumeMapper.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=========================================================================*/
35#ifndef vtkMultiBlockVolumeMapper_h
36#define vtkMultiBlockVolumeMapper_h
37
38#include <vector> // For DataBlocks
39
40#include "vtkRenderingVolumeOpenGL2Module.h" // For export macro
41#include "vtkVolumeMapper.h"
42
44class vtkDataSet;
45class vtkImageData;
47class vtkRenderWindow;
49
50class VTKRENDERINGVOLUMEOPENGL2_EXPORT vtkMultiBlockVolumeMapper : public vtkVolumeMapper
51{
52public:
55 void PrintSelf(ostream& os, vtkIndent indent) override;
56
58
62 double* GetBounds() override;
64
65 void SelectScalarArray(int arrayNum) override;
66 void SelectScalarArray(char const* arrayName) override;
67 void SetScalarMode(int ScalarMode) override;
68 void SetArrayAccessMode(int accessMode) override;
69
76 void Render(vtkRenderer* ren, vtkVolume* vol) override;
77
82 void ReleaseGraphicsResources(vtkWindow* window) override;
84
86
90 vtkGetMacro(VectorMode, int);
92 vtkGetMacro(VectorComponent, int);
94
96
100 void SetBlendMode(int mode) override;
102
104
109
114 double arg1, double arg2, double arg3, double arg4, double arg5, double arg6) override;
115 void SetCroppingRegionPlanes(const double* planes) override;
116
120 void SetCroppingRegionFlags(int mode) override;
122
124
130
132
135 void SetTransfer2DYAxisArray(const char* a);
137
138protected:
141
150
153
154private:
160 void LoadDataSet(vtkRenderer* ren, vtkVolume* vol);
161
170 void CreateMappers(vtkDataObjectTree* input, vtkRenderer* ren, vtkVolume* vol);
171
172 vtkDataObjectTree* GetDataObjectTreeInput();
173
177 void ComputeBounds();
178
182 void SortMappers(vtkRenderer* ren, vtkMatrix4x4* volumeMat);
183
184 void ClearMappers();
185
189 vtkSmartVolumeMapper* CreateMapper();
190
192 void operator=(const vtkMultiBlockVolumeMapper&) = delete;
193
195
196 typedef std::vector<vtkSmartVolumeMapper*> MapperVec;
197 MapperVec Mappers;
198 vtkSmartVolumeMapper* FallBackMapper;
199
200 vtkMTimeType BlockLoadingTime;
201 vtkMTimeType BoundsComputeTime;
202
203 int VectorMode;
204 int VectorComponent;
205 int RequestedRenderMode;
206
207 char* Transfer2DYAxisArray;
208};
209#endif
double * GetBounds() override
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax,...
provides implementation for most abstract methods in the superclass vtkCompositeDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:166
topologically and geometrically regular array of data
Definition: vtkImageData.h:157
a simple class to control print indentation
Definition: vtkIndent.h:113
Store vtkAlgorithm input/output information.
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:145
Composite dataset that organizes datasets into blocks.
Mapper to render volumes defined as vtkMultiBlockDataSet.
void SetCropping(vtkTypeBool mode) override
Cropping API from vtkVolumeMapper.
int FillInputPortInformation(int port, vtkInformation *info) override
Specify the type of data this mapper can handle.
void SetBlendMode(int mode) override
Blending mode API from vtkVolumeMapper.
void SetVectorMode(int mode)
VectorMode interface exposed from vtkSmartVolumeMapper.
void SetRequestedRenderMode(int)
Forwarded to internal vtkSmartVolumeMappers used.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetCroppingRegionFlags(int mode) override
void SetArrayAccessMode(int accessMode) override
API Superclass.
void SetCroppingRegionPlanes(double arg1, double arg2, double arg3, double arg4, double arg5, double arg6) override
void Render(vtkRenderer *ren, vtkVolume *vol) override
Render the current dataset.
void SetTransfer2DYAxisArray(const char *a)
void SetVectorComponent(int component)
VectorMode interface exposed from vtkSmartVolumeMapper.
void SelectScalarArray(char const *arrayName) override
API Superclass.
void ReleaseGraphicsResources(vtkWindow *window) override
void SetCroppingRegionPlanes(const double *planes) override
Cropping API from vtkVolumeMapper.
void SetScalarMode(int ScalarMode) override
API Superclass.
double * GetBounds() override
API Superclass.
~vtkMultiBlockVolumeMapper() override
static vtkMultiBlockVolumeMapper * New()
void SelectScalarArray(int arrayNum) override
API Superclass.
create a window for renderers to draw into
abstract specification for renderers
Definition: vtkRenderer.h:173
Adaptive volume mapper.
Abstract class for a volume mapper.
represents a volume (data & properties) in a rendered scene
Definition: vtkVolume.h:134
window superclass for vtkRenderWindow
Definition: vtkWindow.h:36
@ component
Definition: vtkX3D.h:181
@ info
Definition: vtkX3D.h:382
@ mode
Definition: vtkX3D.h:253
@ port
Definition: vtkX3D.h:453
int vtkTypeBool
Definition: vtkABI.h:69
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287