Hold or tween any keyed channel's gaps, as a drawing's
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
da7e293814
commit
2a0426707a
7 changed files with 46 additions and 24 deletions
|
|
@ -200,4 +200,13 @@
|
|||
(let [d (node/toggle-key b [:xform :rot] 3)]
|
||||
(is (not (:animated? (get-in d [:channels [:xform :rot]]))) "the last key off is one value again")
|
||||
(is (= 1.0 (rot d 0))))
|
||||
(is (= :hold (get-in (node/toggle-key n [:vis] 0) [:channels [:vis] :interp])) "a boolean holds")))
|
||||
(is (= :hold (get-in (node/toggle-key n [:vis] 0) [:channels [:vis] :interp])) "a boolean holds")
|
||||
(let [h (node/set-segment-interp c [:xform :pos] 0 :hold)]
|
||||
(is (= [5 5] (pos h 5)) "a gap set to hold cuts at the next key")
|
||||
(is (= [10 0] (pos h 10)))
|
||||
(is (= [7.5 2.5] (pos (node/set-segment-interp h [:xform :pos] 0 :linear) 5)) "and back to a tween")
|
||||
(is (= h (node/set-segment-interp h [:xform :pos] 10 :hold)) "the last key has no gap after it")
|
||||
(is (empty? (ch/problems (get-in h [:channels [:xform :pos]])))))
|
||||
(let [d (node/toggle-key (node/set-segment-interp c [:xform :pos] 0 :hold) [:xform :pos] 0)]
|
||||
(is (not (contains? (get-in d [:channels [:xform :pos] :segments]) 0))
|
||||
"taking a key off takes its gap's choice with it"))))
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
[arthur.demo :as demo]
|
||||
[arthur.domain.channel :as channel]
|
||||
[arthur.domain.leaf :as leaf]
|
||||
[arthur.domain.node :as node]
|
||||
[arthur.domain.paint :as paint]
|
||||
[arthur.domain.symbol :as symbol]))
|
||||
|
||||
|
|
@ -17,7 +18,8 @@
|
|||
c3 (paint/add-key c2 :main :paint-test 15)
|
||||
c4 (paint/set-vertex c3 :main :paint-test 15 0 [34 10])
|
||||
held (geometry c4)
|
||||
mixed-clip (paint/set-segment-interp c4 :main :paint-test 9 :linear)
|
||||
mixed-clip (update-in c4 [:symbols :main :nodes :paint-test]
|
||||
node/set-segment-interp paint/geometry 9 :linear)
|
||||
mixed (geometry mixed-clip)]
|
||||
(is (= [3 229] (get-in c2 [:symbols :main :nodes :paint-test :span])))
|
||||
(is (= a (channel/value-at held 8)))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue