00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00032 #ifndef __vtkFixedPointRayCastImage_h
00033 #define __vtkFixedPointRayCastImage_h
00034 
00035 #include "vtkObject.h"
00036 
00037 class VTK_VOLUMERENDERING_EXPORT vtkFixedPointRayCastImage : public vtkObject
00038 {
00039 public:
00040   static vtkFixedPointRayCastImage *New();
00041   vtkTypeMacro(vtkFixedPointRayCastImage,vtkObject);
00042   virtual void PrintSelf(ostream& os, vtkIndent indent);
00043 
00047   unsigned short *GetImage() {return this->Image;}
00048   
00050 
00052   vtkSetVector2Macro( ImageViewportSize, int );
00053   vtkGetVectorMacro(  ImageViewportSize, int, 2 );
00055 
00057 
00061   vtkSetVector2Macro( ImageMemorySize, int );
00062   vtkGetVectorMacro(  ImageMemorySize, int, 2 );
00064   
00066 
00070   vtkSetVector2Macro( ImageInUseSize, int );
00071   vtkGetVectorMacro(  ImageInUseSize, int, 2 );
00073   
00075 
00080   vtkSetVector2Macro( ImageOrigin, int );
00081   vtkGetVectorMacro(  ImageOrigin, int, 2 );
00083 
00085 
00089   vtkSetMacro( ImageSampleDistance, float );
00090   vtkGetMacro( ImageSampleDistance, float );
00092   
00095   void AllocateImage();
00096   
00098   void ClearImage();
00099   
00101 
00106   vtkSetVector2Macro( ZBufferSize, int );
00107   vtkGetVectorMacro(  ZBufferSize, int, 2 );
00109   
00111 
00117   vtkSetVector2Macro( ZBufferOrigin, int );
00118   vtkGetVectorMacro(  ZBufferOrigin, int, 2 );
00120 
00122 
00126   vtkSetClampMacro( UseZBuffer, int, 0, 1 );
00127   vtkGetMacro( UseZBuffer, int );
00128   vtkBooleanMacro( UseZBuffer, int );
00130   
00135   float         GetZBufferValue( int x, int y );  
00136   
00140   float *GetZBuffer() {return this->ZBuffer;}
00141   
00142   
00143   
00144   void AllocateZBuffer();
00145   
00146 protected:
00147   vtkFixedPointRayCastImage();
00148   ~vtkFixedPointRayCastImage();
00149   
00150   
00151   int             ImageViewportSize[2];
00152   
00153   
00154   
00155   
00156   
00157   int             ImageMemorySize[2];
00158   
00159   
00160   
00161   
00162   
00163   int             ImageInUseSize[2];
00164   
00165   
00166   
00167   int             ImageOrigin[2];
00168 
00169   
00170   
00171   float           ImageSampleDistance;
00172   
00173   
00174   unsigned short *Image;
00175   
00176   
00177   int             ZBufferSize[2];
00178   
00179   
00180   
00181   
00182   int             ZBufferMemorySize;
00183   
00184   
00185   
00186   int             ZBufferOrigin[2];
00187 
00188   
00189   int             UseZBuffer;
00190   
00191   
00192   float          *ZBuffer;
00193   
00194   
00195 private:
00196   vtkFixedPointRayCastImage(const vtkFixedPointRayCastImage&);  
00197   void operator=(const vtkFixedPointRayCastImage&);  
00198 };
00199 
00200 #endif
00201 
00202 
00203 
00204 
00205