53 #ifndef vtkVolumeTexture_h
54 #define vtkVolumeTexture_h
61 #include "vtkRenderingVolumeOpenGL2Module.h"
66 VTK_ABI_NAMESPACE_BEGIN
90 TextureSize = texSize;
109 double DatasetStepSize[3];
115 double LoadedBounds[6];
116 double LoadedBoundsAA[6];
117 double VolumeGeometry[24];
127 void SetPartitions(
int x,
int y,
int z);
128 const Size3& GetPartitions();
164 void ReleaseGraphicsResources(
vtkWindow* win);
172 static void GetScaleAndBias(
int scalarType,
float* scalarRange,
float&
scale,
float& bias);
178 float ScalarRange[4][2];
179 float CellSpacing[3];
185 float AdjustedTexMin[4];
186 float AdjustedTexMax[4];
190 int CoordsTexSizes[3];
191 float CoordsScale[3];
208 bool LoadTexture(
int interpolation,
VolumeBlock* volBlock);
213 void SplitVolume(
vtkImageData* imageData, Size3
const& part);
215 void CreateBlocks(
unsigned int format,
unsigned int internalFormat,
int type);
217 void AdjustExtentForCell(Size6&
extent);
218 Size3 ComputeBlockSize(
int*
extent);
224 void SelectTextureFormat(
unsigned int& format,
unsigned int& internalFormat,
int&
type,
225 int scalarType,
int noOfComponents);
237 void UpdateTextureToDataMatrix(
VolumeBlock* block);
257 void ComputeCellToPointMatrix(
int extents[6]);
271 int dataType,
void* dataPtr);
274 void UpdateInterpolationType(
int interpolation);
275 void SetInterpolation(
int interpolation);
281 std::vector<vtkDataSet*> ImageDataBlocks;
282 std::map<vtkDataSet*, VolumeBlock*> ImageDataBlockMap;
283 std::vector<VolumeBlock*> SortedVolumeBlocks;
284 size_t CurrentBlockIdx;
287 std::vector<Size3> TextureSizes;
295 VTK_ABI_NAMESPACE_END
296 #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