public PolyNodeCrossoverPointManager(PolyNode landPolyNode)
 {
     this.landPolyNode     = landPolyNode;
     waypoints             = landPolyNode.FindAggregateContourCrossoverWaypoints();
     allWaypointIndices    = waypoints.Map((_, i) => i);
     visibilityGraph       = landPolyNode.ComputeVisibilityGraph();
     waypointToWaypointLut = visibilityGraph.BuildWaypointToWaypointLut();
 }