65 #ifndef vtkVolumeTexture_h 66 #define vtkVolumeTexture_h 73 #include "vtkRenderingVolumeOpenGL2Module.h" 100 TextureSize = texSize;
119 double DatasetStepSize[3];
125 double LoadedBounds[6];
126 double LoadedBoundsAA[6];
127 double VolumeGeometry[24];
137 void SetPartitions(
int const i,
int const j,
int const k);
138 const Size3& GetPartitions();
147 int const interpolation);
174 void ReleaseGraphicsResources(
vtkWindow* win);
182 static void GetScaleAndBias(
const int scalarType,
float* scalarRange,
float&
scale,
float& bias);
188 float ScalarRange[4][2];
189 float CellSpacing[3];
195 float AdjustedTexMin[4];
196 float AdjustedTexMax[4];
210 bool LoadTexture(
int const interpolation,
VolumeBlock* volBlock);
217 void CreateBlocks(
unsigned int const format,
unsigned int const internalFormat,
int const type);
226 void SelectTextureFormat(
unsigned int& format,
unsigned int& internalFormat,
int&
type,
227 int const scalarType,
int const noOfComponents);
239 void UpdateTextureToDataMatrix(
VolumeBlock* block);
259 void ComputeCellToPointMatrix(
int extents[6]);
270 bool AreDimensionsValid(
274 int const depth,
int numComps,
int dataType,
void* dataPtr);
277 void UpdateInterpolationType(
int const interpolation);
278 void SetInterpolation(
int const interpolation);
284 std::vector<vtkImageData*> ImageDataBlocks;
285 std::map<vtkImageData*, VolumeBlock*> ImageDataBlockMap;
286 std::vector<VolumeBlock*> SortedVolumeBlocks;
287 size_t CurrentBlockIdx;
290 std::vector<Size3> TextureSizes;
298 #endif // vtkVolumeTexture_h
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.
record modification and/or execution time
abstract specification for renderers
window superclass for vtkRenderWindow
vtkTextureObject * TextureObject
a simple class to control print indentation
VolumeBlock(vtkImageData *imData, vtkTextureObject *tex, Size3 const &texSize)
topologically and geometrically regular array of data
abstract superclass for arrays of numeric data
represents the common properties for rendering a volume.
vtkNew< vtkMatrix4x4 > TextureToDataset
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