b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 1 | //! Multiphase layout animation planning. |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 2 | //! |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 3 | //! Given where tiled windows are and where they should be, produce a short |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 4 | //! sequence of keyframe layouts. Every window moves between consecutive |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 5 | //! keyframes on one shared curve, so a plan is correct if every pair of |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 6 | //! windows shares a separating relation across every phase. |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 7 | //! |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 8 | //! See `design/planner.html` for the reasoning and interactive demos. |
57f44a63d99f | atagen | 2026-10-16 05:34 UTC | 9 | |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 10 | mod blocks; |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 11 | mod geom; |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 12 | mod plan; |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 13 | mod relation; |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 14 | mod sat; |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 15 | mod strategy; |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 16 | mod validate; |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 17 | |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 18 | #[cfg(test)] |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 19 | mod tests; |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 20 | |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 21 | pub use blocks::plan_blocks; |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 22 | pub use geom::Rect; |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 23 | pub use plan::{Config, Group, Plan, Strategy, Style, plan}; |
b563d2da1c80 | atagen | 2026-10-16 08:25 UTC | 24 | pub use validate::{Violation, validate}; |