00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00032 #ifndef __vtkUnstructuredGridRayCastIterator_h
00033 #define __vtkUnstructuredGridRayCastIterator_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 vtkTypeRevisionMacro(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