mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
28 lines
768 B
Rust
28 lines
768 B
Rust
use crate::InputId;
|
|
use crate::Joint;
|
|
use euclid::RigidTransform3D;
|
|
|
|
#[derive(Clone, Copy, Debug)]
|
|
#[cfg_attr(feature = "ipc", derive(serde::Serialize, serde::Deserialize))]
|
|
/// A stand-in type for "the space isn't statically known since
|
|
/// it comes from client side code"
|
|
pub struct ApiSpace;
|
|
|
|
#[derive(Clone, Copy, Debug, PartialEq)]
|
|
#[cfg_attr(feature = "ipc", derive(serde::Serialize, serde::Deserialize))]
|
|
pub enum BaseSpace {
|
|
Local,
|
|
Floor,
|
|
Viewer,
|
|
BoundedFloor,
|
|
TargetRay(InputId),
|
|
Grip(InputId),
|
|
Joint(InputId, Joint),
|
|
}
|
|
|
|
#[derive(Clone, Copy, Debug)]
|
|
#[cfg_attr(feature = "ipc", derive(serde::Serialize, serde::Deserialize))]
|
|
pub struct Space {
|
|
pub base: BaseSpace,
|
|
pub offset: RigidTransform3D<f32, ApiSpace, ApiSpace>,
|
|
}
|