VTK  9.1.0
vtkMultiBlockUnstructuredGridVolumeMapper.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkMultiBlockUnstructuredGridVolumeMapper.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 =========================================================================*/
20 #ifndef vtkMultiBlockUnstructuredGridVolumeMapper_h
21 #define vtkMultiBlockUnstructuredGridVolumeMapper_h
22 
23 #include <vector> // For DataBlocks
24 
25 #include "vtkRenderingVolumeOpenGL2Module.h" // For export macro
27 
28 class vtkDataObjectTree;
29 class vtkDataSet;
32 class vtkRenderWindow;
34 
35 class VTKRENDERINGVOLUMEOPENGL2_EXPORT vtkMultiBlockUnstructuredGridVolumeMapper
37 {
38 public:
41  void PrintSelf(ostream& os, vtkIndent indent) override;
42 
44 
48  double* GetBounds() override;
50 
51  void SelectScalarArray(int arrayNum) override;
52  void SelectScalarArray(char const* arrayName) override;
53  void SetScalarMode(int ScalarMode) override;
54  void SetArrayAccessMode(int accessMode) override;
55 
62  void Render(vtkRenderer* ren, vtkVolume* vol) override;
63 
68  void ReleaseGraphicsResources(vtkWindow* window) override;
70 
72 
78  vtkGetMacro(UseFloatingPointFrameBuffer, bool);
79 
81 
85  void SetBlendMode(int mode) override;
87 
88 protected:
91 
100 
102 
105 
106 private:
112  void LoadDataSet();
113 
122  void CreateMappers(vtkDataObjectTree* input);
123 
124  vtkDataObjectTree* GetDataObjectTreeInput();
125 
129  void ComputeBounds();
130 
134  void SortMappers(vtkRenderer* ren, vtkMatrix4x4* volumeMat);
135 
136  void ClearMappers();
137 
141  vtkProjectedTetrahedraMapper* CreateMapper();
142 
145  void operator=(const vtkMultiBlockUnstructuredGridVolumeMapper&) = delete;
146 
148 
149  typedef std::vector<vtkProjectedTetrahedraMapper*> MapperVec;
150  MapperVec Mappers;
151 
152  vtkMTimeType BlockLoadingTime;
153  vtkMTimeType BoundsComputeTime;
154 };
155 #endif
vtkMultiBlockUnstructuredGridVolumeMapper::UseFloatingPointFrameBuffer
bool UseFloatingPointFrameBuffer
Definition: vtkMultiBlockUnstructuredGridVolumeMapper.h:101
vtkMultiBlockUnstructuredGridVolumeMapper::vtkMultiBlockUnstructuredGridVolumeMapper
vtkMultiBlockUnstructuredGridVolumeMapper()
vtkMultiBlockUnstructuredGridVolumeMapper::DebugRen
vtkRenderer * DebugRen
Definition: vtkMultiBlockUnstructuredGridVolumeMapper.h:104
vtkMultiBlockUnstructuredGridVolumeMapper::FillInputPortInformation
int FillInputPortInformation(int port, vtkInformation *info) override
Specify the type of data this mapper can handle.
vtkDataObjectTree
provides implementation for most abstract methods in the superclass vtkCompositeDataSet
Definition: vtkDataObjectTree.h:47
vtkMultiBlockUnstructuredGridVolumeMapper::SelectScalarArray
void SelectScalarArray(char const *arrayName) override
API Superclass.
vtkVolume
represents a volume (data & properties) in a rendered scene
Definition: vtkVolume.h:134
vtkMultiBlockUnstructuredGridVolumeMapper::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *window) override
vtkMultiBlockUnstructuredGridVolumeMapper::~vtkMultiBlockUnstructuredGridVolumeMapper
~vtkMultiBlockUnstructuredGridVolumeMapper() override
vtkMultiBlockUnstructuredGridVolumeMapper
Mapper to render volumes defined as vtkMultiBlockDataSet.
Definition: vtkMultiBlockUnstructuredGridVolumeMapper.h:37
vtkMultiBlockUnstructuredGridVolumeMapper::GetBounds
double * GetBounds() override
API Superclass.
vtkMultiBlockUnstructuredGridVolumeMapper::SetArrayAccessMode
void SetArrayAccessMode(int accessMode) override
API Superclass.
vtkMultiBlockUnstructuredGridVolumeMapper::Render
void Render(vtkRenderer *ren, vtkVolume *vol) override
Render the current dataset.
vtkMultiBlockDataSet
Composite dataset that organizes datasets into blocks.
Definition: vtkMultiBlockDataSet.h:155
vtkMultiBlockUnstructuredGridVolumeMapper::SetUseFloatingPointFrameBuffer
void SetUseFloatingPointFrameBuffer(bool use)
Set/get whether to use floating-point rendering buffers rather than the default.
vtkMultiBlockUnstructuredGridVolumeMapper::New
static vtkMultiBlockUnstructuredGridVolumeMapper * New()
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
vtkX3D::port
@ port
Definition: vtkX3D.h:453
vtkMultiBlockUnstructuredGridVolumeMapper::SelectScalarArray
void SelectScalarArray(int arrayNum) override
API Superclass.
vtkMultiBlockUnstructuredGridVolumeMapper::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkMatrix4x4
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:145
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
vtkUnstructuredGridVolumeMapper
Abstract class for an unstructured grid volume mapper.
Definition: vtkUnstructuredGridVolumeMapper.h:40
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:182
vtkAbstractVolumeMapper::GetBounds
double * GetBounds() override
Return bounding box (array of six doubles) of data expressed as (xmin,xmax, ymin,ymax,...
vtkMultiBlockUnstructuredGridVolumeMapper::DebugWin
vtkRenderWindow * DebugWin
Definition: vtkMultiBlockUnstructuredGridVolumeMapper.h:103
vtkProjectedTetrahedraMapper
Unstructured grid volume renderer.
Definition: vtkProjectedTetrahedraMapper.h:57
vtkX3D::mode
@ mode
Definition: vtkX3D.h:253
vtkUnstructuredGrid
dataset represents arbitrary combinations of all possible cell types
Definition: vtkUnstructuredGrid.h:204
vtkRenderWindow
create a window for renderers to draw into
Definition: vtkRenderWindow.h:205
vtkMultiBlockUnstructuredGridVolumeMapper::SetBlendMode
void SetBlendMode(int mode) override
blending mode api from vtkUnstructuredGridVolumemapper
vtkUnstructuredGridVolumeMapper.h
vtkMultiBlockUnstructuredGridVolumeMapper::SetScalarMode
void SetScalarMode(int ScalarMode) override
API Superclass.
vtkMTimeType
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287