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