001package net.gdface.sdk;
002
003import java.io.ByteArrayOutputStream;
004import java.io.PrintStream;
005import java.io.Serializable;
006
007/**
008 * 眼睛位置描述对象
009 * @author guyadong
010 *
011 */
012public class EyeInfo implements Serializable {
013        /**
014         * 
015         */
016        private static final long serialVersionUID = 1L;
017        private int leftx;
018        private int lefty;
019        private int rightx;
020        private int righty;
021
022        public EyeInfo() {
023                this(0,0,0,0);
024        }
025
026        public EyeInfo(int leftx, int lefty, int rightx, int righty) {
027                this.leftx = leftx;
028                this.lefty = lefty;
029                this.rightx = rightx;
030                this.righty = righty;
031        }
032
033        public int getLeftx() {
034                return this.leftx;
035        }
036
037        public int getLefty() {
038                return this.lefty;
039        }
040
041        public int getRightx() {
042                return this.rightx;
043        }
044
045        public int getRighty() {
046                return this.righty;
047        }
048
049        public void setLeftAndRight(int leftx, int lefty, int rightx, int righty) {
050                this.leftx = leftx;
051                this.lefty = lefty;
052                this.rightx = rightx;
053                this.righty = righty;
054        }
055
056        /**
057         * @param leftx
058         *            要设置的 leftx
059         */
060        public void setLeftx(int leftx) {
061                this.leftx = leftx;
062        }
063
064        /**
065         * @param lefty
066         *            要设置的 lefty
067         */
068        public void setLefty(int lefty) {
069                this.lefty = lefty;
070        }
071
072        /**
073         * @param rightx
074         *            要设置的 rightx
075         */
076        public void setRightx(int rightx) {
077                this.rightx = rightx;
078        }
079
080        /**
081         * @param righty
082         *            要设置的 righty
083         */
084        public void setRighty(int righty) {
085                this.righty = righty;
086        }
087        
088        @Override
089        public String toString() {
090                ByteArrayOutputStream bo = new ByteArrayOutputStream();
091                toStream(new PrintStream(bo));
092                return bo.toString();
093        }
094        /**
095         * 以文本形式向{@link PrintStream}输出对象内容 
096         * @param stream
097         */
098        public void toStream(PrintStream stream) {
099                stream.printf("[lx=%d,ly=%d,rx=%d,ry=%d]",this.leftx,this.lefty,this.rightx,this.righty);
100        }
101
102        @Override
103        public int hashCode() {
104                final int prime = 31;
105                int result = 1;
106                result = prime * result + leftx;
107                result = prime * result + lefty;
108                result = prime * result + rightx;
109                result = prime * result + righty;
110                return result;
111        }
112
113        @Override
114        public boolean equals(Object obj) {
115                if (this == obj) {
116                        return true;
117                }
118                if (obj == null) {
119                        return false;
120                }
121                if (!(obj instanceof EyeInfo)) {
122                        return false;
123                }
124                EyeInfo other = (EyeInfo) obj;
125                if (leftx != other.leftx) {
126                        return false;
127                }
128                if (lefty != other.lefty) {
129                        return false;
130                }
131                if (rightx != other.rightx) {
132                        return false;
133                }
134                if (righty != other.righty) {
135                        return false;
136                }
137                return true;
138        }
139}