Core and the app · crate
kinogaki-anim
Studio's animation channels.
- Repository
- Core and the app (kinogaki/studio-core)
- Folder
studio/core/anim- Source
- 4 files, 492 lines
- Tests
- 5 files, 663 lines
What it is
Studio's animation channels.
A Curve is one parameter's keys (the SDK's Key) over time, and its value at a moment by the parameter's kind; Channels are a node's curves by parameter name, which Channels::resolve_into writes into the node's Parameters before it cooks. The numbers come from kinogaki_prism::curve, the one definition of keyframe maths, so a project file, an export and Studio agree bit for bit.
What each kind does over time:
- Number, Vector, Color and Channels: each component by its keys' interpolation, kept within the number's limits.
- Integer: as a Number, rounded and kept within its limits.
- Toggle and Choice: held, whatever a key's interpolation.
- Ramp and tone curves: their own keys may come and go, so between two keys each is resampled onto the union of every key's positions and blended there.
- The kinds that can't be animated: held.
Evaluating writes in place: into a value already of the kind's variant and size it allocates nothing.
Depends on
| Crate | Repository | As | What it is |
|---|---|---|---|
kinogaki-prism | lib-prism | normal | Prism documents for Kinogaki. |
kinogaki-studio-api | SDK | normal | Kinogaki Studio's headless plugin API. |
Third-party
None.
Used by
| Crate | Repository | As | What it is |
|---|---|---|---|
kinogaki-document | Core and the app | normal | Studio's document: the scene, a tree of objects under one root, and the core network each object of a kind naming a context holds. |
kinogaki-editor | Core and the app | normal | Kinogaki Studio's editor: the document and everything the window shows of it, as parts one frame borrows one by one. |
kinogaki-image-pipeline | Core and the app | tests | ImagePipeline: what renders become on screen and in files. |
kinogaki-network | Core and the app | normal | Studio's core networks (design: core-owned networks; "Cooking DAG for nodes is studio core"). |
kinogaki-project | Core and the app | normal | Studio's project files: a document as a Prism document. |
kinogaki-scene | Core and the app | tests | Studio's scene: the document cooked object by object. |
Modules
channels(private)Channels: a node's curves by parameter name.90 linescurve(private)Curve: one parameter's keys over time, and its value at a moment.224 linesprofiles(private)Ramps and tone curves over time: values whose own keys come and go, so two animation keys may hold different key counts.154 lines
Public types and traits
At the crate root
Structs ChannelsCurve
By module: 2 public types and traits in 2 modules
channels Channels
curve Curve
