29 glm::vec2 pixel_delta,
30 glm::vec2 visible_extent,
31 glm::vec2 viewport_size_pixels)
noexcept;
76 glm::vec2 viewport_extent,
77 AABB2D content_bounds)
noexcept;
82MAYAFLUX_API
void apply_scroll(ScrollState& state, glm::vec2 delta)
noexcept;
ViewTransform scroll_view_transform(const ScrollState &state) noexcept
Build an orthographic ViewTransform that translates by +offset.
void apply_wheel_scroll(ScrollState &state, double dx, double dy, float speed) noexcept
Apply a wheel-tick delta, scaled by speed, and clamp.
void apply_scroll(NavigationState &st, float ticks)
Dolly eye along the current forward vector.
double speed(const Memory::HistoryBuffer< double > &history, double dt) noexcept
Absolute value of a scalar first difference.
glm::vec2 drag_to_offset_delta(glm::vec2 pixel_delta, glm::vec2 visible_extent, glm::vec2 viewport_size_pixels) noexcept
Convert a pixel-space drag delta into a content-space delta.
glm::vec2 clamp_offset_to_content(glm::vec2 offset, glm::vec2 viewport_extent, AABB2D content_bounds) noexcept
Clamp a content-space offset so a viewport of the given extent never scrolls past the edges of a cont...
Axis-aligned bounding rectangle in a 2D coordinate space.