public void SetParent(ANode parent) { if (parent == null) Length = 0; else { parent.Child = this; if (IsDiagonalNeighbor(Parent)) Length = parent.Length + DIAGONAL_COST; else Length = parent.Length + NORMAL_COST; } }