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.