## 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 and Description
    --- | ---
    `Ray` | ShadingState.`getRay()` Gets the ray that is associated with this state.
    `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` | 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` | 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 and 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 and Description
    --- | ---
    `void` | KDTree.`intersect(Ray r, IntersectionState state)`
    `void` | UniformGrid.`intersect(Ray r, IntersectionState state)`
    `void` | BoundingIntervalHierarchy.`intersect(Ray r, IntersectionState state)`
    `void` | NullAccelerator.`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 and Description
    --- | ---
    `Ray` | ThinLens.`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` | 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)`

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

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