I think I still don’t follow entirely what the aim is here.
It looks something like
- the white closed polylines to keep their shape rigidly while moving around.
- the black polylines each stay in a straight line, while their points can slide along them.
- the black points to stay outside of the (moving) white polylines
- the vertices of the white polylines to keep a minimum distance apart, based on the colour of the underlying mesh.
Is that an accurate summary of what you are after?
Note that this ImgCircles goal does not stop the white polylines penetrating each other.
Also, only the Red parameter of the colour affects the radius, so the blue/green areas result in the same radius. Also, for the ImgCircles component to work properly, the mesh needs to be triangulated.
There’s actually an older version of the curve collide called Collide2d, which isn’t exposed as a component any more, since I wanted to avoid confusion with the new CurveCollide, which I was thinking replaced it in all use cases, but perhaps there is some use in keeping the old functionality after all.
It does work on deformable polylines, including even open ones. The component is marked as legacy, so doesn’t appear on the toolbar, but definitions containing it will still open, and you can paste it from there.
Here’s an example file:
OldCollide2dExample.gh (12.2 KB)
This still won’t solve the case where points start inside the curve but you want them outside. Perhaps you will still need a custom goal for that, but take a look at this first.