1 package com.android.rs.refocus;
2 
3 /**
4  * A struct containing all the data needed to apply a depth-of-field effect.
5  *
6  * @author chernand@google.com (Carlos Hernandez)
7  */
8 public class DepthOfFieldOptions {
9   public final RGBZ rgbz;
10   public float focalDepth;
11   public float blurInfinity;
12   // The depth of field specifies the depth range in focus (i.e., zero blur) as
13   // a ratio of the focal depth. Its range is [0, 1). The depth of field range
14   // in depth units is computed as
15   // [(1 - depthOfField) * focalDepth,(1 + depthOfField) * focalDepth].
16   public float depthOfField;
17 
18   /**
19    * Creates a {@code DepthOfFieldOptions} from an {@code RGBZ}.
20    *
21    * @param rgbz the {@code RGBZ} to render
22    */
DepthOfFieldOptions(RGBZ rgbz)23   public DepthOfFieldOptions(RGBZ rgbz) {
24     this.focalDepth = (float)rgbz.getFocusDepth();
25     this.depthOfField = (float)rgbz.getDepthOfField();
26     this.blurInfinity = (float)rgbz.getBlurInfinity();
27     this.rgbz = rgbz;
28   }
29 
setFocusPoint(float x, float y)30   public void setFocusPoint(float x, float y) {
31     this.focalDepth = rgbz.getDepth((int)(x * rgbz.getWidth()), (int)(y * rgbz.getHeight()));
32     //this.blurInfinity = lensController.blurInfinityFromAverageBlur(this.focalDepth, this.depthOfField, averageBlur);
33     //System.out.println("new focal depth: " + this.focalDepth);
34   }
35 
setBokeh(float bokeh)36   public void setBokeh(float bokeh) {
37     this.blurInfinity = bokeh * 200;
38   }
39 
setDepthOfField(float depthOfField)40   public void setDepthOfField(float depthOfField) {
41     this.depthOfField = depthOfField;
42   }
43 }
44