Page MenuHome

Connect Curve Splines Node
Confirmed, NormalPublicDESIGN

Assigned To
None
Authored By
Hans Goudey (HooglyBoogly)
Jun 16 2021, 10:01 PM
Tokens
"Love" token, awarded by Branskugel."Love" token, awarded by wilBr."Love" token, awarded by Bit."Like" token, awarded by GeorgiaPacific."Love" token, awarded by dreamak.

Description


This node join splines from the input geometry sets into a single spline, depending on the merge settings.

Details
  • 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.
Related Nodes
Further Questions
  • Naming: "Concatenate Curves" or "Join Splines" or "Connect Curves" are other name possibilities.
Implementation

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.

Revisions and Commits