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