changes: 1) fixes problems in the original EyeTracking benchmark 2) fix a bug in...
[IRC.git] / Robust / src / Benchmarks / SSJava / EyeTracking / EyePosition.java
index 11aef4cb5adddc3399a0775a3687f05d7d8873c1..8422220a1d6898e58e288792631597a1da431c0f 100644 (file)
  * along with LEA. If not, see <http://www.gnu.org/licenses/>.
  */
 
-package de.darkblue.lea.model;
-
-import java.awt.Point;
-import java.awt.geom.Rectangle2D;
-
 /**
  * No description given.
  * 
  * @author Florian Frankenberger
  */
+@LATTICE("POS")
+@METHODDEFAULT("OUT<THIS,THISLOC=THIS,RETURNLOC=OUT")
 public class EyePosition {
-    private int x;
-    private int y;
-    private Rectangle2D faceRect;
-
-    public EyePosition(Point p, Rectangle2D faceRect) {
-        this(p.x, p.y, faceRect);
-    }
-    
-    public EyePosition(int x, int y, Rectangle2D faceRect) {
-        this.x = x;
-        this.y = y;
-        this.faceRect = faceRect;
-    }
-
-    public int getX() {
-        return this.x;
-    }
+  @LOC("POS")
+  private int x;
+  @LOC("POS")
+  private int y;
+  @LOC("POS") private double facex;
+  @LOC("POS") private double facey;
+  @LOC("POS") private double facewidth;
+  @LOC("POS") private double faceheight;
 
-    public int getY() {
-        return this.y;
-    }
-    
-    public Deviation getDeviation(EyePosition oldEyePosition) {
-        if (oldEyePosition == null) return Deviation.NONE;
+  // private Rectangle2D faceRect;
 
-        //first we check if the faceRects are corresponding
-        double widthChange = (this.faceRect.getWidth() - oldEyePosition.faceRect.getWidth()) / this.faceRect.getWidth();
-        if (widthChange > 0.1) return Deviation.NONE;
+  // public EyePosition(Point p, Rectangle2D faceRect) {
+  // this(p.x, p.y, faceRect);
+  // }
+  //
+  // public EyePosition(int x, int y, Rectangle2D faceRect) {
+  // this.x = x;
+  // this.y = y;
+  // this.faceRect = faceRect;
+  // }
 
-        int maxDeviationX = (int)Math.round(this.faceRect.getWidth() / 4f);
-        int maxDeviationY = (int)Math.round(this.faceRect.getWidth() / 8f);
-        int minDeviation = (int)Math.round(this.faceRect.getWidth() / 16f);
+  public EyePosition(int x, int y) {
+    this.x = x;
+    this.y = y;
+  }
 
-        int deviationX = Math.abs(x - oldEyePosition.x);
-        int directionX = sgn(x - oldEyePosition.x);
-        if (deviationX < minDeviation || deviationX > maxDeviationX) directionX = 0;
+  public int getX() {
+    return this.x;
+  }
 
-        int deviationY = Math.abs(y - oldEyePosition.y);
-        int directionY = sgn(y - oldEyePosition.y);
-        if (deviationY < minDeviation || deviationY > maxDeviationY) directionY = 0;
+  public int getY() {
+    return this.y;
+  }
 
-        double deviationXPercent = deviationX / this.faceRect.getWidth();
-        double deviationYPercent = deviationY / this.faceRect.getWidth();
-        
-        System.out.println(String.format("devX: %.2f | devY: %.2f", deviationXPercent*100f, deviationYPercent*100f));
-        return Deviation.getDirectionFor(directionX, directionY);
-    }
+  public String toString() {
+    return "(" + x + "," + y + ")";
+  }
 
+  // public Deviation getDeviation(EyePosition oldEyePosition) {
+  // if (oldEyePosition == null) return Deviation.NONE;
+  //
+  // //first we check if the faceRects are corresponding
+  // double widthChange = (this.faceRect.getWidth() -
+  // oldEyePosition.faceRect.getWidth()) / this.faceRect.getWidth();
+  // if (widthChange > 0.1) return Deviation.NONE;
+  //
+  // int maxDeviationX = (int)Math.round(this.faceRect.getWidth() / 4f);
+  // int maxDeviationY = (int)Math.round(this.faceRect.getWidth() / 8f);
+  // int minDeviation = (int)Math.round(this.faceRect.getWidth() / 16f);
+  //
+  // int deviationX = Math.abs(x - oldEyePosition.x);
+  // int directionX = sgn(x - oldEyePosition.x);
+  // if (deviationX < minDeviation || deviationX > maxDeviationX) directionX =
+  // 0;
+  //
+  // int deviationY = Math.abs(y - oldEyePosition.y);
+  // int directionY = sgn(y - oldEyePosition.y);
+  // if (deviationY < minDeviation || deviationY > maxDeviationY) directionY =
+  // 0;
+  //
+  // double deviationXPercent = deviationX / this.faceRect.getWidth();
+  // double deviationYPercent = deviationY / this.faceRect.getWidth();
+  //
+  // System.out.println(String.format("devX: %.2f | devY: %.2f",
+  // deviationXPercent*100f, deviationYPercent*100f));
+  // return Deviation.getDirectionFor(directionX, directionY);
+  // }
 
-    private static int sgn(int i) {
-        if (i > 0) return 1;
-        if (i < 0) return -1;
-        return 0;
-    }
+  private static int sgn(int i) {
+    if (i > 0)
+      return 1;
+    if (i < 0)
+      return -1;
+    return 0;
+  }
 }