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

vtkVolumeRayCastStructures.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkVolumeRayCastStructures.h,v $
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00015 
00036 #ifndef __vtkVolumeRayCastStructures_h
00037 #define __vtkVolumeRayCastStructures_h
00038 
00039 class vtkVolume;
00040 
00041 typedef struct 
00042 {
00043   // A pointer to the volume
00044   vtkVolume                    *Volume;
00045 
00046   // Matrices for switching from view to volume coordinate, and back
00047   float                        WorldToVolumeMatrix[16];
00048   float                        VolumeToWorldMatrix[16];
00049   float                        ViewToVolumeMatrix[16];
00050 
00051   // The distance from the camera to the center of the volume
00052   // To be used as a simple depth return value
00053   float                        CenterDistance;
00054 
00055   // The type of the data and a pointer to it, and the information
00056   // about its size, spacing, origin and precomputed increment
00057   int                          ScalarDataType;
00058   void                         *ScalarDataPointer;
00059   int                          DataIncrement[3];
00060   int                          DataSize[3];
00061   float                        DataSpacing[3];
00062   float                        DataOrigin[3];
00063 
00064   // Information from the vtkVolumeProperty
00065   int                          Shading;
00066   int                          ColorChannels;
00067   float                        Color[3];
00068   int                          InterpolationType;
00069   float                        RGBTextureCoefficient;
00070 
00071   // The shading tables from the vtkEncodedGradientShader
00072   // that will be used for shading the volume.
00073   float                        *RedDiffuseShadingTable;
00074   float                        *GreenDiffuseShadingTable;
00075   float                        *BlueDiffuseShadingTable;
00076   float                        *RedSpecularShadingTable;
00077   float                        *GreenSpecularShadingTable;
00078   float                        *BlueSpecularShadingTable;
00079 
00080   // Info needed to do solid textures - a pointer to the texture
00081   // and info about its size, spacing, origin, and precomputed 
00082   // increments
00083   unsigned char                *RGBDataPointer;
00084   int                          RGBDataIncrement[3];
00085   int                          RGBDataSize[3];
00086   float                        RGBDataSpacing[3];
00087   float                        RGBDataOrigin[3];
00088 
00089   // Info needed from the gradient estimator
00090   unsigned short               *EncodedNormals;
00091   unsigned char                *GradientMagnitudes;
00092 
00093 } vtkRayCastVolumeInfo;
00094 
00095 
00096 #endif