2 * Copyright 2009 (c) Florian Frankenberger (darkblue.de)
4 * This file is part of LEA.
6 * LEA is free software: you can redistribute it and/or modify it under the
7 * terms of the GNU Lesser General Public License as published by the Free
8 * Software Foundation, either version 3 of the License, or (at your option) any
11 * LEA is distributed in the hope that it will be useful, but WITHOUT ANY
12 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
13 * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with LEA. If not, see <http://www.gnu.org/licenses/>.
21 * No description given.
23 * @author Florian Frankenberger
26 @METHODDEFAULT("OUT<THIS,THISLOC=THIS,RETURNLOC=OUT")
27 public class EyePosition {
33 private Rectangle2D faceRect;
35 public EyePosition(Point p, Rectangle2D faceRect) {
36 this(p.x, p.y, faceRect);
39 public EyePosition(int x, int y, Rectangle2D faceRect) {
42 this.faceRect = faceRect;
53 public String toString() {
54 return "(" + x + "," + y + ")";
57 // public Deviation getDeviation(EyePosition oldEyePosition) {
58 // if (oldEyePosition == null) return Deviation.NONE;
60 // //first we check if the faceRects are corresponding
61 // double widthChange = (this.faceRect.getWidth() -
62 // oldEyePosition.faceRect.getWidth()) / this.faceRect.getWidth();
63 // if (widthChange > 0.1) return Deviation.NONE;
65 // int maxDeviationX = (int)Math.round(this.faceRect.getWidth() / 4f);
66 // int maxDeviationY = (int)Math.round(this.faceRect.getWidth() / 8f);
67 // int minDeviation = (int)Math.round(this.faceRect.getWidth() / 16f);
69 // int deviationX = Math.abs(x - oldEyePosition.x);
70 // int directionX = sgn(x - oldEyePosition.x);
71 // if (deviationX < minDeviation || deviationX > maxDeviationX) directionX =
74 // int deviationY = Math.abs(y - oldEyePosition.y);
75 // int directionY = sgn(y - oldEyePosition.y);
76 // if (deviationY < minDeviation || deviationY > maxDeviationY) directionY =
79 // double deviationXPercent = deviationX / this.faceRect.getWidth();
80 // double deviationYPercent = deviationY / this.faceRect.getWidth();
82 // System.out.println(String.format("devX: %.2f | devY: %.2f",
83 // deviationXPercent*100f, deviationYPercent*100f));
84 // return Deviation.getDirectionFor(directionX, directionY);
87 private static int sgn(int i) {