Struct egui::input_state::touch_state::MultiTouchInfo
source · pub struct MultiTouchInfo {
pub start_time: f64,
pub start_pos: Pos2,
pub center_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.
center_pos: Pos2
Center position of the current gesture (average of all touch points).
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 changezoom < 1
: pinch togetherzoom > 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 changezoom < 1
: pinch togetherzoom > 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
impl Clone for MultiTouchInfo
source§fn clone(&self) -> MultiTouchInfo
fn clone(&self) -> MultiTouchInfo
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for MultiTouchInfo
impl Debug for MultiTouchInfo
source§impl PartialEq for MultiTouchInfo
impl PartialEq for MultiTouchInfo
impl Copy for MultiTouchInfo
impl StructuralPartialEq for MultiTouchInfo
Auto Trait Implementations§
impl Freeze for MultiTouchInfo
impl RefUnwindSafe for MultiTouchInfo
impl Send for MultiTouchInfo
impl Sync for MultiTouchInfo
impl Unpin for MultiTouchInfo
impl UnwindSafe for MultiTouchInfo
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)