From d1d8e97c304b31f292c17d8d8f84a13cf12f74cd Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Thu, 21 Mar 2019 14:50:02 -0700 Subject: Add XRSpace::get_viewer_pose() --- components/script/dom/xrspace.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'components/script/dom/xrspace.rs') diff --git a/components/script/dom/xrspace.rs b/components/script/dom/xrspace.rs index e0d4ce75cf3..95ebb2625b3 100644 --- a/components/script/dom/xrspace.rs +++ b/components/script/dom/xrspace.rs @@ -3,12 +3,16 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use crate::dom::bindings::codegen::Bindings::XRSpaceBinding; +use crate::dom::bindings::inheritance::Castable; use crate::dom::bindings::reflector::reflect_dom_object; use crate::dom::bindings::root::{Dom, DomRoot}; use crate::dom::eventtarget::EventTarget; use crate::dom::globalscope::GlobalScope; +use crate::dom::xrreferencespace::XRReferenceSpace; use crate::dom::xrsession::XRSession; use dom_struct::dom_struct; +use euclid::Transform3D; +use webvr_traits::WebVRFrameData; #[dom_struct] pub struct XRSpace { @@ -33,3 +37,25 @@ impl XRSpace { ) } } + +impl XRSpace { + /// Gets viewer pose represented by this space + pub fn get_viewer_pose(&self, base_pose: &WebVRFrameData) -> Transform3D { + if let Some(reference) = self.downcast::() { + reference.get_viewer_pose(base_pose) + } else { + unreachable!() + } + } + + /// Gets pose represented by this space + /// + /// Does not apply originOffset, use get_viewer_pose instead if you need it + pub fn get_pose(&self, base_pose: &WebVRFrameData) -> Transform3D { + if let Some(reference) = self.downcast::() { + reference.get_pose(base_pose) + } else { + unreachable!() + } + } +} -- cgit v1.2.3 From 2e628055786cd5d1d17cf739aea689f16e7a0d27 Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Tue, 26 Mar 2019 14:33:50 -0700 Subject: Allow unused --- components/script/dom/xrspace.rs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'components/script/dom/xrspace.rs') diff --git a/components/script/dom/xrspace.rs b/components/script/dom/xrspace.rs index 95ebb2625b3..9dc82e388e5 100644 --- a/components/script/dom/xrspace.rs +++ b/components/script/dom/xrspace.rs @@ -40,6 +40,7 @@ impl XRSpace { impl XRSpace { /// Gets viewer pose represented by this space + #[allow(unused)] pub fn get_viewer_pose(&self, base_pose: &WebVRFrameData) -> Transform3D { if let Some(reference) = self.downcast::() { reference.get_viewer_pose(base_pose) @@ -51,6 +52,7 @@ impl XRSpace { /// Gets pose represented by this space /// /// Does not apply originOffset, use get_viewer_pose instead if you need it + #[allow(unused)] pub fn get_pose(&self, base_pose: &WebVRFrameData) -> Transform3D { if let Some(reference) = self.downcast::() { reference.get_pose(base_pose) -- cgit v1.2.3