/**
* PMState.java
*/
package rampancy_old.statistics.pattern;
import rampancy_old.util.EnemyRobot;
/**
* @author Matthew Chun-Lum
*
*/
public class PMState {
public double velocity;
public double deltaHeading;
public PMState(EnemyRobot enemy) {
velocity = enemy.getVelocity();
deltaHeading = enemy.getHeading() - enemy.getLastHeading();
}
public double distance(PMState targetState) {
return Math.sqrt(Math.pow(targetState.velocity - velocity, 2) + Math.pow(targetState.deltaHeading - deltaHeading, 2));
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
long temp;
temp = Double.doubleToLongBits(deltaHeading);
result = prime * result + (int) (temp ^ (temp >>> 32));
temp = Double.doubleToLongBits(velocity);
result = prime * result + (int) (temp ^ (temp >>> 32));
return result;
}
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
PMState other = (PMState) obj;
if (Double.doubleToLongBits(deltaHeading) != Double
.doubleToLongBits(other.deltaHeading))
return false;
if (Double.doubleToLongBits(velocity) != Double
.doubleToLongBits(other.velocity))
return false;
return true;
}
}