I was mixing methods, sorry. My initial rendition for solving the cuts would initialise a somewhat sparse network from tree to ground, and solve for non-overlapping paths.
This became convoluted and I just opted for a far easier method of solving vector intersections.
Its also not perfect since I haven't factored in rotation origin very well, and I'm now pursuing a far simpler physics-based approach