VTK  9.3.20240419
vtkRayCastStructures.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 
15 #ifndef vtkRayCastStructures_h
16 #define vtkRayCastStructures_h
17 
18 #include "vtkABINamespace.h"
19 
20 VTK_ABI_NAMESPACE_BEGIN
22 {
23  // These are the input values that define the ray. Depending on
24  // whether we are casting a WorldRay or a ViewRay, these are in
25  // world coordinates or view coordinates.
26  float Origin[3];
27  float Direction[3];
28 
29  // The pixel location for the ray that is being cast can be
30  // important, for example if hardware ray bounding is being used
31  // and the location in the depth buffer must be matched to this
32  // ray.
33  int Pixel[2];
34 
35  // The world coordinate location of the camera is important for the
36  // ray caster to be able to return a Z value for the intersection
37  float CameraPosition[3];
38 
39  // This input value defines the size of the image
40  int ImageSize[2];
41 
42  // These are input values for clipping but may be changed
43  // along the way
44  float NearClip;
45  float FarClip;
46 
47  // These are the return values - RGBA and Z
48  float Color[4];
49  float Depth;
50 
51  // Some additional space that may be useful for the
52  // specific implementation of the ray caster. This structure
53  // is a convenient place to put it, since there is one
54  // per thread so that writing to these locations is safe
55 
56  // Ray information transformed into local coordinates
57  float TransformedStart[4];
58  float TransformedEnd[4];
61 
62  // The number of steps we want to take if this is
63  // a ray caster that takes steps
65 
66  // The number of steps we actually take if this is
67  // a ray caster that takes steps
69 };
71 
72 VTK_ABI_NAMESPACE_END
73 #endif
74 // VTK-HeaderTest-Exclude: vtkRayCastStructures.h