trackball

Struct Touch

Source
pub struct Touch<F: Debug + Eq, N: Copy + RealField> { /* private fields */ }
Expand description

Touch gestures inducing slide, orbit, scale, and focus.

Implements Default and can be created with Touch::default().

All methods except Self::fingers() must be invoked on matching events fired by your 3D graphics library of choice.

Implementations§

Source§

impl<F: Debug + Copy + Eq, N: Copy + RealField> Touch<F, N>

Source

pub fn compute( &mut self, fid: F, pos: Point2<N>, mvs: usize, ) -> Option<(usize, Point2<N>, N, N)>

Computes centroid position, roll angle, and scale ratio from finger gestures.

Parameters are:

  • fid as generic finger ID like Some(id) for touch and None for mouse events,
  • pos as current cursor/finger position in screen space,
  • mvs as number of finger moves for debouncing potential finger tap gesture with zero resulting in no delay of non-tap gestures while tap gesture can still be recognized. Use zero unless tap gestures are hardly recognized.

Returns number of fingers, centroid position, roll angle, and scale ratio in screen space in the order mentioned or None when debouncing tap gesture with non-vanishing mvs. See Self::discard() for tap gesture result.

§Panics

Panics with more than ten fingers.

Source

pub fn discard(&mut self, fid: F) -> Option<(usize, Point2<N>)>

Removes finger position and returns number of fingers and centroid position of tap gesture.

Returns None as long as there are finger positions or no tap gesture has been recognized.

Discards finger positions and tap gesture if generic finger ID fid is unknown.

Source

pub fn fingers(&self) -> usize

Number of fingers.

Source

pub fn cast<M: Copy + RealField>(self) -> Touch<F, M>
where N: SubsetOf<M>,

Casts components to another type, e.g., between f32 and f64.

Trait Implementations§

Source§

impl<F: Clone + Debug + Eq, N: Clone + Copy + RealField> Clone for Touch<F, N>

Source§

fn clone(&self) -> Touch<F, N>

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<F: Debug + Debug + Eq, N: Debug + Copy + RealField> Debug for Touch<F, N>

Source§

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

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

impl<F: Default + Debug + Eq, N: Default + Copy + RealField> Default for Touch<F, N>

Source§

fn default() -> Touch<F, N>

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

Auto Trait Implementations§

§

impl<F, N> Freeze for Touch<F, N>
where N: Freeze, F: Freeze,

§

impl<F, N> RefUnwindSafe for Touch<F, N>

§

impl<F, N> Send for Touch<F, N>
where F: Send,

§

impl<F, N> Sync for Touch<F, N>
where F: Sync,

§

impl<F, N> Unpin for Touch<F, N>
where N: Unpin, F: Unpin,

§

impl<F, N> UnwindSafe for Touch<F, N>
where N: UnwindSafe, F: UnwindSafe,

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
Source§

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

Source§

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

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V