00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00040
#ifndef __vtkVolumeRayCastMIPFunction_h
00041
#define __vtkVolumeRayCastMIPFunction_h
00042
00043
#include "vtkVolumeRayCastFunction.h"
00044
00045 #define VTK_MAXIMIZE_SCALAR_VALUE 0
00046 #define VTK_MAXIMIZE_OPACITY 1
00047
00048 class VTK_RENDERING_EXPORT vtkVolumeRayCastMIPFunction :
public vtkVolumeRayCastFunction
00049 {
00050
public:
00051
static vtkVolumeRayCastMIPFunction *
New();
00052 vtkTypeRevisionMacro(vtkVolumeRayCastMIPFunction,
vtkVolumeRayCastFunction);
00053
void PrintSelf( ostream& os,
vtkIndent indent );
00054
00055
00057
float GetZeroOpacityThreshold(
vtkVolume *vol );
00058
00059
00061
00062 vtkSetClampMacro( MaximizeMethod,
int,
00063 VTK_MAXIMIZE_SCALAR_VALUE, VTK_MAXIMIZE_OPACITY );
00064 vtkGetMacro(MaximizeMethod,
int);
00065 void SetMaximizeMethodToScalarValue()
00066 {this->SetMaximizeMethod(
VTK_MAXIMIZE_SCALAR_VALUE);}
00067 void SetMaximizeMethodToOpacity()
00068 {this->SetMaximizeMethod(
VTK_MAXIMIZE_OPACITY);}
00069
const char *GetMaximizeMethodAsString(
void);
00071
00072
00073
void CastRay(
vtkVolumeRayCastDynamicInfo *dynamicInfo,
00074
vtkVolumeRayCastStaticInfo *staticInfo );
00075
00076
00077
00078
protected:
00079 vtkVolumeRayCastMIPFunction();
00080 ~vtkVolumeRayCastMIPFunction();
00081
00082 int MaximizeMethod;
00083
00084
00085
void SpecificFunctionInitialize(
vtkRenderer *ren,
00086
vtkVolume *vol,
00087
vtkVolumeRayCastStaticInfo *staticInfo,
00088
vtkVolumeRayCastMapper *mapper );
00089
00090
00091
private:
00092 vtkVolumeRayCastMIPFunction(
const vtkVolumeRayCastMIPFunction&);
00093
void operator=(
const vtkVolumeRayCastMIPFunction&);
00094 };
00095
00096
00097
00098
#endif