Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
hit_test.hpp File Reference

Pointer-neutral hit testing for projected timeline items. More...

#include <pulp/timeline/item_id.hpp>
#include <algorithm>
#include <cmath>
#include <cstdint>
#include <limits>
#include <optional>
#include <span>

Go to the source code of this file.

Classes

struct  pulp::timeline_editor::ProjectedHitCandidate
 One timeline item after a front-end projects it into pixel space. More...
struct  pulp::timeline_editor::ProjectedHit
 The identity and region selected from a projected candidate set. More...

Namespaces

namespace  pulp
namespace  pulp::timeline_editor
 ScriptedUiHost is a SequencerUiHost whose playhead is written by the caller instead of an engine, and which keeps what a view emitted so a test can read it back.
namespace  pulp::timeline_editor::hit_test_detail

Enumerations

enum class  pulp::timeline_editor::ProjectedHitRegion : std::uint8_t { pulp::timeline_editor::ProjectedHitRegion::Body , pulp::timeline_editor::ProjectedHitRegion::LeadingEdge , pulp::timeline_editor::ProjectedHitRegion::TrailingEdge }
 The horizontal part of a projected item selected by a hit test. More...

Functions

bool pulp::timeline_editor::hit_test_detail::valid_candidate (const ProjectedHitCandidate &candidate) noexcept
bool pulp::timeline_editor::hit_test_detail::inside_expanded_half_open (float value, float start, float end, float tolerance) noexcept
bool pulp::timeline_editor::hit_test_detail::inside_half_open (const ProjectedHitCandidate &candidate, float x, float y) noexcept
double pulp::timeline_editor::hit_test_detail::distance_to_half_open_span (float value, float start, float end) noexcept
ProjectedHitRegion pulp::timeline_editor::hit_test_detail::region_at (const ProjectedHitCandidate &candidate, float x, float tolerance) noexcept
std::optional< ProjectedHit > pulp::timeline_editor::hit_test_projected_items (std::span< const ProjectedHitCandidate > back_to_front, float x_px, float y_px, float tolerance_px) noexcept
 Selects one projected timeline item using already-resolved pixel tolerance.

Detailed Description

Pointer-neutral hit testing for projected timeline items.