## Uses of Class
org.sunflow.core.Ray

- Packages that use Ray
  Package | Description
  --- | ---
  org.sunflow.core |
  org.sunflow.core.accel |
  org.sunflow.core.camera |
  org.sunflow.core.light |
  org.sunflow.core.primitive |

- - ### Uses of Ray in org.sunflow.core

    Methods in org.sunflow.core that return Ray
    Modifier and Type | Method | Description
    --- | --- | ---
    `Ray` | Camera.`getRay​(float x, float y, int imageWidth, int imageHeight, double lensX, double lensY, float time)` | Generate a ray passing though the specified point on the image plane.
    `Ray` | CameraLens.`getRay​(float x, float y, int imageWidth, int imageHeight, double lensX, double lensY, double time)` | Create a new `ray`to be cast through pixel (x,y) on the image plane.
    `Ray` | ShadingState.`getRay()` | Gets the ray that is associated with this state.
    `Ray` | LightSample.`getShadowRay()` | Get the sample's shadow ray.
    `Ray` | Ray.`transform​(Matrix4 m)` | Create a new ray by transforming the supplied one by the given matrix.

    Methods in org.sunflow.core with parameters of type Ray
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | AccelerationStructure.`intersect​(Ray r, IntersectionState istate)` | Intersect the specified ray with the geometry in local space.
    `void` | PrimitiveList.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` | Intersect the specified primitive in local space.
    `void` | LightSample.`setShadowRay​(Ray shadowRay)` | Set the current shadow ray.
    `void` | ShadingState.`traceDiffusePhoton​(Ray r, Color power)` | Trace a new photon from the current location.
    `ShadingState` | ShadingState.`traceFinalGather​(Ray r, int i)` | Trace a final gather ray and return the intersection result as a new render state
    `Color` | ShadingState.`traceGlossy​(Ray r, int i)` | Returns the color obtained by recursively tracing the specified ray.
    `Color` | ShadingState.`traceReflection​(Ray r, int i)` | Returns the color obtained by recursively tracing the specified ray.
    `void` | ShadingState.`traceReflectionPhoton​(Ray r, Color power)` | Trace a new photon from the current location.
    `Color` | ShadingState.`traceRefraction​(Ray r, int i)` | Returns the color obtained by recursively tracing the specified ray.
    `void` | ShadingState.`traceRefractionPhoton​(Ray r, Color power)` | Trace a new photon from the current location.
    `Color` | ShadingState.`traceShadow​(Ray r)` | Trace a shadow ray against the scene, and computes the accumulated opacity along the ray.

  - ### Uses of Ray in org.sunflow.core.accel

    Methods in org.sunflow.core.accel with parameters of type Ray
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | BoundingIntervalHierarchy.`intersect​(Ray r, IntersectionState state)` |
    `void` | KDTree.`intersect​(Ray r, IntersectionState state)` |
    `void` | NullAccelerator.`intersect​(Ray r, IntersectionState state)` |
    `void` | UniformGrid.`intersect​(Ray r, IntersectionState state)` |

  - ### Uses of Ray in org.sunflow.core.camera

    Methods in org.sunflow.core.camera that return Ray
    Modifier and Type | Method | Description
    --- | --- | ---
    `Ray` | FisheyeLens.`getRay​(float x, float y, int imageWidth, int imageHeight, double lensX, double lensY, double time)` |
    `Ray` | PinholeLens.`getRay​(float x, float y, int imageWidth, int imageHeight, double lensX, double lensY, double time)` |
    `Ray` | SphericalLens.`getRay​(float x, float y, int imageWidth, int imageHeight, double lensX, double lensY, double time)` |
    `Ray` | ThinLens.`getRay​(float x, float y, int imageWidth, int imageHeight, double lensX, double lensY, double time)` |

  - ### Uses of Ray in org.sunflow.core.light

    Methods in org.sunflow.core.light with parameters of type Ray
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | ImageBasedLight.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |
    `void` | SunSkyLight.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |

  - ### Uses of Ray in org.sunflow.core.primitive

    Methods in org.sunflow.core.primitive with parameters of type Ray
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | Background.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |
    `void` | BanchoffSurface.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |
    `void` | Box.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |
    `void` | CornellBox.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |
    `void` | CubeGrid.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |
    `void` | Cylinder.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |
    `void` | Hair.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |
    `void` | JuliaFractal.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |
    `void` | ParticleSurface.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |
    `void` | Plane.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |
    `void` | QuadMesh.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |
    `void` | Sphere.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |
    `void` | SphereFlake.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |
    `void` | Torus.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |
    `void` | TriangleMesh.`intersectPrimitive​(Ray r, int primID, IntersectionState state)` |