46 return visible_start_;
49 return visible_duration_;
52 return {visible_start_.value + visible_duration_.value};
64 timebase::TickDuration visible_duration_{};
74class PitchProjection {
79 [[nodiscard]]
float y_at(std::uint8_t pitch)
const noexcept;
80 [[nodiscard]] std::uint8_t
pitch_at(
float y)
const noexcept;
87 return highest_pitch_;
98 std::uint8_t lowest_pitch_ = 0;
99 std::uint8_t highest_pitch_ = 127;
Result<T, E> — either holds a T or an E, never both.
Definition result.hpp:76
Projects an inclusive MIDI pitch range onto piano-roll rows.
Definition viewport_projection.hpp:74
constexpr std::uint8_t lowest_pitch() const noexcept
Definition viewport_projection.hpp:83
float row_height() const noexcept
constexpr std::uint8_t highest_pitch() const noexcept
Definition viewport_projection.hpp:86
static runtime::Result< PitchProjection, ViewportProjectionError > create(std::uint8_t lowest_pitch, std::uint8_t highest_pitch, PixelSpan pixels) noexcept
std::uint8_t pitch_at(float y) const noexcept
constexpr PixelSpan pixels() const noexcept
Definition viewport_projection.hpp:89
float y_at(std::uint8_t pitch) const noexcept
Projects a visible musical-time range onto a horizontal pixel span.
Definition viewport_projection.hpp:36
constexpr PixelSpan pixels() const noexcept
Definition viewport_projection.hpp:54
constexpr timebase::TickDuration visible_duration() const noexcept
Definition viewport_projection.hpp:48
constexpr timebase::TickPosition visible_start() const noexcept
Definition viewport_projection.hpp:45
timebase::TickPosition tick_at(float x) const noexcept
float x_at(timebase::TickPosition tick) const noexcept
constexpr timebase::TickPosition visible_end() const noexcept
Definition viewport_projection.hpp:51
static runtime::Result< TickProjection, ViewportProjectionError > create(timebase::TickPosition visible_start, timebase::TickDuration visible_duration, PixelSpan pixels) noexcept
ScriptedUiHost is a SequencerUiHost whose playhead is written by the caller instead of an engine,...
Definition edit_intent.hpp:14
ViewportProjectionError
Definition viewport_projection.hpp:22
@ NonPositivePixelExtent
Definition viewport_projection.hpp:24
@ TickRangeOverflow
Definition viewport_projection.hpp:26
@ NonPositiveTickDuration
Definition viewport_projection.hpp:25
@ NonFinitePixelSpan
Definition viewport_projection.hpp:23
@ InvalidPitchRange
Definition viewport_projection.hpp:27
Result<T, E> — success / failure union for fallible operations.
A one-dimensional pixel range owned by the editor kernel.
Definition viewport_projection.hpp:15
float extent
Definition viewport_projection.hpp:17
float origin
Definition viewport_projection.hpp:16
constexpr bool operator==(const PixelSpan &) const =default