VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/Rendering/Volume/vtkUnstructuredGridHomogeneousRayIntegrator.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkUnstructuredGridHomogeneousRayIntegrator.h
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 
00016 /*
00017  * Copyright 2004 Sandia Corporation.
00018  * Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00019  * license for use of this work by or on behalf of the
00020  * U.S. Government. Redistribution and use in source and binary forms, with
00021  * or without modification, are permitted provided that this Notice and any
00022  * statement of authorship are reproduced on all copies.
00023  */
00024 
00039 #ifndef vtkUnstructuredGridHomogeneousRayIntegrator_h
00040 #define vtkUnstructuredGridHomogeneousRayIntegrator_h
00041 
00042 #include "vtkRenderingVolumeModule.h" // For export macro
00043 #include "vtkUnstructuredGridVolumeRayIntegrator.h"
00044 
00045 class vtkVolumeProperty;
00046 
00047 class VTKRENDERINGVOLUME_EXPORT vtkUnstructuredGridHomogeneousRayIntegrator : public vtkUnstructuredGridVolumeRayIntegrator
00048 {
00049 public:
00050   vtkTypeMacro(vtkUnstructuredGridHomogeneousRayIntegrator,
00051                        vtkUnstructuredGridVolumeRayIntegrator);
00052   static vtkUnstructuredGridHomogeneousRayIntegrator *New();
00053   virtual void PrintSelf(ostream &os, vtkIndent indent);
00054 
00055   virtual void Initialize(vtkVolume *volume, vtkDataArray *scalars);
00056 
00057   virtual void Integrate(vtkDoubleArray *intersectionLengths,
00058                          vtkDataArray *nearIntersections,
00059                          vtkDataArray *farIntersections,
00060                          float color[4]);
00061 
00063 
00066   vtkSetMacro(TransferFunctionTableSize, int);
00067   vtkGetMacro(TransferFunctionTableSize, int);
00069 
00070 protected:
00071   vtkUnstructuredGridHomogeneousRayIntegrator();
00072   ~vtkUnstructuredGridHomogeneousRayIntegrator();
00073 
00074   vtkVolume *Volume;
00075   vtkVolumeProperty *Property;
00076 
00077   int      NumComponents;
00078   float  **ColorTable;
00079   float  **AttenuationTable;
00080   double  *TableShift;
00081   double  *TableScale;
00082   vtkTimeStamp TablesBuilt;
00083 
00084   int UseAverageColor;
00085   int TransferFunctionTableSize;
00086 
00087   virtual void GetTransferFunctionTables(vtkDataArray *scalars);
00088 
00089 private:
00090   vtkUnstructuredGridHomogeneousRayIntegrator(const vtkUnstructuredGridHomogeneousRayIntegrator&);  // Not implemented.
00091   void operator=(const vtkUnstructuredGridHomogeneousRayIntegrator&);  // Not implemented
00092 };
00093 
00094 #endif //vtkUnstructuredGridHomogeneousRayIntegrator_h