00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00032 #ifndef __vtkUnstructuredGridVolumeRayCastIterator_h
00033 #define __vtkUnstructuredGridVolumeRayCastIterator_h
00034 
00035 #include "vtkObject.h"
00036 
00037 class vtkIdList;
00038 class vtkDoubleArray;
00039 class vtkDataArray;
00040 
00041 class VTK_VOLUMERENDERING_EXPORT vtkUnstructuredGridVolumeRayCastIterator : public vtkObject
00042 {
00043 public:
00044   vtkTypeMacro(vtkUnstructuredGridVolumeRayCastIterator, vtkObject);
00045   virtual void PrintSelf(ostream &os, vtkIndent indent);
00046 
00049   virtual void Initialize(int x, int y) = 0;
00050 
00052 
00061   virtual vtkIdType GetNextIntersections(vtkIdList *intersectedCells,
00062                                          vtkDoubleArray *intersectionLengths,
00063                                          vtkDataArray *scalars,
00064                                          vtkDataArray *nearIntersections,
00065                                          vtkDataArray *farIntersections) = 0;
00067 
00069 
00071   vtkSetVector2Macro(Bounds, double);
00072   vtkGetVector2Macro(Bounds, double);
00074 
00075   
00076   
00077   
00078   vtkSetMacro(MaxNumberOfIntersections, vtkIdType);
00079   vtkGetMacro(MaxNumberOfIntersections, vtkIdType);
00080 
00081 protected:
00082   vtkUnstructuredGridVolumeRayCastIterator();
00083   ~vtkUnstructuredGridVolumeRayCastIterator();
00084 
00085   double Bounds[2];
00086 
00087   vtkIdType MaxNumberOfIntersections;
00088 
00089 private:
00090   vtkUnstructuredGridVolumeRayCastIterator(const vtkUnstructuredGridVolumeRayCastIterator&);  
00091   void operator=(const vtkUnstructuredGridVolumeRayCastIterator&);  
00092 };
00093 
00094 #endif //__vtkUnstructuredGridRayCastIterator_h
00095