Skip to main content

SnapService

Struct SnapService 

Source
pub struct SnapService { /* private fields */ }
Expand description

Snap service for applying snap behavior to points

Implementations§

Source§

impl SnapService

Source

pub fn new() -> Self

Create a new snap service with default options

Source

pub fn with_options(options: SnapOptions) -> Self

Create with custom options

Source

pub fn options(&self) -> &SnapOptions

Get the current options

Source

pub fn options_mut(&mut self) -> &mut SnapOptions

Get mutable options

Source

pub fn snap_point(&self, point: Pos2, targets: &SnapTargets) -> Pos2

Apply snap to a point

Applies in order:

  1. Snap to price (Y axis)
  2. Snap to time (X axis)
  3. Magnet mode (snap to nearest drawing point)
Source

pub fn snap_point_with_drawing_points<I>( &self, point: Pos2, prices: &[f32], times: &[f32], drawing_points: I, ) -> Pos2
where I: IntoIterator<Item = Pos2>,

Apply snap to a point, sourcing magnet targets from a borrowed iterator.

Identical behavior to SnapService::snap_point, but the magnet-mode drawing points are supplied as an iterator rather than an owned Vec. This lets per-pointer-move callers (e.g. during a drag) borrow the live drawing geometry instead of cloning every point of every drawing on each pointer event. The iterator is only consumed when magnet mode is active.

Source

pub fn would_snap(&self, point: Pos2, targets: &SnapTargets) -> bool

Check if a point would snap

Returns true if the point would be modified by snapping.

Source

pub fn get_snap_indicator( &self, point: Pos2, targets: &SnapTargets, ) -> Option<Pos2>

Get snap indicator position if snapping is active

Returns the snapped position only if it differs from input, useful for showing snap indicators in the UI.

Source

pub fn set_snap_to_price(&mut self, enabled: bool)

Enable/disable snap to price

Source

pub fn set_snap_to_time(&mut self, enabled: bool)

Enable/disable snap to time

Source

pub fn set_magnet_mode(&mut self, enabled: bool)

Enable/disable magnet mode

Source

pub fn set_snap_distance(&mut self, distance: f32)

Set snap distance

Source

pub fn set_magnet_distance(&mut self, distance: f32)

Set magnet distance

Trait Implementations§

Source§

impl Clone for SnapService

Source§

fn clone(&self) -> SnapService

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SnapService

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SnapService

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> MaybeSend for T
where T: Send + Sync + ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

§

impl<T> SerializableAny for T
where T: 'static + Any + Clone + for<'a> Send + Sync,

§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

§

fn simd_from(_simd: S, value: T) -> T

§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

§

fn simd_into(self, simd: S) -> T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.