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 
43 class vtkDataObjectTree;
44 class vtkDataSet;
45 class vtkImageData;
47 class vtkRenderWindow;
49 
50 class VTKRENDERINGVOLUMEOPENGL2_EXPORT vtkMultiBlockVolumeMapper : public vtkVolumeMapper
51 {
52 public:
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 
89  void SetVectorMode(int mode);
90  vtkGetMacro(VectorMode, int);
92  vtkGetMacro(VectorComponent, int);
94 
96 
100  void SetBlendMode(int mode) override;
102 
104 
108  void SetCropping(vtkTypeBool mode) override;
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 
138 protected:
141 
150 
153 
154 private:
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
vtkMultiBlockVolumeMapper::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *window) override
vtkVolumeMapper
Abstract class for a volume mapper.
Definition: vtkVolumeMapper.h:45
vtkMultiBlockVolumeMapper::SelectScalarArray
void SelectScalarArray(char const *arrayName) override
API Superclass.
vtkMultiBlockVolumeMapper::SetScalarMode
void SetScalarMode(int ScalarMode) override
API Superclass.
vtkDataObjectTree
provides implementation for most abstract methods in the superclass vtkCompositeDataSet
Definition: vtkDataObjectTree.h:47
vtkX3D::component
@ component
Definition: vtkX3D.h:181
vtkVolume
represents a volume (data & properties) in a rendered scene
Definition: vtkVolume.h:134
vtkMultiBlockVolumeMapper::SetBlendMode
void SetBlendMode(int mode) override
Blending mode API from vtkVolumeMapper.
vtkMultiBlockVolumeMapper
Mapper to render volumes defined as vtkMultiBlockDataSet.
Definition: vtkMultiBlockVolumeMapper.h:51
vtkMultiBlockVolumeMapper::Render
void Render(vtkRenderer *ren, vtkVolume *vol) override
Render the current dataset.
vtkMultiBlockDataSet
Composite dataset that organizes datasets into blocks.
Definition: vtkMultiBlockDataSet.h:155
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
vtkX3D::port
@ port
Definition: vtkX3D.h:453
vtkMultiBlockVolumeMapper::SetCropping
void SetCropping(vtkTypeBool mode) override
Cropping API from vtkVolumeMapper.
vtkMultiBlockVolumeMapper::SelectScalarArray
void SelectScalarArray(int arrayNum) override
API Superclass.
vtkMultiBlockVolumeMapper::FillInputPortInformation
int FillInputPortInformation(int port, vtkInformation *info) override
Specify the type of data this mapper can handle.
vtkMultiBlockVolumeMapper::SetVectorComponent
void SetVectorComponent(int component)
VectorMode interface exposed from vtkSmartVolumeMapper.
vtkVolumeMapper.h
vtkMultiBlockVolumeMapper::SetVectorMode
void SetVectorMode(int mode)
VectorMode interface exposed from vtkSmartVolumeMapper.
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:157
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkMatrix4x4
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:145
vtkSmartVolumeMapper
Adaptive volume mapper.
Definition: vtkSmartVolumeMapper.h:110
vtkMultiBlockVolumeMapper::DebugWin
vtkRenderWindow * DebugWin
Definition: vtkMultiBlockVolumeMapper.h:151
vtkMultiBlockVolumeMapper::vtkMultiBlockVolumeMapper
vtkMultiBlockVolumeMapper()
vtkMultiBlockVolumeMapper::SetRequestedRenderMode
void SetRequestedRenderMode(int)
Forwarded to internal vtkSmartVolumeMappers used.
vtkMultiBlockVolumeMapper::~vtkMultiBlockVolumeMapper
~vtkMultiBlockVolumeMapper() override
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:166
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:183
vtkX3D::info
@ info
Definition: vtkX3D.h:382
vtkMultiBlockVolumeMapper::SetArrayAccessMode
void SetArrayAccessMode(int accessMode) override
API Superclass.
vtkMultiBlockVolumeMapper::GetBounds
double * GetBounds() override
API Superclass.
vtkMultiBlockVolumeMapper::SetTransfer2DYAxisArray
void SetTransfer2DYAxisArray(const char *a)
vtkMultiBlockVolumeMapper::DebugRen
vtkRenderer * DebugRen
Definition: vtkMultiBlockVolumeMapper.h:152
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:182
vtkMultiBlockVolumeMapper::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkMultiBlockVolumeMapper::SetCroppingRegionPlanes
void SetCroppingRegionPlanes(const double *planes) override
Cropping API from vtkVolumeMapper.
vtkAbstractVolumeMapper::GetBounds
double * GetBounds() override
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax,...
vtkX3D::mode
@ mode
Definition: vtkX3D.h:253
vtkRenderWindow
create a window for renderers to draw into
Definition: vtkRenderWindow.h:205
vtkMultiBlockVolumeMapper::SetCroppingRegionPlanes
void SetCroppingRegionPlanes(double arg1, double arg2, double arg3, double arg4, double arg5, double arg6) override
vtkMultiBlockVolumeMapper::New
static vtkMultiBlockVolumeMapper * New()
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkMultiBlockVolumeMapper::SetCroppingRegionFlags
void SetCroppingRegionFlags(int mode) override
vtkMTimeType
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287