aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/xrspace.rs
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2020-04-24 12:25:16 -0700
committerManish Goregaokar <manishsmail@gmail.com>2020-04-27 17:35:48 -0700
commit89fac8be5cca24b1d67259d8f27bd829e188a632 (patch)
tree30f5c8eca3cf1cda3bec58755010b9d3bffaa849 /components/script/dom/xrspace.rs
parentc89dc821ba8c5aa696024ac0fd41816ad5c3b68b (diff)
downloadservo-89fac8be5cca24b1d67259d8f27bd829e188a632.tar.gz
servo-89fac8be5cca24b1d67259d8f27bd829e188a632.zip
Add XRJointSpace
Diffstat (limited to 'components/script/dom/xrspace.rs')
-rw-r--r--components/script/dom/xrspace.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/components/script/dom/xrspace.rs b/components/script/dom/xrspace.rs
index b4a26b7b8bb..66dd5b44e70 100644
--- a/components/script/dom/xrspace.rs
+++ b/components/script/dom/xrspace.rs
@@ -8,6 +8,7 @@ use crate::dom::bindings::root::{Dom, DomRoot, MutNullableDom};
use crate::dom::eventtarget::EventTarget;
use crate::dom::globalscope::GlobalScope;
use crate::dom::xrinputsource::XRInputSource;
+use crate::dom::xrjointspace::XRJointSpace;
use crate::dom::xrreferencespace::XRReferenceSpace;
use crate::dom::xrsession::{cast_transform, ApiPose, XRSession};
use dom_struct::dom_struct;
@@ -61,6 +62,8 @@ impl XRSpace {
pub fn space(&self) -> Space {
if let Some(rs) = self.downcast::<XRReferenceSpace>() {
rs.space()
+ } else if let Some(j) = self.downcast::<XRJointSpace>() {
+ j.space()
} else if let Some(source) = self.input_source.get() {
let base = if self.is_grip_space {
BaseSpace::Grip(source.id())
@@ -86,6 +89,8 @@ impl XRSpace {
pub fn get_pose(&self, base_pose: &Frame) -> Option<ApiPose> {
if let Some(reference) = self.downcast::<XRReferenceSpace>() {
reference.get_pose(base_pose)
+ } else if let Some(joint) = self.downcast::<XRJointSpace>() {
+ joint.get_pose(base_pose)
} else if let Some(source) = self.input_source.get() {
// XXXManishearth we should be able to request frame information
// for inputs when necessary instead of always loading it