feat: add line-foot construction method (#48)

With this PR, the adapptlet appears to handle Joyce's entire Euclid Book I.

Reviewed-on: #48
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-committed-by: Glen Whitney <glen@studioinfinity.org>
This commit is contained in:
Glen Whitney 2023-11-27 04:21:06 +00:00 committed by Glen Whitney
parent 52272ff728
commit d024fcfa31

View File

@ -728,6 +728,17 @@ classHandler: Record<JoyceClass, ClassHandler> :=
commands.push `${aux} = Translate(${source}, ${displacement})` commands.push `${aux} = Translate(${source}, ${displacement})`
auxiliaries.push aux auxiliaries.push aux
ends[1] = aux ends[1] = aux
'foot'
pt := args.subpoints
unless pt then return
destination := args.plane
? args.plane[0]
: `Line(${pt[1]},${pt[2]})`
ends[0] = pt[0]
commands.push
`${aux} = ClosestPoint(${destination}, ${pt[0]})`
auxiliaries.push aux
ends[1] = aux
'parallel' 'parallel'
unless args.subpoints then return unless args.subpoints then return
[newStart, oldStart, oldEnd] := args.subpoints [newStart, oldStart, oldEnd] := args.subpoints