VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkVolumeRayCastMIPFunction.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00036 #ifndef __vtkVolumeRayCastMIPFunction_h 00037 #define __vtkVolumeRayCastMIPFunction_h 00038 00039 #include "vtkRenderingVolumeModule.h" // For export macro 00040 #include "vtkVolumeRayCastFunction.h" 00041 00042 #define VTK_MAXIMIZE_SCALAR_VALUE 0 00043 #define VTK_MAXIMIZE_OPACITY 1 00044 00045 class VTKRENDERINGVOLUME_EXPORT vtkVolumeRayCastMIPFunction : public vtkVolumeRayCastFunction 00046 { 00047 public: 00048 static vtkVolumeRayCastMIPFunction *New(); 00049 vtkTypeMacro(vtkVolumeRayCastMIPFunction,vtkVolumeRayCastFunction); 00050 void PrintSelf( ostream& os, vtkIndent indent ); 00051 00052 00054 float GetZeroOpacityThreshold( vtkVolume *vol ); 00055 00056 00058 00059 vtkSetClampMacro( MaximizeMethod, int, 00060 VTK_MAXIMIZE_SCALAR_VALUE, VTK_MAXIMIZE_OPACITY ); 00061 vtkGetMacro(MaximizeMethod,int); 00062 void SetMaximizeMethodToScalarValue() 00063 {this->SetMaximizeMethod(VTK_MAXIMIZE_SCALAR_VALUE);} 00064 void SetMaximizeMethodToOpacity() 00065 {this->SetMaximizeMethod(VTK_MAXIMIZE_OPACITY);} 00066 const char *GetMaximizeMethodAsString(void); 00068 00069 //BTX 00070 void CastRay( vtkVolumeRayCastDynamicInfo *dynamicInfo, 00071 vtkVolumeRayCastStaticInfo *staticInfo ); 00072 //ETX 00073 00074 00075 protected: 00076 vtkVolumeRayCastMIPFunction(); 00077 ~vtkVolumeRayCastMIPFunction(); 00078 00079 int MaximizeMethod; 00080 00081 //BTX 00082 void SpecificFunctionInitialize( vtkRenderer *ren, 00083 vtkVolume *vol, 00084 vtkVolumeRayCastStaticInfo *staticInfo, 00085 vtkVolumeRayCastMapper *mapper ); 00086 00087 //ETX 00088 private: 00089 vtkVolumeRayCastMIPFunction(const vtkVolumeRayCastMIPFunction&); // Not implemented. 00090 void operator=(const vtkVolumeRayCastMIPFunction&); // Not implemented. 00091 }; 00092 00093 00094 00095 #endif