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
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:57
a simple class to control print indentation
Definition: vtkIndent.h:34
Store vtkAlgorithm input/output information.
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:36
Composite dataset that organizes datasets into blocks.
Mapper to render volumes defined as vtkMultiBlockDataSet.
void ReleaseGraphicsResources(vtkWindow *window) override
void SetUseFloatingPointFrameBuffer(bool use)
Set/get whether to use floating-point rendering buffers rather than the default.
void SetBlendMode(int mode) override
blending mode api from vtkUnstructuredGridVolumemapper
static vtkMultiBlockUnstructuredGridVolumeMapper * New()
double * GetBounds() override
API Superclass.
int FillInputPortInformation(int port, vtkInformation *info) override
Specify the type of data this mapper can handle.
void SetScalarMode(int ScalarMode) override
API Superclass.
void SetArrayAccessMode(int accessMode) override
API Superclass.
void Render(vtkRenderer *ren, vtkVolume *vol) override
Render the current dataset.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SelectScalarArray(int arrayNum) override
API Superclass.
void SelectScalarArray(char const *arrayName) override
API Superclass.
Unstructured grid volume renderer.
create a window for renderers to draw into
abstract specification for renderers
Definition: vtkRenderer.h:73
Abstract class for an unstructured grid volume mapper.
dataset represents arbitrary combinations of all possible cell types
represents a volume (data & properties) in a rendered scene
Definition: vtkVolume.h:45
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
@ info
Definition: vtkX3D.h:382
@ mode
Definition: vtkX3D.h:253
@ port
Definition: vtkX3D.h:453
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287