Maps authored track order to header rows and reorder insertion neighbors. More...
#include <track_header_projection.hpp>
Public Types | |
| using | DropTarget = std::optional<timeline::ItemId> |
| Empty means append after every remaining track. | |
Public Member Functions | |
| std::optional< timeline::ItemId > | track_at (float y) const noexcept |
| Returns the track owning y, or empty outside the half-open row range. | |
| runtime::Result< DropTarget, TrackHeaderProjectionError > | before_track_for_drop (float y, timeline::ItemId moving_track) const |
| Resolves y to a reorder neighbor after removing moving_track logically. | |
| constexpr float | origin_y () const noexcept |
| Returns the leading y coordinate of the first row. | |
| constexpr float | row_height () const noexcept |
| Returns the positive height shared by every row. | |
| float | bottom_y () const noexcept |
| Returns the exclusive y coordinate following the final row. | |
| std::span< const timeline::ItemId > | track_order () const noexcept |
| Returns the immutable authored order captured at construction. | |
Static Public Member Functions | |
| static runtime::Result< TrackHeaderProjection, TrackHeaderProjectionError > | create (std::span< const timeline::ItemId > track_order, float origin_y, float row_height) |
| Validates and captures the complete authored order and row geometry. | |
Maps authored track order to header rows and reorder insertion neighbors.
Row lookup is half-open. Drop lookup compares against row centers and omits the moving track, producing the before_track_id value for MoveTrack.
| using pulp::timeline_editor::TrackHeaderProjection::DropTarget = std::optional<timeline::ItemId> |
Empty means append after every remaining track.
|
inlinenodiscard |
Resolves y to a reorder neighbor after removing moving_track logically.
|
inlinenodiscardnoexcept |
Returns the exclusive y coordinate following the final row.
|
inlinestatic |
Validates and captures the complete authored order and row geometry.
|
inlinenodiscardconstexprnoexcept |
Returns the leading y coordinate of the first row.
|
inlinenodiscardconstexprnoexcept |
Returns the positive height shared by every row.
|
inlinenodiscardnoexcept |
Returns the track owning y, or empty outside the half-open row range.
|
inlinenodiscardnoexcept |
Returns the immutable authored order captured at construction.