66 #ifndef vtkVolumeTexture_h 67 #define vtkVolumeTexture_h 74 #include "vtkRenderingVolumeOpenGL2Module.h" 102 TextureSize = texSize;
122 double DatasetStepSize[3];
128 double LoadedBounds[6];
133 void PrintSelf( ostream& os,
vtkIndent indent )
override;
138 void SetPartitions(
int const x,
int const y,
int const z);
139 const Size3& GetPartitions();
148 int const isCell,
int const interpolation);
175 void ReleaseGraphicsResources(
vtkWindow* win);
183 static void GetScaleAndBias(
const int scalarType,
float* scalarRange,
184 float&
scale,
float& bias);
190 float ScalarRange[4][2];
191 float CellSpacing[3];
197 float AdjustedTexMin[4];
198 float AdjustedTexMax[4];
212 bool LoadTexture(
int const interpolation,
VolumeBlock* volBlock);
217 void SplitVolume(
vtkImageData* imageData, Size3
const & part);
219 void CreateBlocks(
unsigned int const format,
unsigned int const internalFormat,
222 void AdjustExtentForCell(Size6&
extent);
223 Size3 ComputeBlockSize(
int*
extent);
229 void SelectTextureFormat(
unsigned int& format,
unsigned int& internalFormat,
230 int&
type,
int const scalarType,
int const noOfComponents);
241 void UpdateTextureToDataMatrix(
VolumeBlock* block);
261 void ComputeCellToPointMatrix(
int extents[6]);
273 int const height,
int const depth);
276 int const height,
int const depth,
int numComps,
int dataType,
void* dataPtr);
279 void UpdateInterpolationType(
int const interpolation);
280 void SetInterpolation(
int const interpolation);
287 std::vector<vtkImageData*> ImageDataBlocks;
288 std::map<vtkImageData*, VolumeBlock*> ImageDataBlockMap;
289 std::vector<VolumeBlock*> SortedVolumeBlocks;
290 size_t CurrentBlockIdx;
293 std::vector<Size3> TextureSizes;
301 #endif //vtkVolumeTexture_h
abstract base class for most VTK objects
represent and manipulate 4x4 transformation matrices
bool HandleLargeDataTypes
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