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}