Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

Rendering/vtkVolumeTextureMapper2D.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkVolumeTextureMapper2D.h,v $
00005   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015 =========================================================================*/
00035 #ifndef __vtkVolumeTextureMapper2D_h
00036 #define __vtkVolumeTextureMapper2D_h
00037 
00038 #include "vtkVolumeTextureMapper.h"
00039 
00040 class VTK_RENDERING_EXPORT vtkVolumeTextureMapper2D : public vtkVolumeTextureMapper
00041 {
00042 public:
00043   vtkTypeRevisionMacro(vtkVolumeTextureMapper2D,vtkVolumeTextureMapper);
00044   void PrintSelf( ostream& os, vtkIndent indent );
00045 
00046   static vtkVolumeTextureMapper2D *New();
00047   
00049 
00054   vtkSetVector2Macro( TargetTextureSize, int );
00055   vtkGetVector2Macro( TargetTextureSize, int );
00057   
00059 
00064   vtkSetMacro( MaximumNumberOfPlanes, int );
00065   vtkGetMacro( MaximumNumberOfPlanes, int );
00067 
00069 
00073   vtkSetMacro( MaximumStorageSize, int );
00074   vtkGetMacro( MaximumStorageSize, int );
00076   
00077 //BTX
00078 
00081   virtual void Render(vtkRenderer *, vtkVolume *) {};
00082 
00083   virtual void RenderQuads( int vtkNotUsed(count),
00084                             float *vtkNotUsed(v), float *vtkNotUsed(t),
00085                             unsigned char *vtkNotUsed(texture),
00086                             int vtkNotUsed(size)[2],
00087                             int vtkNotUsed(reverseFlag)) {};
00088 
00091   int GetInternalSkipFactor() {return this->InternalSkipFactor;};
00092   
00093   int *GetAxisTextureSize() {return &(this->AxisTextureSize[0][0]);};
00094 
00095   int GetSaveTextures() {return this->SaveTextures;};
00096 
00097   unsigned char *GetTexture() {return this->Texture;};
00098   
00099 //ETX
00100 
00101 
00102 protected:
00103   vtkVolumeTextureMapper2D();
00104   ~vtkVolumeTextureMapper2D();
00105 
00106   void InitializeRender( vtkRenderer *ren, vtkVolume *vol )
00107     {this->InitializeRender( ren, vol, -1 );}
00108   
00109   void InitializeRender( vtkRenderer *ren, vtkVolume *vol, int majorDirection );
00110 
00111   void GenerateTexturesAndRenderQuads( vtkRenderer *ren, vtkVolume *vol );
00112 
00113   int  MajorDirection;
00114   int  TargetTextureSize[2];
00115 
00116   int  MaximumNumberOfPlanes;
00117   int  InternalSkipFactor;
00118   int  MaximumStorageSize;
00119   
00120   unsigned char  *Texture;
00121   int             TextureSize;
00122   int             SaveTextures;
00123   vtkTimeStamp    TextureMTime;
00124   
00125   int             AxisTextureSize[3][3];
00126   void            ComputeAxisTextureSize( int axis, int *size );
00127   
00128   void           RenderSavedTexture();
00129   
00130 private:
00131   vtkVolumeTextureMapper2D(const vtkVolumeTextureMapper2D&);  // Not implemented.
00132   void operator=(const vtkVolumeTextureMapper2D&);  // Not implemented.
00133 };
00134 
00135 
00136 #endif
00137 
00138