org.sunflow.core.camera
Class FisheyeLens

java.lang.Object
  extended by org.sunflow.core.camera.FisheyeLens
All Implemented Interfaces:
CameraLens, RenderObject

public class FisheyeLens
extends java.lang.Object
implements CameraLens


Constructor Summary
FisheyeLens()
           
 
Method Summary
 Ray getRay(float x, float y, int imageWidth, int imageHeight, double lensX, double lensY, double time)
          Create a new rayto 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

FisheyeLens

public FisheyeLens()
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 rayto 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