VTK  9.3.20240327
vtkUnstructuredGridVolumeRayCastIterator.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
3 
19 #ifndef vtkUnstructuredGridVolumeRayCastIterator_h
20 #define vtkUnstructuredGridVolumeRayCastIterator_h
21 
22 #include "vtkObject.h"
23 #include "vtkRenderingVolumeModule.h" // For export macro
24 
25 VTK_ABI_NAMESPACE_BEGIN
26 class vtkIdList;
27 class vtkDoubleArray;
28 class vtkDataArray;
29 
30 class VTKRENDERINGVOLUME_EXPORT vtkUnstructuredGridVolumeRayCastIterator : public vtkObject
31 {
32 public:
34  void PrintSelf(ostream& os, vtkIndent indent) override;
35 
40  virtual void Initialize(int x, int y) = 0;
41 
53  virtual vtkIdType GetNextIntersections(vtkIdList* intersectedCells,
54  vtkDoubleArray* intersectionLengths, vtkDataArray* scalars, vtkDataArray* nearIntersections,
55  vtkDataArray* farIntersections) = 0;
56 
58 
62  vtkSetVector2Macro(Bounds, double);
63  vtkGetVector2Macro(Bounds, double);
65 
66  // Description:
67  // Set/get the maximum number of intersections returned with a call to
68  // GetNextIntersections. Set to 32 by default.
69  vtkSetMacro(MaxNumberOfIntersections, vtkIdType);
70  vtkGetMacro(MaxNumberOfIntersections, vtkIdType);
71 
72 protected:
75 
76  double Bounds[2];
77 
79 
80 private:
83  void operator=(const vtkUnstructuredGridVolumeRayCastIterator&) = delete;
84 };
85 
86 VTK_ABI_NAMESPACE_END
87 #endif // vtkUnstructuredGridRayCastIterator_h
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:154
dynamic, self-adjusting array of double
list of point or cell ids
Definition: vtkIdList.h:132
a simple class to control print indentation
Definition: vtkIndent.h:108
abstract base class for most VTK objects
Definition: vtkObject.h:161
vtkUnstructuredGridVolumeRayCastIterator is a superclass for iterating over the intersections of a vi...
virtual void Initialize(int x, int y)=0
Initializes the iteration to the start of the ray at the given screen coordinates.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual vtkIdType GetNextIntersections(vtkIdList *intersectedCells, vtkDoubleArray *intersectionLengths, vtkDataArray *scalars, vtkDataArray *nearIntersections, vtkDataArray *farIntersections)=0
Get the intersections of the next several cells.
int vtkIdType
Definition: vtkType.h:315