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, 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); } }