public static final int DOWN = 7;\r
public static final int RIGHT_DOWN = 8;\r
\r
- @LOC("DEV")\r
- private int size;\r
-\r
public DeviationScanner() {\r
eyePositions = new EyePosition[3];\r
- size = 0;\r
}\r
\r
@LATTICE("THIS<C,C<IN,THISLOC=THIS")\r
\r
SSJAVA.append(eyePositions, eyePosition);\r
\r
- if (size < eyePositions.length) {\r
- size++;\r
- }else{\r
- size= eyePositions.length;\r
- }\r
-\r
- }\r
-\r
- @RETURNLOC("THIS,DeviationScanner.DEV")\r
- public int getEyePositionsSize() {\r
- return size;\r
}\r
\r
// @LATTICE("OUT<DEV,DEV<C,C<THIS,THIS<IN,C*,DEV*,OUT*,THISLOC=THIS,RETURNLOC=OUT")\r
- @LATTICE("THIS<IN,THISLOC=THIS")\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
- if (getEyePositionsSize() >= 3) {\r
- @LOC("THIS,DeviationScanner.DEV") double deviationX = 0;\r
- @LOC("THIS,DeviationScanner.DEV") double deviationY = 0;\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
- }\r
- lastIdx = i;\r
+\r
+ for (@LOC("C") int i = 0; i < 3; i++) {\r
+ if (eyePositions[i] == null) {\r
+ return deviation;\r
}\r
+ }\r
+\r
+ @LOC("THIS,DeviationScanner.DEV") double deviationX = 0;\r
+ @LOC("THIS,DeviationScanner.DEV") double deviationY = 0;\r
\r
- @LOC("THIS,DeviationScanner.DEV") final double deviationPercentX = 0.04;\r
- @LOC("THIS,DeviationScanner.DEV") final double deviationPercentY = 0.04;\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
+ }\r
+ lastIdx = i;\r
+ }\r
\r
- deviationX /= faceRect.getWidth();\r
- deviationY /= faceRect.getWidth();\r
+ @LOC("THIS,DeviationScanner.DEV") final double deviationPercentX = 0.04;\r
+ @LOC("THIS,DeviationScanner.DEV") final double deviationPercentY = 0.04;\r
\r
- @LOC("THIS,DeviationScanner.DEV") int deviationAbsoluteX = 0;\r
- @LOC("THIS,DeviationScanner.DEV") int deviationAbsoluteY = 0;\r
- if (deviationX > deviationPercentX)\r
- deviationAbsoluteX = 1;\r
- if (deviationX < -deviationPercentX)\r
- deviationAbsoluteX = -1;\r
- if (deviationY > deviationPercentY)\r
- deviationAbsoluteY = 1;\r
- if (deviationY < -deviationPercentY)\r
- deviationAbsoluteY = -1;\r
+ deviationX /= faceRect.getWidth();\r
+ deviationY /= faceRect.getWidth();\r
\r
- deviation = getDirectionFor(deviationAbsoluteX, deviationAbsoluteY);\r
+ @LOC("THIS,DeviationScanner.DEV") int deviationAbsoluteX = 0;\r
+ @LOC("THIS,DeviationScanner.DEV") int deviationAbsoluteY = 0;\r
+ if (deviationX > deviationPercentX)\r
+ deviationAbsoluteX = 1;\r
+ if (deviationX < -deviationPercentX)\r
+ deviationAbsoluteX = -1;\r
+ if (deviationY > deviationPercentY)\r
+ deviationAbsoluteY = 1;\r
+ if (deviationY < -deviationPercentY)\r
+ deviationAbsoluteY = -1;\r
\r
- if (deviation != NONE) {\r
- eyePositions = new EyePosition[3];\r
- size = 0;\r
- }\r
- // System.out.println(String.format("%.2f%% | %.2f%% => %d and %d >>> %s",\r
- // deviationX*100, deviationY*100, deviationAbsoluteX, deviationAbsoluteY,\r
- // deviation.toString()));\r
+ deviation = getDirectionFor(deviationAbsoluteX, deviationAbsoluteY);\r
\r
+ if (deviation != NONE) {\r
+ eyePositions = new EyePosition[3];\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
public void clear() {\r
System.out.println("CLEAR");\r
eyePositions = new EyePosition[3];\r
- size = 0;\r
}\r
\r
public String toStringDeviation(@LOC("IN") int dev) {\r
@LOC("C") int i = 0;
- SSJAVA: while (i < 37) {
- @LOC("IMG") Image image = ImageReader.readImage("data/b" + i + ".bmp");
- i++;
+ SSJAVA: while (Counter.idx() < 37) {
+ @LOC("IMG") Image image = ImageReader.readImage("data/b" + Counter.idx() + ".bmp");
+ Counter.inc();
+ // i++;
if (image == null) {
break;
}
private void processImage(@LOC("IN") Image image) {
@LOC("THIS,LEA.POS") FaceAndEyePosition positions = implementation.getEyePosition(image);
-// if (positions.getEyePosition() != null) {
- deviationScanner.addEyePosition(positions.getEyePosition());
- @LOC("THIS,LEA.DEV,DeviationScanner.DEV") int deviation =
- deviationScanner.scanForDeviation(positions.getFacePosition());// positions.getEyePosition().getDeviation(lastPositions.getEyePosition());
- if (deviation != DeviationScanner.NONE) {
- System.out.println("deviation=" + deviationScanner.toStringDeviation(deviation));
- // notifyEyeMovementListenerEyeMoved(deviation);
- }
-// }
+ // if (positions.getEyePosition() != null) {
+ deviationScanner.addEyePosition(positions.getEyePosition());
+ @LOC("THIS,LEA.DEV,DeviationScanner.DEV") int deviation =
+ deviationScanner.scanForDeviation(positions.getFacePosition());// positions.getEyePosition().getDeviation(lastPositions.getEyePosition());
+ if (deviation != DeviationScanner.NONE) {
+ System.out.println("deviation=" + deviationScanner.toStringDeviation(deviation));
+ // notifyEyeMovementListenerEyeMoved(deviation);
+ }
+ // }
lastPositions = positions;
}