Struct input::TouchArgs
[−]
[src]
pub struct TouchArgs { pub device: i64, pub id: i64, pub x: f64, pub y: f64, pub z: f64, pub px: f64, pub py: f64, pub pz: f64, pub is_3d: bool, pub touch: Touch, }
Touch arguments
The id
might be reused for different touches that do not overlap in time.
- Coordinates are normalized to support both touch screens and trackpads
- Supports both 2D and 3D touch
- The pressure direction vector should have maximum length 1
For 2D touch the pressure is pointed the z direction.
Use .pressure()
to get the pressure magnitude.
Fields
device | A unique identifier for touch device. |
id | A unique identifier for touch event. |
x | The x coordinate of the touch position, normalized 0..1. |
y | The y coordinate of the touch position, normalized 0..1. |
z | The z coordinate of the touch position, normalized 0..1. |
px | The x coordinate of the touch pressure direction. |
py | The y coordinate of the touch pressure direction. |
pz | The z coordinate of the touch pressure direction. |
is_3d | Whether the touch is in 3D. |
touch | The touch state. |
Methods
impl TouchArgs
fn new(device: i64, id: i64, pos: [f64; 2], pressure: f64, touch: Touch) -> TouchArgs
Creates arguments for 2D touch.
fn new_3d(device: i64, id: i64, pos: [f64; 3], pressure: [f64; 3], touch: Touch) -> TouchArgs
Creates arguments for 3D touch.
The pressure direction vector should have maximum length 1.
fn position(&self) -> [f64; 2]
The position of the touch in 2D.
fn position_3d(&self) -> [f64; 3]
The position of the touch in 3D.
fn pressure(&self) -> f64
The pressure magnitude, normalized 0..1.
fn pressure_3d(&self) -> [f64; 3]
The pressure vector in 3D.