This node join splines from the input geometry sets into a single spline, depending on the merge settings.
- The use cases are building and later filling a single shape from multiple curve primitives, creating a single spline from multiple objects, and other options where connecting splines is useful like in edit mode.
- If end points of two splines are within the "Merge Threshold", they will be connected, just like in curve edit mode with the F shortcut.
- If "Add Segments" is off, the node will not create new segments, only join end points and start points. (This corresponds to F and then deleting one control point in edit mode.
- If the spline types do not match, a poly spline will be used for the result of that set of the input splines, in evaluated form. Poly splines are a good choice because they are the "base" of curve functionality.
- If three end points are inside the merge threshold, the closest points will be connected, and as a fallback a choice could be made based on index.
- Naming: "Concatenate Curves" or "Join Splines" or "Connect Curves" are other name possibilities.
A first pass should find which start and end points are within a merge threshold. Keeping this operation from having N^2 runtime will be important. Then >2-way intersections should be dealt with, then data should be copied to the result, or possible moved with std::move if no connections were made to a spline.