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 "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 vtkTypeMacro(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 //BTX 00069 void CastRay( vtkVolumeRayCastDynamicInfo *dynamicInfo, 00070 vtkVolumeRayCastStaticInfo *staticInfo ); 00071 //ETX 00072 00073 00074 protected: 00075 vtkVolumeRayCastMIPFunction(); 00076 ~vtkVolumeRayCastMIPFunction(); 00077 00078 int MaximizeMethod; 00079 00080 //BTX 00081 void SpecificFunctionInitialize( vtkRenderer *ren, 00082 vtkVolume *vol, 00083 vtkVolumeRayCastStaticInfo *staticInfo, 00084 vtkVolumeRayCastMapper *mapper ); 00085 00086 //ETX 00087 private: 00088 vtkVolumeRayCastMIPFunction(const vtkVolumeRayCastMIPFunction&); // Not implemented. 00089 void operator=(const vtkVolumeRayCastMIPFunction&); // Not implemented. 00090 }; 00091 00092 00093 00094 #endif