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

Rendering/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 
00026 #ifndef __vtkVolumeRayCastStructures_h
00027 #define __vtkVolumeRayCastStructures_h
00028 
00029 class vtkVolume;
00030 
00031 typedef struct 
00032 {
00033   // A pointer to the volume
00034   vtkVolume                    *Volume;
00035 
00036   // Matrices for switching from view to volume coordinate, and back
00037   float                        WorldToVolumeMatrix[16];
00038   float                        VolumeToWorldMatrix[16];
00039   float                        ViewToVolumeMatrix[16];
00040 
00041   // The distance from the camera to the center of the volume
00042   // To be used as a simple depth return value
00043   float                        CenterDistance;
00044 
00045   // The type of the data and a pointer to it, and the information
00046   // about its size, spacing, origin and precomputed increment
00047   int                          ScalarDataType;
00048   void                         *ScalarDataPointer;
00049   int                          DataIncrement[3];
00050   int                          DataSize[3];
00051   float                        DataSpacing[3];
00052   float                        DataOrigin[3];
00053 
00054   // Information from the vtkVolumeProperty
00055   int                          Shading;
00056   int                          ColorChannels;
00057   float                        Color[3];
00058   int                          InterpolationType;
00059   float                        RGBTextureCoefficient;
00060 
00061   // The shading tables from the vtkEncodedGradientShader
00062   // that will be used for shading the volume.
00063   float                        *RedDiffuseShadingTable;
00064   float                        *GreenDiffuseShadingTable;
00065   float                        *BlueDiffuseShadingTable;
00066   float                        *RedSpecularShadingTable;
00067   float                        *GreenSpecularShadingTable;
00068   float                        *BlueSpecularShadingTable;
00069 
00070   // Info needed to do solid textures - a pointer to the texture
00071   // and info about its size, spacing, origin, and precomputed 
00072   // increments
00073   unsigned char                *RGBDataPointer;
00074   int                          RGBDataIncrement[3];
00075   int                          RGBDataSize[3];
00076   float                        RGBDataSpacing[3];
00077   float                        RGBDataOrigin[3];
00078 
00079   // Info needed from the gradient estimator
00080   unsigned short               *EncodedNormals;
00081   unsigned char                *GradientMagnitudes;
00082 
00083 } vtkRayCastVolumeInfo;
00084 
00085 
00086 #endif