an.adapters.cutout.clip#
Clips, loop modes and poses — moved to an.timing.clip (the timing kernel).
This path keeps working for every existing caller; new code imports from
an.timing.
>>> from an.adapters.cutout.channel import Channel, Keyframe
>>> ch = Channel("a", "x", [Keyframe(0.0, 0.0), Keyframe(1.0, 10.0)])
>>> clip = Clip("walk", duration=1.0, channels=[ch], loop_mode=LoopMode.LOOP)
>>> evaluate(clip, 1.25)[("a", "x")] # loop wraps
2.5
Functions
|
Evaluate |
|
Merge multiple poses with override semantics (later wins per key). |
Classes
|
Named animation: a duration + a bundle of channels. |
|
How a clip behaves past its natural duration. |
- class an.adapters.cutout.clip.Clip(name, duration, channels=<factory>, loop_mode=LoopMode.ONCE)[source]#
Bases:
objectNamed animation: a duration + a bundle of channels.
- class an.adapters.cutout.clip.LoopMode(*values)[source]#
-
How a clip behaves past its natural duration.
- an.adapters.cutout.clip.evaluate(clip, t, *, kind_of=None)[source]#
Evaluate
clipat timet, returning aPose.kind_ofdeclares each channel’s field kind;Noneinterpolates by value type, asruntime.jsdoes (seean.timing.channel).