diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2019-04-04 17:40:18 -0700 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2019-04-04 17:45:09 -0700 |
commit | 813613628db87f09014330a9c508b079454198e6 (patch) | |
tree | c4e3d61e6649e0684854a11403fd2a6c3a902d25 /components/script/dom/xrspace.rs | |
parent | 7e4b6512a7c0899b642e5eedf0f250630f7d9d34 (diff) | |
download | servo-813613628db87f09014330a9c508b079454198e6.tar.gz servo-813613628db87f09014330a9c508b079454198e6.zip |
Add XRSession.viewerSpace
Diffstat (limited to 'components/script/dom/xrspace.rs')
-rw-r--r-- | components/script/dom/xrspace.rs | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/components/script/dom/xrspace.rs b/components/script/dom/xrspace.rs index d9bbad8cd86..8948ac03c8e 100644 --- a/components/script/dom/xrspace.rs +++ b/components/script/dom/xrspace.rs @@ -18,6 +18,7 @@ use webvr_traits::WebVRFrameData; pub struct XRSpace { eventtarget: EventTarget, session: Dom<XRSession>, + is_viewerspace: bool, } impl XRSpace { @@ -25,13 +26,21 @@ impl XRSpace { XRSpace { eventtarget: EventTarget::new_inherited(), session: Dom::from_ref(session), + is_viewerspace: false, } } - #[allow(unused)] - pub fn new(global: &GlobalScope, session: &XRSession) -> DomRoot<XRSpace> { + fn new_viewerspace_inner(session: &XRSession) -> XRSpace { + XRSpace { + eventtarget: EventTarget::new_inherited(), + session: Dom::from_ref(session), + is_viewerspace: true, + } + } + + pub fn new_viewerspace(global: &GlobalScope, session: &XRSession) -> DomRoot<XRSpace> { reflect_dom_object( - Box::new(XRSpace::new_inherited(session)), + Box::new(XRSpace::new_viewerspace_inner(session)), global, XRSpaceBinding::Wrap, ) @@ -47,6 +56,8 @@ impl XRSpace { pub fn get_pose(&self, base_pose: &WebVRFrameData) -> RigidTransform3D<f64> { if let Some(reference) = self.downcast::<XRReferenceSpace>() { reference.get_pose(base_pose) + } else if self.is_viewerspace { + XRSpace::viewer_pose_from_frame_data(base_pose) } else { unreachable!() } |