65 std::vector<WaveformRenderSpan>
spans;
131 template <
typename Visitor>
162 [[nodiscard]] std::vector<WaveformHandle>
handles()
const;
172 explicit operator bool()
const {
return hit(); }
188 float pixels_per_point = 1.0f);
211 int64_t total_samples,
221 int64_t playhead_sample);
245 int64_t anchor_sample,
247 int64_t initial_playhead_sample = 0);
253 [[nodiscard]]
bool active()
const {
return active_; }
261 bool active_ =
false;
263 int64_t anchor_sample_ = 0;
265 int64_t initial_playhead_sample_ = 0;
320 float pixels_per_point = 1.0f)
const;
331 [[nodiscard]]
int edit_id()
const {
return edit_id_; }
341 int64_t anchor_sample,
345 WaveformHandleModel handles_{};
346 WaveformSnapSettings snap_settings_{};
347 WaveformHandleModel edit_initial_handles_{};
348 bool edit_active_ =
false;
351 int64_t edit_anchor_sample_ = 0;
Device-appropriate target sizing shared by pointer-driven hit tests.
Hover-cursor tracking for platform window hosts.
Definition fwd.hpp:27
WaveformHitResult hit_test_waveform_handles(const WaveformViewport &viewport, const WaveformHandleModel &model, float x, float tolerance_px)
WaveformSnapResult resolve_waveform_snap(int64_t sample, int64_t total_samples, const WaveformSnapSettings &settings)
WaveformPlayheadOverlay build_waveform_playhead_overlay(const WaveformViewport &viewport, int64_t playhead_sample)
@ settings
Definition design_shortcuts.hpp:96
@ none
Definition appearance_defects.hpp:53
@ grid
Definition geometry.hpp:348
WaveformHandleKind
Definition waveform_editor_primitives.hpp:71
@ loop_end
Definition waveform_editor_primitives.hpp:80
@ trim_start
Definition waveform_editor_primitives.hpp:75
@ fade_out
Definition waveform_editor_primitives.hpp:78
@ none
Definition waveform_editor_primitives.hpp:72
@ fade_in
Definition waveform_editor_primitives.hpp:77
@ playhead
Definition waveform_editor_primitives.hpp:82
@ selection_start
Definition waveform_editor_primitives.hpp:73
@ slice_marker
Definition waveform_editor_primitives.hpp:81
@ selection_end
Definition waveform_editor_primitives.hpp:74
@ trim_end
Definition waveform_editor_primitives.hpp:76
@ loop_start
Definition waveform_editor_primitives.hpp:79
WaveformEditorOperationKind
Definition waveform_editor_primitives.hpp:223
@ move_playhead
Definition waveform_editor_primitives.hpp:229
@ none
Definition waveform_editor_primitives.hpp:224
@ drag_selection_start
Definition waveform_editor_primitives.hpp:227
@ extend_selection
Definition waveform_editor_primitives.hpp:226
@ create_selection
Definition waveform_editor_primitives.hpp:225
@ drag_selection_end
Definition waveform_editor_primitives.hpp:228
WaveformRenderPlan build_waveform_render_plan(const WaveformViewport &viewport, int max_spans=0)
@ i
Definition input_events.hpp:40
@ x
Definition input_events.hpp:41
WaveformSnapSource
Definition waveform_editor_primitives.hpp:190
@ none
Definition waveform_editor_primitives.hpp:191
@ candidate
Definition waveform_editor_primitives.hpp:193
@ bounds
Definition waveform_editor_primitives.hpp:192
@ end
Definition geometry.hpp:370
@ start
Definition geometry.hpp:370
@ cancelled
Definition gesture.hpp:19
Minimum hit-target sizing for one pointer type.
Definition hit_metrics.hpp:24
Axis-aligned rectangle in continuous (float) coordinates.
Definition geometry.hpp:52