/// <summary>
/// Build planar graph of car spawners and points of fuel triggers
/// </summary>
private void BuildGraph()
{
_graph.AddRange(Object.FindObjectsOfType <RefuelingMark>().Select(refueling => Scale(refueling.transform.position.ToHex())));
for (var i = 0; i < _graph.Count; i++)
{
for (var j = i + 1; j < _graph.Count; j++)
{
var currentEdge = new HexEdge(_graph[i], _graph[j]);
var isAdd = true;
var removeEdges = new List <HexEdge>();
var magnitude = Hex.Distance(currentEdge.A, currentEdge.B);
foreach (var edge in Edges.Where(edge => Intersection(currentEdge, edge)))
{
if (magnitude < Hex.Distance(edge.A, edge.B))
{
removeEdges.Add(edge);
}
else
{
isAdd = false;
break;
}
}
if (isAdd && !Edges.Contains(currentEdge))
{
Edges.Add(currentEdge);
foreach (var edge in removeEdges)
{
Edges.Remove(edge);
}
}
}
}
}