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

# Rendering/vtkVolumeProVP1000Mapper.h

Go to the documentation of this file.

    00001 /*=========================================================================
    00002
    00003   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkVolumeProVP1000Mapper.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 =========================================================================*/
    00064 #ifndef __vtkVolumeProVP1000Mapper_h
    00065 #define __vtkVolumeProVP1000Mapper_h
    00066
    00067 #include "vtkVolumeProMapper.h"
    00068
    00069 #ifdef _WIN32
    00070 #include "VolumePro1000/inc/vli.h" // Needed for VLI internal types
    00071 #else
    00072 #include "vli3/include/vli.h" // Needed for VLI internal types
    00073 #endif
    00074
    00075 #define VTK_VOLUME_16BIT 3
    00076 #define VTK_VOLUME_32BIT 4
    00077
    00078 class VTK_EXPORT vtkVolumeProVP1000Mapper : public vtkVolumeProMapper
    00079 {
    00080 public:
    00081   vtkTypeRevisionMacro(vtkVolumeProVP1000Mapper,vtkVolumeProMapper);
    00082   static vtkVolumeProVP1000Mapper *New();
    00083   virtual void PrintSelf(ostream& os, vtkIndent indent);
    00084
    00086
    00087   virtual void Render( vtkRenderer *, vtkVolume * );
    00088   virtual int GetAvailableBoardMemory();
    00089   virtual void GetLockSizesForBoardMemory(unsigned int type,
    00090                                           unsigned int *xSize,
    00091                                           unsigned int *ySize,
    00092                                           unsigned int *zSize);
    00094
    00095 protected:
    00096   vtkVolumeProVP1000Mapper();
    00097   ~vtkVolumeProVP1000Mapper();
    00098
    00099   // Update the camera - set the camera matrix
    00100   void UpdateCamera( vtkRenderer *, vtkVolume * );
    00101
    00102   // Update the lights
    00103   void UpdateLights( vtkRenderer *, vtkVolume * );
    00104
    00105   // Update the properties of the volume including transfer functions
    00106   // and material properties
    00107   void UpdateProperties( vtkRenderer *, vtkVolume * );
    00108
    00109   // Update the volume - create it if necessary
    00110   // Set the volume matrix.
    00111   void UpdateVolume( vtkRenderer *, vtkVolume * );
    00112
    00113   // Set the crop box (as defined in the vtkVolumeMapper superclass)
    00114   void UpdateCropping( vtkRenderer *, vtkVolume * );
    00115
    00116   // Set the cursor
    00117   void UpdateCursor( vtkRenderer *, vtkVolume * );
    00118
    00119   // Update the cut plane
    00120   void UpdateCutPlane( vtkRenderer *, vtkVolume * );
    00121
    00122   // Render the image buffer to the screen
    00123   // Defined in the specific graphics implementation.
    00124   virtual void RenderImageBuffer( vtkRenderer  * vtkNotUsed(ren),
    00125                                   vtkVolume    * vol,
    00126                                   int          size[2],
    00127                                   unsigned int * outData )
    00128     {(void)vol; (void)size; (void)outData;}
    00129
    00130   // Render a bounding box of the volume because the texture map would
    00131   // be too large.
    00132   virtual void RenderBoundingBox( vtkRenderer * vtkNotUsed(ren),
    00133                                   vtkVolume   * vol )
    00134     {(void)vol;}
    00135
    00136   // Get the depth buffer values
    00137   virtual void GetDepthBufferValues( vtkRenderer *vtkNotUsed(ren),
    00138                                      int size[2],
    00139                                      unsigned int *outData )
    00140     { (void)outData; }
    00141
    00142 #if ((VTK_MAJOR_VERSION == 3)&&(VTK_MINOR_VERSION == 2))
    00143   vtkGetVectorMacro( VoxelCroppingRegionPlanes, float, 6 );
    00144   void ConvertCroppingRegionPlanesToVoxels();
    00145   float                VoxelCroppingRegionPlanes[6];
    00146 #endif
    00147
    00148
    00149   // Keep track of the size of the data loaded so we know if we can
    00150   // simply update when a change occurs or if we need to release and
    00151   // create again
    00152   int LoadedDataSize[3];
    00153
    00154   VLIImageBuffer *ImageBuffer;
    00155   VLIDepthBuffer *DepthBuffer;
    00156
    00157   VLIStatus CheckSubSampling(const VLIVolume *inVolume,
    00158                              const VLIContext *inContext,
    00159                              int &outImageWidth, int &outImageHeight);
    00160
    00161   int DrawBoundingBox;
    00162
    00163 private:
    00164   vtkVolumeProVP1000Mapper(const vtkVolumeProVP1000Mapper&); // Not implemented
    00165   void operator=(const vtkVolumeProVP1000Mapper&); // Not implemented
    00166 };
    00167
    00168
    00169
    00170 #endif
    00171
    00172
    00173