Commit 19fb78e0 authored by Lisa Avila's avatar Lisa Avila

first check in of the unstructured grid volume rendering framework / ray casting algorithm

parent 270de0e6
......@@ -20,6 +20,7 @@ SET(KIT_LIBS vtkGraphics vtkImaging
SET( Kit_SRCS
vtkAbstractMapper3D.cxx
vtkAbstractVolumeMapper.cxx
vtkAbstractPicker.cxx
vtkAbstractPropPicker.cxx
vtkActor.cxx
......@@ -81,6 +82,7 @@ vtkProp3D.cxx
vtkProp3DCollection.cxx
vtkPropPicker.cxx
vtkProperty.cxx
vtkRayCastImageDisplayHelper.cxx
vtkRecursiveSphereDirectionEncoder.cxx
vtkRenderWindow.cxx
vtkRenderWindowCollection.cxx
......@@ -95,6 +97,10 @@ vtkTextActor.cxx
vtkTextMapper.cxx
vtkTextProperty.cxx
vtkTexture.cxx
vtkUnstructuredGridBunykRayCastFunction.cxx
vtkUnstructuredGridVolumeMapper.cxx
vtkUnstructuredGridVolumeRayCastFunction.cxx
vtkUnstructuredGridVolumeRayCastMapper.cxx
vtkVRMLExporter.cxx
vtkVolume.cxx
vtkVolumeCollection.cxx
......@@ -140,6 +146,7 @@ SET( KitOpenGL_SRCS
vtkOpenGLPolyDataMapper.cxx
vtkOpenGLPolyDataMapper2D.cxx
vtkOpenGLProperty.cxx
vtkOpenGLRayCastImageDisplayHelper.cxx
vtkOpenGLRenderWindow.cxx
vtkOpenGLRenderer.cxx
vtkOpenGLTexture.cxx
......@@ -149,6 +156,7 @@ SET( KitOpenGL_SRCS
SET_SOURCE_FILES_PROPERTIES(
vtkAbstractMapper3D
vtkAbstractVolumeMapper
vtkAbstractPicker
vtkAbstractPropPicker
vtkCuller
......@@ -160,6 +168,9 @@ vtkInteractorObserver
vtkMapper
vtkOpenGLRenderWindow
vtkProp3D
vtkRayCastImageDisplayHelper
vtkUnstructuredGridVolumeMapper
vtkUnstructuredGridVolumeRayCastFunction
vtkVolumeMapper
vtkVolumeRayCastFunction
vtkVolumeTextureMapper
......
/*=========================================================================
Program: Visualization Toolkit
Module: vtkAbstractVolumeMapper.cxx
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#include "vtkAbstractVolumeMapper.h"
#include "vtkDataSet.h"
vtkCxxRevisionMacro(vtkAbstractVolumeMapper, "1.1");
// Construct a vtkAbstractVolumeMapper
vtkAbstractVolumeMapper::vtkAbstractVolumeMapper()
{
this->Bounds[0] = this->Bounds[2] = this->Bounds[4] = -1.0;
this->Bounds[1] = this->Bounds[3] = this->Bounds[5] = 1.0;
this->Center[0] = this->Center[1] = this->Center[2] = 0.0;
}
vtkAbstractVolumeMapper::~vtkAbstractVolumeMapper()
{
}
void vtkAbstractVolumeMapper::Update()
{
if ( this->GetInput() )
{
this->GetInput()->UpdateInformation();
this->GetInput()->SetUpdateExtentToWholeExtent();
this->GetInput()->Update();
}
}
// Get the bounds for the input of this mapper as
// (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).
float *vtkAbstractVolumeMapper::GetBounds()
{
static float bounds[] = {-1.0,1.0, -1.0,1.0, -1.0,1.0};
if ( ! this->GetInput() )
{
return bounds;
}
else
{
this->Update();
this->GetInput()->GetBounds(this->Bounds);
return this->Bounds;
}
}
void vtkAbstractVolumeMapper::SetInput( vtkDataSet *vtkNotUsed(input) )
{
vtkErrorMacro("Cannot set the input on the abstract volume mapper"
" - must be set on a subclass" );
}
vtkDataSet *vtkAbstractVolumeMapper::GetInput()
{
if (this->NumberOfInputs < 1)
{
return NULL;
}
return (vtkDataSet *)this->Inputs[0];
}
// Print the vtkAbstractVolumeMapper
void vtkAbstractVolumeMapper::PrintSelf(ostream& os, vtkIndent indent)
{
this->Superclass::PrintSelf(os,indent);
}
/*=========================================================================
Program: Visualization Toolkit
Module: vtkAbstractVolumeMapper.h
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkAbstractVolumeMapper - Abstract class for a volume mapper
// .SECTION Description
// vtkAbstractVolumeMapper is the abstract definition of a volume mapper.
// Specific subclasses deal with different specific types of data input
// .SECTION see also
// vtkVolumeMapper vtkUnstructuredGridVolumeMapper
#ifndef __vtkAbstractVolumeMapper_h
#define __vtkAbstractVolumeMapper_h
#include "vtkAbstractMapper3D.h"
class vtkRenderer;
class vtkVolume;
class vtkWindow;
class vtkDataSet;
class VTK_RENDERING_EXPORT vtkAbstractVolumeMapper : public vtkAbstractMapper3D
{
public:
vtkTypeRevisionMacro(vtkAbstractVolumeMapper,vtkAbstractMapper3D);
void PrintSelf( ostream& os, vtkIndent indent );
// Description:
// Update the volume rendering pipeline by updating the scalar input
virtual void Update();
// Description:
// Set/Get the input data
virtual void SetInput( vtkDataSet * );
vtkDataSet *GetInput();
// Description:
// Return bounding box (array of six floats) of data expressed as
// (xmin,xmax, ymin,ymax, zmin,zmax).
virtual float *GetBounds();
virtual void GetBounds(float bounds[6])
{ this->vtkAbstractMapper3D::GetBounds(bounds); };
//BTX
// Description:
// WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE
virtual float GetGradientMagnitudeScale() {return 1.0;};
virtual float GetGradientMagnitudeBias() {return 0.0;};
virtual float GetGradientMagnitudeScale(int) {return 1.0;};
virtual float GetGradientMagnitudeBias(int) {return 0.0;};
// Description:
// WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE
// DO NOT USE THIS METHOD OUTSIDE OF THE RENDERING PROCESS
// Render the volume
virtual void Render(vtkRenderer *ren, vtkVolume *vol)=0;
// Description:
// WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE
// Release any graphics resources that are being consumed by this mapper.
// The parameter window could be used to determine which graphic
// resources to release.
virtual void ReleaseGraphicsResources(vtkWindow *) {};
//ETX
protected:
vtkAbstractVolumeMapper();
~vtkAbstractVolumeMapper();
private:
vtkAbstractVolumeMapper(const vtkAbstractVolumeMapper&); // Not implemented.
void operator=(const vtkAbstractVolumeMapper&); // Not implemented.
};
#endif
......@@ -30,6 +30,7 @@
#include "vtkOpenGLTexture.h"
#include "vtkOpenGLVolumeTextureMapper2D.h"
#include "vtkOpenGLVolumeRayCastMapper.h"
#include "vtkOpenGLRayCastImageDisplayHelper.h"
#endif
// Win32 specific stuff
......@@ -82,7 +83,7 @@
static vtkSimpleCriticalSection vtkUseMesaClassesCriticalSection;
int vtkGraphicsFactory::UseMesaClasses = 0;
vtkCxxRevisionMacro(vtkGraphicsFactory, "1.33");
vtkCxxRevisionMacro(vtkGraphicsFactory, "1.34");
vtkStandardNewMacro(vtkGraphicsFactory);
const char *vtkGraphicsFactory::GetRenderLibrary()
......@@ -305,6 +306,16 @@ vtkObject* vtkGraphicsFactory::CreateInstance(const char* vtkclassname )
#endif
return vtkOpenGLVolumeRayCastMapper::New();
}
if(strcmp(vtkclassname, "vtkRayCastImageDisplayHelper") == 0)
{
#if defined(VTK_USE_MANGLED_MESA)
if ( vtkGraphicsFactory::UseMesaClasses )
{
return vtkMesaRayCastImageDisplayHelper::New();
}
#endif
return vtkOpenGLRayCastImageDisplayHelper::New();
}
}
#endif
......
......@@ -21,12 +21,12 @@
#include "vtkObjectFactory.h"
#include "vtkPropCollection.h"
#include "vtkVolume.h"
#include "vtkVolumeMapper.h"
#include "vtkAbstractVolumeMapper.h"
#include "vtkLinearTransform.h"
#include <math.h>
vtkCxxRevisionMacro(vtkLODProp3D, "1.40");
vtkCxxRevisionMacro(vtkLODProp3D, "1.41");
vtkStandardNewMacro(vtkLODProp3D);
#define VTK_INDEX_NOT_IN_USE -1
......@@ -377,13 +377,13 @@ int vtkLODProp3D::AddLOD( vtkMapper *m, vtkProperty *p,
// Convenience method to set a volume LOD without a property.
// Needed from tcl (for example) where null pointers are not possible
int vtkLODProp3D::AddLOD( vtkVolumeMapper *m, float time )
int vtkLODProp3D::AddLOD( vtkAbstractVolumeMapper *m, float time )
{
return this->AddLOD( m, (vtkVolumeProperty *)NULL, time );
}
// The real method for adding a volume LOD.
int vtkLODProp3D::AddLOD( vtkVolumeMapper *m, vtkVolumeProperty *p,
int vtkLODProp3D::AddLOD( vtkAbstractVolumeMapper *m, vtkVolumeProperty *p,
float time )
{
int index;
......@@ -460,7 +460,7 @@ void vtkLODProp3D::GetLODMapper( int id, vtkMapper **m )
}
// Set the mapper for an LOD that is a volume
void vtkLODProp3D::SetLODMapper( int id, vtkVolumeMapper *m )
void vtkLODProp3D::SetLODMapper( int id, vtkAbstractVolumeMapper *m )
{
int index = this->ConvertIDToIndex( id );
......@@ -479,7 +479,7 @@ void vtkLODProp3D::SetLODMapper( int id, vtkVolumeMapper *m )
}
// Get the mapper for an LOD that is an actor
void vtkLODProp3D::GetLODMapper( int id, vtkVolumeMapper **m )
void vtkLODProp3D::GetLODMapper( int id, vtkAbstractVolumeMapper **m )
{
*m = NULL;
......
......@@ -31,7 +31,7 @@
class vtkRenderer;
class vtkMapper;
class vtkVolumeMapper;
class vtkAbstractVolumeMapper;
class vtkAbstractMapper3D;
class vtkProperty;
class vtkVolumeProperty;
......@@ -77,8 +77,8 @@ public:
int AddLOD( vtkMapper *m, vtkProperty *p, float time );
int AddLOD( vtkMapper *m, vtkTexture *t, float time );
int AddLOD( vtkMapper *m, float time );
int AddLOD( vtkVolumeMapper *m, vtkVolumeProperty *p, float time );
int AddLOD( vtkVolumeMapper *m, float time );
int AddLOD( vtkAbstractVolumeMapper *m, vtkVolumeProperty *p, float time );
int AddLOD( vtkAbstractVolumeMapper *m, float time );
// Description:
// Get the current number of LODs.
......@@ -112,8 +112,8 @@ public:
// or the mapper is of the wrong type for the corresponding Prop3D.
void SetLODMapper( int id, vtkMapper *m );
void GetLODMapper( int id, vtkMapper **m );
void SetLODMapper( int id, vtkVolumeMapper *m );
void GetLODMapper( int id, vtkVolumeMapper **m );
void SetLODMapper( int id, vtkAbstractVolumeMapper *m );
void GetLODMapper( int id, vtkAbstractVolumeMapper **m );
// Description:
// Get the LODMapper as an vtkAbstractMapper3D. It is the user's respondibility
......
This diff is collapsed.
/*=========================================================================
Program: Visualization Toolkit
Module: vtkOpenGLRayCastImageDisplayHelper.h
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkOpenGLRayCastImageDisplayHelper - OpenGL subclass that draws the image to the screen
// .SECTION Description
// This is the concrete implementation of a ray cast image display helper -
// a helper class responsible for drawing the image to the screen.
// .SECTION see also
// vtkRayCastImageDisplayHelper
#ifndef __vtkOpenGLRayCastImageDisplayHelper_h
#define __vtkOpenGLRayCastImageDisplayHelper_h
#include "vtkRayCastImageDisplayHelper.h"
class vtkVolume;
class vtkRenderer;
class VTK_RENDERING_EXPORT vtkOpenGLRayCastImageDisplayHelper : public vtkRayCastImageDisplayHelper
{
public:
static vtkOpenGLRayCastImageDisplayHelper *New();
vtkTypeRevisionMacro(vtkOpenGLRayCastImageDisplayHelper,vtkRayCastImageDisplayHelper);
virtual void PrintSelf(ostream& os, vtkIndent indent);
void RenderTexture( vtkVolume *vol, vtkRenderer *ren,
int imageMemorySize[2],
int imageViewportSize[2],
int imageInUseSize[2],
int imageOrigin[2],
float requestedDepth,
unsigned char *image );
protected:
vtkOpenGLRayCastImageDisplayHelper();
~vtkOpenGLRayCastImageDisplayHelper();
private:
vtkOpenGLRayCastImageDisplayHelper(const vtkOpenGLRayCastImageDisplayHelper&); // Not implemented.
void operator=(const vtkOpenGLRayCastImageDisplayHelper&); // Not implemented.
};
#endif
/*=========================================================================
Program: Visualization Toolkit
Module: vtkRayCastImageDisplayHelper.cxx
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#include "vtkRayCastImageDisplayHelper.h"
#include "vtkGraphicsFactory.h"
vtkCxxRevisionMacro(vtkRayCastImageDisplayHelper, "1.1");
//----------------------------------------------------------------------------
// Needed when we don't use the vtkStandardNewMacro.
vtkInstantiatorNewMacro(vtkRayCastImageDisplayHelper);
//----------------------------------------------------------------------------
vtkRayCastImageDisplayHelper* vtkRayCastImageDisplayHelper::New()
{
// First try to create the object from the vtkObjectFactory
vtkObject* ret=vtkGraphicsFactory::CreateInstance("vtkRayCastImageDisplayHelper");
return (vtkRayCastImageDisplayHelper*)ret;
}
// Construct a new vtkRayCastImageDisplayHelper with default values
vtkRayCastImageDisplayHelper::vtkRayCastImageDisplayHelper()
{
}
// Destruct a vtkRayCastImageDisplayHelper - clean up any memory used
vtkRayCastImageDisplayHelper::~vtkRayCastImageDisplayHelper()
{
}
void vtkRayCastImageDisplayHelper::PrintSelf(ostream& os, vtkIndent indent)
{
this->Superclass::PrintSelf(os,indent);
}
/*=========================================================================
Program: Visualization Toolkit
Module: vtkRayCastImageDisplayHelper.h
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkRayCastImageDisplayHelper - helper class that draws the image to the screen
// .SECTION Description
// This is a helper class for drawing images created from ray casting on the screen.
// This is the abstract device-independent superclass.
// .SECTION see also
// vtkVolumeRayCastMapper vtkUnstructuredGridVolumeRayCastMapper
// vtkOpenGLRayCastImageDisplayHelper
#ifndef __vtkRayCastImageDisplayHelper_h
#define __vtkRayCastImageDisplayHelper_h
#include "vtkObject.h"
class vtkVolume;
class vtkRenderer;
class VTK_RENDERING_EXPORT vtkRayCastImageDisplayHelper : public vtkObject
{
public:
static vtkRayCastImageDisplayHelper *New();
vtkTypeRevisionMacro(vtkRayCastImageDisplayHelper,vtkObject);
virtual void PrintSelf(ostream& os, vtkIndent indent);
virtual void RenderTexture( vtkVolume *vol, vtkRenderer *ren,
int imageMemorySize[2],
int imageViewportSize[2],
int imageInUseSize[2],
int imageOrigin[2],
float requestedDepth,
unsigned char *image ) = 0;
protected:
vtkRayCastImageDisplayHelper();
~vtkRayCastImageDisplayHelper();
private:
vtkRayCastImageDisplayHelper(const vtkRayCastImageDisplayHelper&); // Not implemented.
void operator=(const vtkRayCastImageDisplayHelper&); // Not implemented.
};
#endif
This diff is collapsed.
This diff is collapsed.
/*=========================================================================
Program: Visualization Toolkit
Module: vtkUnstructuredGridVolumeMapper.cxx
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#include "vtkUnstructuredGridVolumeMapper.h"
#include "vtkUnstructuredGrid.h"
#include "vtkDataSet.h"
vtkCxxRevisionMacro(vtkUnstructuredGridVolumeMapper, "1.1");
// Construct a vtkUnstructuredGridVolumeMapper with empty scalar input and clipping off.
vtkUnstructuredGridVolumeMapper::vtkUnstructuredGridVolumeMapper()
{
}
vtkUnstructuredGridVolumeMapper::~vtkUnstructuredGridVolumeMapper()
{
}
void vtkUnstructuredGridVolumeMapper::SetInput( vtkDataSet *genericInput )
{
vtkUnstructuredGrid *input =
vtkUnstructuredGrid::SafeDownCast( genericInput );
if ( input )
{
this->SetInput( input );
}
else
{
vtkErrorMacro("The SetInput method of this mapper requires vtkImageData as input");
}
}
void vtkUnstructuredGridVolumeMapper::SetInput( vtkUnstructuredGrid *input )
{
this->vtkProcessObject::SetNthInput(0, input);
}
vtkUnstructuredGrid *vtkUnstructuredGridVolumeMapper::GetInput()
{
if (this->NumberOfInputs < 1)
{
return NULL;
}
return (vtkUnstructuredGrid *)this->Inputs[0];
}
// Print the vtkUnstructuredGridVolumeMapper
void vtkUnstructuredGridVolumeMapper::PrintSelf(ostream& os, vtkIndent indent)
{
this->Superclass::PrintSelf(os,indent);
}
/*=========================================================================
Program: Visualization Toolkit
Module: vtkUnstructuredGridVolumeMapper.h
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkUnstructuredGridVolumeMapper - Abstract class for a unstructured grid volume mapper
// .SECTION Description
// vtkUnstructuredGridVolumeMapper is the abstract definition of a volume mapper for
// unstructured data (vtkUnstructuredGrid). Several basic types of volume mappers
// are supported as subclasses
// .SECTION see also
// vtkUnstructuredGridVolumeRayCastMapper
#ifndef __vtkUnstructuredGridVolumeMapper_h
#define __vtkUnstructuredGridVolumeMapper_h
#include "vtkAbstractVolumeMapper.h"
class vtkRenderer;
class vtkVolume;
class vtkUnstructuredGrid;
class vtkWindow;
class VTK_RENDERING_EXPORT vtkUnstructuredGridVolumeMapper : public vtkAbstractVolumeMapper
{
public:
vtkTypeRevisionMacro(vtkUnstructuredGridVolumeMapper,vtkAbstractMapper3D);
void PrintSelf( ostream& os, vtkIndent indent );
// Description:
// Set/Get the input data
virtual void SetInput( vtkUnstructuredGrid * );
virtual void SetInput( vtkDataSet * );
vtkUnstructuredGrid *GetInput();
vtkSetMacro( BlendMode, int );
void SetBlendModeToComposite()
{ this->SetBlendMode( vtkUnstructuredGridVolumeMapper::COMPOSITE_BLEND ); }
void SetBlendModeToMaximumIntensity()
{ this->SetBlendMode( vtkUnstructuredGridVolumeMapper::MAXIMUM_INTENSITY_BLEND ); }
vtkGetMacro( BlendMode, int );
//BTX
// Description:
// WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE
// DO NOT USE THIS METHOD OUTSIDE OF THE RENDERING PROCESS
// Render the volume
virtual void Render(vtkRenderer *ren, vtkVolume *vol)=0;
// Description:
// WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE
// Release any graphics resources that are being consumed by this mapper.
// The parameter window could be used to determine which graphic
// resources to release.
virtual void ReleaseGraphicsResources(vtkWindow *) {};
enum
{
COMPOSITE_BLEND,
MAXIMUM_INTENSITY_BLEND
};
//ETX
protected:
vtkUnstructuredGridVolumeMapper();
~vtkUnstructuredGridVolumeMapper();
int BlendMode;
private:
vtkUnstructuredGridVolumeMapper(const vtkUnstructuredGridVolumeMapper&); // Not implemented.
void operator=(const vtkUnstructuredGridVolumeMapper&); // Not implemented.
};
#endif
/*=========================================================================
Program: Visualization Toolkit
Module: vtkUnstructuredGridVolumeRayCastFunction.cxx
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#include "vtkUnstructuredGridVolumeRayCastFunction.h"
vtkCxxRevisionMacro(vtkUnstructuredGridVolumeRayCastFunction, "1.1");
//----------------------------------------------------------------------------
void vtkUnstructuredGridVolumeRayCastFunction::PrintSelf(ostream& os, vtkIndent indent)
{
this->Superclass::PrintSelf(os,indent);
}
/*=========================================================================
Program: Visualization Toolkit
Module: vtkUnstructuredGridVolumeRayCastFunction.h
Language: C++
Date: $Date$