00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00045 #ifndef __vtkUnstructuredGridLinearRayIntegrator_h
00046 #define __vtkUnstructuredGridLinearRayIntegrator_h
00047
00048 #include "vtkUnstructuredGridVolumeRayIntegrator.h"
00049
00050 class vtkLinearRayIntegratorTransferFunction;
00051 class vtkVolumeProperty;
00052
00053 class VTK_VOLUMERENDERING_EXPORT vtkUnstructuredGridLinearRayIntegrator : public vtkUnstructuredGridVolumeRayIntegrator
00054 {
00055 public:
00056 vtkTypeMacro(vtkUnstructuredGridLinearRayIntegrator,
00057 vtkUnstructuredGridVolumeRayIntegrator);
00058 static vtkUnstructuredGridLinearRayIntegrator *New();
00059 virtual void PrintSelf(ostream &os, vtkIndent indent);
00060
00061 virtual void Initialize(vtkVolume *volume, vtkDataArray *scalars);
00062
00063 virtual void Integrate(vtkDoubleArray *intersectionLengths,
00064 vtkDataArray *nearIntersections,
00065 vtkDataArray *farIntersections,
00066 float color[4]);
00067
00069
00071 static void IntegrateRay(double length,
00072 double intensity_front, double attenuation_front,
00073 double intensity_back, double attenuation_back,
00074 float color[4]);
00075 static void IntegrateRay(double length,
00076 const double color_front[3],
00077 double attenuation_front,
00078 const double color_back[3],
00079 double attenuation_back,
00080 float color[4]);
00082
00084
00086 static float Psi(float length,
00087 float attenuation_front, float attenuation_back);
00089
00090 protected:
00091 vtkUnstructuredGridLinearRayIntegrator();
00092 ~vtkUnstructuredGridLinearRayIntegrator();
00093
00094 vtkVolumeProperty *Property;
00095
00096 vtkLinearRayIntegratorTransferFunction *TransferFunctions;
00097 vtkTimeStamp TransferFunctionsModified;
00098 int NumIndependentComponents;
00099
00100 private:
00101 vtkUnstructuredGridLinearRayIntegrator(const vtkUnstructuredGridLinearRayIntegrator&);
00102 void operator=(const vtkUnstructuredGridLinearRayIntegrator&);
00103 };
00104
00105 #endif //__vtkUnstructuredGridLinearRayIntegrator_h