public class DeviationScanner {\r
\r
@LOC("DEV")\r
- private EyePosition eyePositions[];\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
- // +1, +1), DOWN(0, +1), RIGHT_DOWN(-1, +1);\r
+ private int x[];\r
+ @LOC("DEV")\r
+ private int y[];\r
\r
public static final int LEFT_UP = 0;\r
public static final int UP = 1;\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
- @LATTICE("THIS<C,C<IN,THISLOC=THIS")\r
- public void addEyePosition(@LOC("IN") EyePosition eyePosition) {\r
-\r
- // for (@LOC("THIS,DeviationScanner.C") 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
+ @LATTICE("THIS<IN,THISLOC=THIS")\r
+ public void addEyePosition(@LOC("IN") int inx, @LOC("IN") int iny) {\r
+ SSJAVA.append(x, inx);\r
+ SSJAVA.append(y, iny);\r
}\r
\r
- // @LATTICE("OUT<DEV,DEV<C,C<THIS,THIS<IN,C*,DEV*,OUT*,THISLOC=THIS,RETURNLOC=OUT")\r
@LATTICE("THIS<C,THIS<IN,THISLOC=THIS,C*")\r
@RETURNLOC("THIS,DeviationScanner.DEV")\r
public int scanForDeviation(@LOC("IN") Rectangle2D faceRect) {\r
@LOC("THIS,DeviationScanner.DEV") int deviation = NONE;\r
\r
for (@LOC("C") int i = 0; i < 3; i++) {\r
- if (eyePositions[i] == null) {\r
+ if (x[i] == -1) {\r
return deviation;\r
}\r
}\r
@LOC("THIS,DeviationScanner.DEV") int lastIdx = -1;\r
for (@LOC("THIS,DeviationScanner.DEV") int i = 0; i < 3; ++i) {\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
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
- // 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
return -1;\r
}\r
\r
- public void clear() {\r
- System.out.println("CLEAR");\r
- eyePositions = new EyePosition[3];\r
- }\r
-\r
public String toStringDeviation(@LOC("IN") int dev) {\r
if (dev == LEFT_UP) {\r
return "LEFT_UP";\r