Started experimenting with having the grapple rope wind around objects in the world, and got a bit carried away :)
I think it is working okay, although hard to be sure. At the moment there is no way to unwind the rope, so a little hard to be sure it is catching every case. I'm just doing a raycast along the segment, then finding the closest edge point on the shape that is hit to the ray intersection point to get the actual wind point. I need to do something like store a normal as well representing the direction it is wound, so I can later then test to see if a point has been "unwound" and needs to be removed from the list.
All this gets a lot harder when you consider attaching points to other moving objects, but I'll keep on it in a static environment first then see if it can be extended to cope with moving objects too. Bit simpler.