Key a node's transform and visibility from the inspector
Each of vis, anchor, pos, rot, scale and skew is a row: ◆ keys the channel on the node's own frame, or takes the key there off, and a typed value is written on blur or Enter — a key on a keyed channel, the one value on one that is not. Rotation reads in degrees. Dense and other channels keep their readout. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
38850a29ba
commit
7246534505
5 changed files with 109 additions and 7 deletions
|
|
@ -183,3 +183,21 @@
|
|||
(is (seq (node/problems {:id :x :kind :poly :z "a1"
|
||||
:channels {[:geom :pts] {:animated? true}}}))
|
||||
"and a channel that is malformed in itself"))
|
||||
|
||||
(deftest keying-a-channel-from-the-inspector
|
||||
(let [n {:id :x :kind :group}
|
||||
a (node/set-channel n [:xform :rot] 3 1.0)
|
||||
b (node/toggle-key a [:xform :rot] 3)
|
||||
c (-> b (node/set-channel [:xform :pos] 9 [5 5])
|
||||
(node/toggle-key [:xform :pos] 0)
|
||||
(node/set-channel [:xform :pos] 10 [10 0]))
|
||||
rot #(ch/value-at (get (node/channels %1) [:xform :rot]) %2)
|
||||
pos #(ch/value-at (get (node/channels %1) [:xform :pos]) %2)]
|
||||
(is (= 1.0 (rot a 50)) "an unkeyed channel is its one value")
|
||||
(is (= {3 1.0} (get-in b [:channels [:xform :rot] :keys])) "the first key is its value here")
|
||||
(is (= [7.5 2.5] (pos c 5)) "an edit on a keyed channel keys it, and keys tween")
|
||||
(is (= 1.0 (rot (node/set-channel b [:xform :rot] 8 2.0) 3)) "without moving the key before it")
|
||||
(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")))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue