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_VOLUMERENDERING_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