Go to the documentation of this file.
33 #ifndef vtkOpenGLGPUVolumeRayCastMapper_h
34 #define vtkOpenGLGPUVolumeRayCastMapper_h
43 class vtkUnsupportedRequiredExtensionsStringStream;
44 class vtkMapDataArrayTextureId;
51 class vtkOpacityTable;
53 class vtkKWScalarField;
56 class vtkOpacityTables;
102 double datasetBounds[6],
103 double scalarRange[2],
104 int numberOfScalarComponents,
105 unsigned int numberOfLevels);
113 int numberOfScalarComponents);
121 const char *extensionName);
165 int textureExtent[6],
175 int numberOfScalarComponents);
183 int numberOfScalarComponents,
195 double worldBounds[6],
205 size_t numberOfBlocks,
246 int parallelProjection,
249 int componentMethod);
302 double slabsPoints[6]);
305 double slabsDataSet[6]);
336 double BoundingBox[8][3];
356 unsigned int TextureObjects[5];
382 double TableRange[2];
409 double LoadedBounds[6];
int UpdateOpacityTransferFunction(vtkVolume *vol, int numberOfScalarComponents, unsigned int level)
void ClipBoundingBox(vtkRenderer *ren, double worldBounds[6], vtkVolume *vol)
void RenderWholeVolume(vtkRenderer *ren, vtkVolume *vol)
perform various plane computations
int RenderClippedBoundingBox(int tcoordFlag, size_t currentBlock, size_t numberOfBlocks, vtkRenderWindow *renWin)
unsigned int NoiseTextureId
void LoadExtensions(vtkRenderWindow *window)
void RenderRegions(vtkRenderer *ren, vtkVolume *vol)
static void PrintError(const char *headerMessage)
vtkShaderProgram2 * Program
int UpdateColorTransferFunction(vtkVolume *vol, int numberOfScalarComponents)
void DisplayFrameBufferAttachment(unsigned int uattachment)
virtual void RenderBlock(vtkRenderer *ren, vtkVolume *vol, unsigned int level)
represents a volume (data & properties) in a rendered scene
void DisplayFrameBufferAttachments()
vtkImageData * SmallInput
virtual int IsRenderSupported(vtkRenderWindow *window, vtkVolumeProperty *property)
void LoadProjectionParameters(vtkRenderer *ren, vtkVolume *vol)
vtkRGBTable * Mask1RGBTable
bool TestLoadingScalar(unsigned int internalFormat, unsigned int format, unsigned int type, int textureSize[3], int componentSize)
vtkTimeStamp DataBufferTime
int TestRequiredExtension(vtkOpenGLExtensionManager *extensions, const char *extensionName)
vtkRGBTable * Mask2RGBTable
virtual void PreRender(vtkRenderer *ren, vtkVolume *vol, double datasetBounds[6], double scalarRange[2], int numberOfScalarComponents, unsigned int numberOfLevels)
void SlabsFromDatasetToIndex(double slabsDataSet[6], double slabsPoints[6])
record modification and/or execution time
void CheckFrameBufferStatus()
unsigned int FrameBufferObject
vtkOpenGLGPUVolumeRayCastMapper()
vtkMatrix4x4 * InvVolumeMatrix
int RenderSubVolume(vtkRenderer *ren, double bounds[6], vtkVolume *vol)
#define vtkTypeMacro(thisClass, superclass)
vtkStdString BufferToString(int buffer)
vtkPolyData * ClippedBoundingBox
vtkShaderProgram2 * ScaleBiasProgram
int LoadScalarField(vtkImageData *input, vtkImageData *maskInput, int textureExtent[6], vtkVolume *volume)
int PowerOfTwoGreaterOrEqual(int x)
GLint GLint GLint GLint GLint x
Create a polygonal representation of a box with a given level of subdivision.
GLenum GLenum GLenum input
virtual void ReleaseGraphicsResources(vtkWindow *window)
void CreateOpenGLObjects(vtkRenderer *ren)
virtual void PrintSelf(ostream &os, vtkIndent indent)
window superclass for vtkRenderWindow
bool IgnoreSampleDistancePerPixel
vtkDensifyPolyData * Densify
#define VTKRENDERINGVOLUMEOPENGL_EXPORT
Interface class for querying and using OpenGL extensions.
GLsizei const GLfloat * value
void BuildScaleBiasProgram(vtkRenderWindow *w)
vtkClipConvexPolyData * Clip
int SupportsPixelBufferObjects
void BuildProgram(vtkRenderWindow *w, int parallelProjection, int raycastMethod, int shadeMethod, int componentMethod)
const char * GetEnabledString(unsigned char value)
int NumberOfCroppingRegions
virtual void PostRender(vtkRenderer *ren, int numberOfScalarComponents)
void ComputeNumberOfCroppingRegions()
virtual void GPURender(vtkRenderer *ren, vtkVolume *vol)
void DisplayReadAndDrawBuffers()
~vtkOpenGLGPUVolumeRayCastMapper()
topologically and geometrically regular array of data
a simple class to control print indentation
represent and manipulate 4x4 transformation matrices
void GetTextureFormat(vtkImageData *input, unsigned int *internalFormat, unsigned int *format, unsigned int *type, int *componentSize)
int Supports_GL_ARB_texture_float
int LastParallelProjection
void RenderTextureToScreen(vtkRenderer *ren)
Ray casting performed on the GPU.
vtkMapDataArrayTextureId * ScalarsTextures
float ActualSampleDistance
OpenGL subclass that draws the image to the screen.
void ComputeReductionFactor(double allocatedTime)
clip any dataset with user-specified implicit function or input scalar data
clip polygonal data with user-specified implicit function or input scalar data
vtkTimeStamp SmallInputBuildTime
unsigned int MaxValueFrameBuffer
Densify the input by adding points at the centroid.
virtual void GetReductionRatio(double ratio[3])
static const char * OpenGLErrorMessage(unsigned int errorCode)
abstract specification for renderers
vtkPlaneCollection * Planes
vtkTessellatedBoxSource * BoxSource
vtkShader2 * CroppingShader
void SlabsFromIndexToDataset(double slabsPoints[6], double slabsDataSet[6])
concrete dataset represents vertices, lines, polygons, and triangle strips
int LoadExtensionsSucceeded
vtkOpacityTables * OpacityTables
int AllocateFrameBuffers(vtkRenderer *ren)
unsigned int DepthRenderBufferObject
double ComputeMinimalSampleDistancePerPixel(vtkRenderer *renderer, vtkVolume *volume)
maintain a list of planes
create a window for renderers to draw into
GLubyte GLubyte GLubyte GLubyte w
unsigned int SavedFrameBuffer
Wrapper around std::string to keep symbols short.
void SetupRender(vtkRenderer *ren, vtkVolume *vol)
vtkMapMaskTextureId * MaskTextures
GLuint GLuint GLsizei GLenum type
vtkKWScalarField * CurrentScalar
vtkUnsupportedRequiredExtensionsStringStream * UnsupportedRequiredExtensions
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
double LastProgressEventTime
vtkPolyData * PolyDataBoundingBox
unsigned int MaxValueFrameBuffer2
void DebugDisplayBox(vtkPolyData *box)
represents the common properties for rendering a volume.
static vtkOpenGLGPUVolumeRayCastMapper * New()
void UpdateNoiseTexture()