fix(spline): edit fit-point splines, and stop deleting the kept half
Two faults, reported together. Fit-point splines could not be edited at all. A SPLINE is stored either as a control polygon the curve approaches or as fit points it must pass through with optional end tangents, and `spline_to_nurbs` only read the first. A fit-point spline has no control points, so every command that touched one — TRIM, BREAK, LENGTHEN, OFFSET — got nothing back and did nothing. Two fit points with start and end tangents, which is what a drawing stores for the simplest curve, was the clearest case. Fit points now interpolate into an exact curve through cadkernel, so they are as editable as any other spline. Trimming deleted the whole spline when the surviving piece reached the curve's own start. `trim_spline` cut away everything before the interval and everything after it, and a cut at either end is a no-op that reports nothing to do — which the end case handled and the start case propagated as failure, dropping the piece. That is why one side of the cutting line worked and the other emptied the drawing. Elevation is read from whichever point list the spline actually has. A fit-point spline has no control points, so it was falling to z = 0 on the first edit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
0f8f4864ba
commit
042a479244
3 changed files with 59 additions and 17 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
|
@ -945,7 +945,7 @@ checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04"
|
|||
[[package]]
|
||||
name = "cadkernel"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/HakanSeven12/cadkernel.git#33aa850ac2a27fdb2b305a67df27cb0eae23acc2"
|
||||
source = "git+https://github.com/HakanSeven12/cadkernel.git#e76334b7697a3c39292c8a6494d9b837bba78a6e"
|
||||
dependencies = [
|
||||
"cavalier_contours",
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in a new issue