package com.zy.acs.manager.core.service.astart;
|
|
import lombok.Data;
|
|
import java.io.Serializable;
|
import java.util.Objects;
|
|
/**
|
* Node节点
|
*/
|
@Data
|
public class NavigateNode implements Comparable<NavigateNode>, Cloneable, Serializable {
|
|
private static final long serialVersionUID = 1L;
|
|
private int x; //坐标x
|
private int y; //坐标y
|
private int z; //坐标z(高度)
|
|
private int F; //综合花费的步数
|
|
private NavigateNode parent; //父节点
|
private Integer weight; // G 权重
|
|
private String codeData;
|
|
public NavigateNode(int x, int y) {
|
this.x = x;
|
this.y = y;
|
}
|
|
public NavigateNode(int x, int y, String codeData) {
|
this.x = x;
|
this.y = y;
|
this.codeData = codeData;
|
}
|
|
@Override
|
public int compareTo(NavigateNode o) {
|
return Integer.compare(this.F, o.F);
|
}
|
|
@Override
|
public NavigateNode clone() {
|
try {
|
return (NavigateNode) super.clone();
|
} catch (CloneNotSupportedException e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
|
@Override
|
public boolean equals(Object obj) {
|
if (this == obj) return true;
|
if (!(obj instanceof NavigateNode)) return false;
|
NavigateNode that = (NavigateNode) obj;
|
return this.x == that.x && this.y == that.y;
|
}
|
|
@Override
|
public int hashCode() {
|
return Objects.hash(x, y);
|
}
|
|
}
|