changes: now Inference engine works fine with the EyeTracking benchmark.
[IRC.git] / Robust / src / Benchmarks / SSJava / EyeTrackingInfer / DeviationScanner.java
index 4cc353e..412d9e2 100644 (file)
  * @author Florian Frankenberger\r
  */\r
 \r
  * @author Florian Frankenberger\r
  */\r
 \r
-\r
 public class DeviationScanner {\r
 \r
 public class DeviationScanner {\r
 \r
-  \r
-  private EyePosition eyePositions[];\r
+  private int x[];\r
+  private int y[];\r
 \r
   // LEFT_UP(+1, -1), UP(0, -1), RIGHT_UP(-1, -1), LEFT(+1, 0), NONE(0, 0),\r
   // RIGHT(-1, 0), LEFT_DOWN(\r
 \r
   // LEFT_UP(+1, -1), UP(0, -1), RIGHT_UP(-1, -1), LEFT(+1, 0), NONE(0, 0),\r
   // RIGHT(-1, 0), LEFT_DOWN(\r
@@ -44,55 +43,47 @@ public class DeviationScanner {
   public static final int RIGHT_DOWN = 8;\r
 \r
   public DeviationScanner() {\r
   public static final int RIGHT_DOWN = 8;\r
 \r
   public DeviationScanner() {\r
-    eyePositions = new EyePosition[3];\r
+    x = new int[3];\r
+    y = new int[3];\r
+    SSJAVA.arrayinit(x, -1);\r
+    SSJAVA.arrayinit(y, -1);\r
   }\r
 \r
   }\r
 \r
-  \r
-  public void addEyePosition( EyePosition eyePosition) {\r
-\r
-    // for ( int i = 1; i < 3; i++) {\r
-    // eyePositions[i - 1] = eyePositions[i];\r
-    // eyePositions[i] = null;\r
-    // }\r
-    // eyePositions[eyePositions.length - 1] = eyePosition;\r
-\r
-    SSJAVA.append(eyePositions, eyePosition);\r
-\r
+  public void addEyePosition(int inx, int iny) {\r
+    SSJAVA.append(x, inx);\r
+    SSJAVA.append(y, iny);\r
   }\r
 \r
   }\r
 \r
-  // \r
-  \r
-  \r
-  public int scanForDeviation( Rectangle2D faceRect) {\r
+  public int scanForDeviation(Rectangle2D faceRect) {\r
 \r
 \r
-     int deviation = NONE;\r
+    int deviation = NONE;\r
 \r
 \r
-    for ( int i = 0; i < 3; i++) {\r
-      if (eyePositions[i] == null) {\r
+    for (int i = 0; i < 3; i++) {\r
+      if (x[i] == -1) {\r
         return deviation;\r
       }\r
     }\r
 \r
         return deviation;\r
       }\r
     }\r
 \r
-     double deviationX = 0;\r
-     double deviationY = 0;\r
+    double deviationX = 0;\r
+    double deviationY = 0;\r
 \r
 \r
-     int lastIdx = -1;\r
-    for ( int i = 0; i < 3; ++i) {\r
+    int lastIdx = -1;\r
+    for (int i = 0; i < 3; ++i) {\r
       if (lastIdx != -1) {\r
       if (lastIdx != -1) {\r
-        deviationX += (eyePositions[i].getX() - eyePositions[lastIdx].getX());\r
-        deviationY += (eyePositions[i].getY() - eyePositions[lastIdx].getY());\r
+        deviationX += (x[i] - x[lastIdx]);\r
+        deviationY += (y[i] - y[lastIdx]);\r
       }\r
       lastIdx = i;\r
     }\r
 \r
       }\r
       lastIdx = i;\r
     }\r
 \r
-     final double deviationPercentX = 0.04;\r
-     final double deviationPercentY = 0.04;\r
+    final double deviationPercentX = 0.04;\r
+    final double deviationPercentY = 0.04;\r
 \r
     deviationX /= faceRect.getWidth();\r
     deviationY /= faceRect.getWidth();\r
 \r
 \r
     deviationX /= faceRect.getWidth();\r
     deviationY /= faceRect.getWidth();\r
 \r
-     int deviationAbsoluteX = 0;\r
-     int deviationAbsoluteY = 0;\r
+    int deviationAbsoluteX = 0;\r
+    int deviationAbsoluteY = 0;\r
     if (deviationX > deviationPercentX)\r
       deviationAbsoluteX = 1;\r
     if (deviationX < -deviationPercentX)\r
     if (deviationX > deviationPercentX)\r
       deviationAbsoluteX = 1;\r
     if (deviationX < -deviationPercentX)\r
@@ -105,17 +96,14 @@ public class DeviationScanner {
     deviation = getDirectionFor(deviationAbsoluteX, deviationAbsoluteY);\r
 \r
     if (deviation != NONE) {\r
     deviation = getDirectionFor(deviationAbsoluteX, deviationAbsoluteY);\r
 \r
     if (deviation != NONE) {\r
-      eyePositions = new EyePosition[3];\r
+      SSJAVA.arrayinit(x, -1);\r
+      SSJAVA.arrayinit(y, -1);\r
     }\r
     }\r
-    // System.out.println(String.format("%.2f%% | %.2f%% => %d and %d >>> %s",\r
-    // deviationX*100, deviationY*100, deviationAbsoluteX, deviationAbsoluteY,\r
-    // deviation.toString()));\r
 \r
     return deviation;\r
   }\r
 \r
 \r
     return deviation;\r
   }\r
 \r
-  \r
-  public int getDirectionFor( int directionX,  int directionY) {\r
+  public int getDirectionFor(int directionX, int directionY) {\r
 \r
     if (directionX == +1 && directionY == -1) {\r
       return LEFT_UP;\r
 \r
     if (directionX == +1 && directionY == -1) {\r
       return LEFT_UP;\r
@@ -140,12 +128,7 @@ public class DeviationScanner {
     return -1;\r
   }\r
 \r
     return -1;\r
   }\r
 \r
-  public void clear() {\r
-    System.out.println("CLEAR");\r
-    eyePositions = new EyePosition[3];\r
-  }\r
-\r
-  public String toStringDeviation( int dev) {\r
+  public String toStringDeviation(int dev) {\r
     if (dev == LEFT_UP) {\r
       return "LEFT_UP";\r
     } else if (dev == UP) {\r
     if (dev == LEFT_UP) {\r
       return "LEFT_UP";\r
     } else if (dev == UP) {\r