VTK  9.5.20250718
vtkMultiBlockVolumeMapper.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
23#ifndef vtkMultiBlockVolumeMapper_h
24#define vtkMultiBlockVolumeMapper_h
25
26#include <vector> // For DataBlocks
27
28#include "vtkNew.h" // for ivar
29#include "vtkRenderingVolumeOpenGL2Module.h" // For export macro
30#include "vtkVolumeMapper.h"
31#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
32
33VTK_ABI_NAMESPACE_BEGIN
35class vtkDataSet;
36class vtkImageData;
37class vtkMatrix4x4;
39class vtkRenderWindow;
41
42class VTKRENDERINGVOLUMEOPENGL2_EXPORT VTK_MARSHALAUTO vtkMultiBlockVolumeMapper
43 : public vtkVolumeMapper
44{
45public:
48 void PrintSelf(ostream& os, vtkIndent indent) override;
49
51
55 double* GetBounds() override;
57
58 void SelectScalarArray(int arrayNum) override;
59 void SelectScalarArray(char const* arrayName) override;
60 void SetScalarMode(int ScalarMode) override;
61 void SetArrayAccessMode(int accessMode) override;
62
69 void Render(vtkRenderer* ren, vtkVolume* vol) override;
70
75 void ReleaseGraphicsResources(vtkWindow* window) override;
77
79
82 void SetVectorMode(int mode);
83 vtkGetMacro(VectorMode, int);
84 void SetVectorComponent(int component);
85 vtkGetMacro(VectorComponent, int);
87
89
93 void SetBlendMode(int mode) override;
95
97
101 void SetComputeNormalFromOpacity(bool val) override;
103
105
109 vtkGetMacro(GlobalIlluminationReach, float);
111
113
117 vtkGetMacro(VolumetricScatteringBlending, float);
119
121
125 void SetCropping(vtkTypeBool mode) override;
126
131 double arg1, double arg2, double arg3, double arg4, double arg5, double arg6) override;
132 void SetCroppingRegionPlanes(const double* planes) override;
133
137 void SetCroppingRegionFlags(int mode) override;
139
141
147
149
152 void SetTransfer2DYAxisArray(const char* a);
154
155protected:
158
166 int FillInputPortInformation(int port, vtkInformation* info) override;
167
170
172
173private:
179 void LoadDataSet(vtkRenderer* ren, vtkVolume* vol);
180
189 void CreateMappers(vtkDataObjectTree* input, vtkRenderer* ren, vtkVolume* vol);
190
191 vtkDataObjectTree* GetDataObjectTreeInput();
192
196 void ComputeBounds();
197
201 void SortMappers(vtkRenderer* ren, vtkMatrix4x4* volumeMat);
202
203 void ClearMappers();
204
208 vtkSmartVolumeMapper* CreateMapper();
209
211 void operator=(const vtkMultiBlockVolumeMapper&) = delete;
212
214
215 typedef std::vector<vtkSmartVolumeMapper*> MapperVec;
216 MapperVec Mappers;
217 vtkSmartVolumeMapper* FallBackMapper;
218
219 vtkMTimeType BlockLoadingTime;
220 vtkMTimeType BoundsComputeTime;
221
222 int VectorMode;
223 int VectorComponent;
224 int RequestedRenderMode;
225
229 float GlobalIlluminationReach = 0.0;
230
234 float VolumetricScatteringBlending = 0.0;
235
236 char* Transfer2DYAxisArray;
237};
238VTK_ABI_NAMESPACE_END
239#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:165
topologically and geometrically regular array of data
a simple class to control print indentation
Definition vtkIndent.h:108
Store vtkAlgorithm input/output information.
represent and manipulate 4x4 transformation matrices
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 SetComputeNormalFromOpacity(bool val) override
ComputeNormalFromOpacity exposed.
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 SetVolumetricScatteringBlending(float val)
This parameter controls the blending between surfacic approximation and volumetric multi-scattering.
void SelectScalarArray(char const *arrayName) override
API Superclass.
void ReleaseGraphicsResources(vtkWindow *window) override
void SetGlobalIlluminationReach(float val)
This parameter acts as a balance between localness and globalness of shadows.
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.
Allocate and hold a VTK object.
Definition vtkNew.h:167
create a window for renderers to draw into
abstract specification for renderers
Adaptive volume mapper.
Abstract class for a volume mapper.
represents a volume (data & properties) in a rendered scene
Definition vtkVolume.h:130
window superclass for vtkRenderWindow
Definition vtkWindow.h:48
int vtkTypeBool
Definition vtkABI.h:64
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287
#define VTK_MARSHALAUTO