* @author Florian Frankenberger\r
*/\r
\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
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
- 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
- public int scanForDeviation( Rectangle2D faceRect) {\r
+ public int scanForDeviation(Rectangle2D faceRect) {\r
\r
- int deviation = NONE;\r
+ int deviation = NONE;\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
- double deviationX = 0;\r
- double deviationY = 0;\r
+ double deviationX = 0;\r
+ double deviationY = 0;\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
- 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
- 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
- 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
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
\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
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