00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00038
#ifndef __vtkVolumeRayCastCompositeFunction_h
00039
#define __vtkVolumeRayCastCompositeFunction_h
00040
00041
#include "vtkVolumeRayCastFunction.h"
00042
00043 #define VTK_COMPOSITE_CLASSIFY_FIRST 0
00044 #define VTK_COMPOSITE_INTERPOLATE_FIRST 1
00045
00046 class VTK_RENDERING_EXPORT vtkVolumeRayCastCompositeFunction :
public vtkVolumeRayCastFunction
00047 {
00048
public:
00049
static vtkVolumeRayCastCompositeFunction *
New();
00050 vtkTypeRevisionMacro(vtkVolumeRayCastCompositeFunction,
vtkVolumeRayCastFunction);
00051
void PrintSelf( ostream& os,
vtkIndent indent );
00052
00054
00055 vtkSetClampMacro( CompositeMethod,
int,
00056 VTK_COMPOSITE_CLASSIFY_FIRST, VTK_COMPOSITE_INTERPOLATE_FIRST );
00057 vtkGetMacro(CompositeMethod,
int);
00058 void SetCompositeMethodToInterpolateFirst()
00059 {this->SetCompositeMethod(
VTK_COMPOSITE_INTERPOLATE_FIRST);}
00060 void SetCompositeMethodToClassifyFirst()
00061 {this->SetCompositeMethod(
VTK_COMPOSITE_CLASSIFY_FIRST);}
00062
const char *GetCompositeMethodAsString(
void);
00064
00065
00066
void CastRay(
vtkVolumeRayCastDynamicInfo *dynamicInfo,
00067
vtkVolumeRayCastStaticInfo *staticInfo);
00068
00069
float GetZeroOpacityThreshold(
vtkVolume *vol );
00070
00071
00072
protected:
00073 vtkVolumeRayCastCompositeFunction();
00074 ~vtkVolumeRayCastCompositeFunction();
00075
00076
00077
void SpecificFunctionInitialize(
vtkRenderer *ren,
00078
vtkVolume *vol,
00079
vtkVolumeRayCastStaticInfo *staticInfo,
00080
vtkVolumeRayCastMapper *mapper );
00081
00082
00083 int CompositeMethod;
00084
private:
00085 vtkVolumeRayCastCompositeFunction(
const vtkVolumeRayCastCompositeFunction&);
00086
void operator=(
const vtkVolumeRayCastCompositeFunction&);
00087 };
00088
00089
00090
#endif