egui

Struct MultiTouchInfo

Source
pub struct MultiTouchInfo {
    pub start_time: f64,
    pub start_pos: Pos2,
    pub num_touches: usize,
    pub zoom_delta: f32,
    pub zoom_delta_2d: Vec2,
    pub rotation_delta: f32,
    pub translation_delta: Vec2,
    pub force: f32,
}
Expand description

All you probably need to know about a multi-touch gesture.

Fields§

§start_time: f64

Point in time when the gesture started.

§start_pos: Pos2

Position of the pointer at the time the gesture started.

§num_touches: usize

Number of touches (fingers) on the surface. Value is ≥ 2 since for a single touch no MultiTouchInfo is created.

§zoom_delta: f32

Proportional zoom factor (pinch gesture).

  • zoom = 1: no change
  • zoom < 1: pinch together
  • zoom > 1: pinch spread
§zoom_delta_2d: Vec2

2D non-proportional zoom factor (pinch gesture).

For horizontal pinches, this will return [z, 1], for vertical pinches this will return [1, z], and otherwise this will return [z, z], where z is the zoom factor:

  • zoom = 1: no change
  • zoom < 1: pinch together
  • zoom > 1: pinch spread
§rotation_delta: f32

Rotation in radians. Moving fingers around each other will change this value. This is a relative value, comparing the orientation of fingers in the current frame with the previous frame. If all fingers are resting, this value is 0.0.

§translation_delta: Vec2

Relative movement (comparing previous frame and current frame) of the average position of all touch points. Without movement this value is Vec2::ZERO.

Note that this may not necessarily be measured in screen points (although it will be for most mobile devices). In general (depending on the touch device), touch coordinates cannot be directly mapped to the screen. A touch always is considered to start at the position of the pointer, but touch movement is always measured in the units delivered by the device, and may depend on hardware and system settings.

§force: f32

Current force of the touch (average of the forces of the individual fingers). This is a value in the interval [0.0 .. =1.0].

Note 1: A value of 0.0 either indicates a very light touch, or it means that the device is not capable of measuring the touch force at all.

Note 2: Just increasing the physical pressure without actually moving the finger may not necessarily lead to a change of this value.

Trait Implementations§

Source§

impl Clone for MultiTouchInfo

Source§

fn clone(&self) -> MultiTouchInfo

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 Debug for MultiTouchInfo

Source§

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

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

impl PartialEq for MultiTouchInfo

Source§

fn eq(&self, other: &MultiTouchInfo) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for MultiTouchInfo

Source§

impl StructuralPartialEq for MultiTouchInfo

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
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> 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<T> SerializableAny for T
where T: 'static + Any + Clone + for<'a> Send + Sync,