56 #ifndef vtkVolumeTexture_h
57 #define vtkVolumeTexture_h
64 #include "vtkRenderingVolumeOpenGL2Module.h"
69 VTK_ABI_NAMESPACE_BEGIN
93 TextureSize = texSize;
112 double DatasetStepSize[3];
118 double LoadedBounds[6];
119 double LoadedBoundsAA[6];
120 double VolumeGeometry[24];
130 void SetPartitions(
int x,
int y,
int z);
131 const Size3& GetPartitions();
167 void ReleaseGraphicsResources(
vtkWindow* win);
175 static void GetScaleAndBias(
int scalarType,
float* scalarRange,
float&
scale,
float& bias);
181 float ScalarRange[4][2];
182 float CellSpacing[3];
188 float AdjustedTexMin[4];
189 float AdjustedTexMax[4];
193 int CoordsTexSizes[3];
194 float CoordsScale[3];
211 bool LoadTexture(
int interpolation,
VolumeBlock* volBlock);
216 void SplitVolume(
vtkImageData* imageData, Size3
const& part);
218 void CreateBlocks(
unsigned int format,
unsigned int internalFormat,
int type);
220 void AdjustExtentForCell(Size6&
extent);
221 Size3 ComputeBlockSize(VTK_FUTURE_CONST
int extent[6]);
227 void SelectTextureFormat(
unsigned int& format,
unsigned int& internalFormat,
int&
type,
228 int scalarType,
int noOfComponents);
240 void UpdateTextureToDataMatrix(
VolumeBlock* block);
260 void ComputeCellToPointMatrix(
int extents[6]);
274 int dataType,
void* dataPtr);
277 void UpdateInterpolationType(
int interpolation);
278 void SetInterpolation(
int interpolation);
284 std::vector<vtkDataSet*> ImageDataBlocks;
285 std::map<vtkDataSet*, VolumeBlock*> ImageDataBlockMap;
286 std::vector<VolumeBlock*> SortedVolumeBlocks;
287 size_t CurrentBlockIdx;
290 std::vector<Size3> TextureSizes;
298 VTK_ABI_NAMESPACE_END
299 #endif // vtkVolumeTexture_h
VolumeBlock(vtkDataSet *dataset, vtkTextureObject *tex, Size3 const &texSize)
abstract base class for most VTK objects
represent and manipulate 4x4 transformation matrices
bool HandleLargeDataTypes
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Creates and manages the volume texture rendered by vtkOpenGLGPUVolumeRayCastMapper.
abstract class to specify dataset behavior
record modification and/or execution time
abstract specification for renderers
window superclass for vtkRenderWindow
vtkTextureObject * TextureObject
vtkSmartPointer< vtkTextureObject > BlankingTex
a simple class to control print indentation
topologically and geometrically regular array of data
abstract superclass for arrays of numeric data
std::map< std::string, DataArray > DataSet
key: variable name, value: DataArray
represents the common properties for rendering a volume.
vtkNew< vtkMatrix4x4 > TextureToDataset
vtkSmartPointer< vtkTextureObject > CoordsTex
abstracts an OpenGL texture object.
vtkNew< vtkMatrix4x4 > TextureToDatasetInv
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
vtkNew< vtkMatrix4x4 > CellToPointMatrix