pub fn sweep_profile_along_chain(
profile: &[NurbsCurve],
chain: &[NurbsCurve],
segment_names: &[String],
twist_angle: f64,
name: Option<&str>,
anchor: Option<ProfileAnchor>,
placement_mode: SectionPlacement,
corner_advice: &str,
) -> Result<BrepSolid, String>Expand description
Sweep a CLOSED PLANAR profile along a CHAIN of path curves joined head-to-tail — the multi-segment entry point, with the twist and anchor options the single-curve family exposes as separate functions folded into one signature (the feature layer picks all three per loop, so splitting them four ways here would only push the same match into the caller).
segment_names name the chain’s segments for the joint refusal; a short or
empty slice degrades to <unnamed> rather than failing.
corner_advice is appended to the cornered-joint refusal and is the CALLER’s
to write, because the builder has two callers with different answers: path
sweep sends the user to SW (a different feature), while SW’s own pathAlign
sends them to its translate mode. A builder that named one feature would be
telling half its users to switch to the feature they are already in.
A ONE-segment chain delegates to the single-curve builders unchanged, so the geometry every existing path sweep emits is untouched by this entry point existing — the multi-segment sampler is reached only by a path that actually has a joint.
Joints must be tangent-continuous; see [MAX_JOINT_TANGENT_BREAK] for why a
corner is refused here instead of rounded off, and where such a path belongs.