org.sunflow.core.camera

## Class SphericalLens

- java.lang.Object
- - org.sunflow.core.camera.SphericalLens

All Implemented Interfaces:
  CameraLens, RenderObject

    public class SphericalLens
    extends java.lang.Object
    implements CameraLens

### Constructor Summary

Constructors
Constructor and Description
`SphericalLens()`

### Method Summary

Methods
`Ray` `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.
`boolean` `update(ParameterList pl, SunflowAPI api)` Update this object given a list of parameters.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### SphericalLens

    public SphericalLens()

### Method Detail

#### update

    public boolean update(ParameterList pl,
                 SunflowAPI api)

Description copied from interface: `RenderObject`
Update this object given a list of parameters. This method is guarenteed to be called at least once on every object, but it should correctly handle empty parameter lists. This means that the object should be in a valid state from the time it is constructed. This method should also return true or false depending on whether the update was succesfull or not.

Specified by:
  `update` in interface `RenderObject`
Parameters:
  `pl` - list of parameters to read from
  `api` - reference to the current scene
Returns:
  `true` if the update is succesfull, `false` otherwise

#### getRay

    public Ray getRay(float x,
             float y,
             int imageWidth,
             int imageHeight,
             double lensX,
             double lensY,
             double time)

Description copied from interface: `CameraLens`
Create a new `ray`to be cast through pixel (x,y) on the image plane. Two sampling parameters are provided for lens sampling. They are guarenteed to be in the interval [0,1). They can be used to perturb the position of the source of the ray on the lens of the camera for DOF effects. A third sampling parameter is provided for motion blur effects. Note that the `Camera` class already handles camera movement motion blur. Rays should be generated in camera space - that is, with the eye at the origin, looking down the -Z axis, with +Y pointing up.

Specified by:
  `getRay` in interface `CameraLens`
Parameters:
  `x` - x coordinate of the (sub)pixel
  `y` - y coordinate of the (sub)pixel
  `imageWidth` - image width in pixels
  `imageHeight` - image height in pixels
  `lensX` - x lens sampling parameter
  `lensY` - y lens sampling parameter
  `time` - time sampling parameter
Returns:
  a new ray passing through the given pixel