00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00035 #ifndef __vtkOpenGLProjectedTetrahedraMapper_h
00036 #define __vtkOpenGLProjectedTetrahedraMapper_h
00037
00038 #include "vtkProjectedTetrahedraMapper.h"
00039
00040 class vtkVisibilitySort;
00041 class vtkUnsignedCharArray;
00042 class vtkFloatArray;
00043
00044 class VTK_VOLUMERENDERING_EXPORT vtkOpenGLProjectedTetrahedraMapper : public vtkProjectedTetrahedraMapper
00045 {
00046 public:
00047 vtkTypeMacro(vtkOpenGLProjectedTetrahedraMapper,
00048 vtkProjectedTetrahedraMapper);
00049 static vtkOpenGLProjectedTetrahedraMapper *New();
00050 virtual void PrintSelf(ostream &os, vtkIndent indent);
00051
00052 virtual void ReleaseGraphicsResources(vtkWindow *window);
00053
00054 virtual void Render(vtkRenderer *renderer, vtkVolume *volume);
00055
00056 protected:
00057 vtkOpenGLProjectedTetrahedraMapper();
00058 ~vtkOpenGLProjectedTetrahedraMapper();
00059
00060 vtkUnsignedCharArray *Colors;
00061 int UsingCellColors;
00062
00063 vtkFloatArray *TransformedPoints;
00064
00065 float MaxCellSize;
00066 vtkTimeStamp InputAnalyzedTime;
00067 vtkTimeStamp OpacityTextureTime;
00068 vtkTimeStamp ColorsMappedTime;
00069
00070 unsigned int OpacityTexture;
00071
00072 int GaveError;
00073
00074 vtkVolumeProperty *LastProperty;
00075
00076 float *SqrtTable;
00077 float SqrtTableBias;
00078
00079 virtual void ProjectTetrahedra(vtkRenderer *renderer, vtkVolume *volume);
00080
00081 float GetCorrectedDepth(float x, float y, float z1, float z2,
00082 const float inverse_projection_mat[16],
00083 int use_linear_depth_correction,
00084 float linear_depth_correction);
00085
00086 private:
00087 vtkOpenGLProjectedTetrahedraMapper(const vtkOpenGLProjectedTetrahedraMapper &);
00088 void operator=(const vtkOpenGLProjectedTetrahedraMapper &);
00089 };
00090
00091 #endif