aboutsummaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2018-12-19 15:46:39 -0800
committerManish Goregaokar <manishsmail@gmail.com>2018-12-19 16:24:38 -0800
commit581470016f1cc7d6d183e983056ec8e4882a0b19 (patch)
treec3256c2fa2421cfbe7a324844324f2b6ceae3b9c /components
parent90e0ceb7ce083e54fb7e749e929ab979cc66fe06 (diff)
downloadservo-581470016f1cc7d6d183e983056ec8e4882a0b19.tar.gz
servo-581470016f1cc7d6d183e983056ec8e4882a0b19.zip
Basic XRReferenceSpace interface
Diffstat (limited to 'components')
-rw-r--r--components/script/dom/mod.rs2
-rw-r--r--components/script/dom/webidls/XRReferenceSpace.webidl20
-rw-r--r--components/script/dom/webidls/XRSpace.webidl7
-rw-r--r--components/script/dom/webidls/XRStationaryReferenceSpace.webidl20
-rw-r--r--components/script/dom/xrreferencespace.rs31
-rw-r--r--components/script/dom/xrspace.rs31
-rw-r--r--components/script/dom/xrstationaryreferencespace.rs31
7 files changed, 142 insertions, 0 deletions
diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs
index d2416b113c8..8bc483739b3 100644
--- a/components/script/dom/mod.rs
+++ b/components/script/dom/mod.rs
@@ -520,6 +520,8 @@ pub mod xmlhttprequestupload;
pub mod xr;
pub mod xrframe;
pub mod xrlayer;
+pub mod xrreferencespace;
pub mod xrsession;
pub mod xrspace;
+pub mod xrstationaryreferencespace;
pub mod xrwebgllayer;
diff --git a/components/script/dom/webidls/XRReferenceSpace.webidl b/components/script/dom/webidls/XRReferenceSpace.webidl
new file mode 100644
index 00000000000..5b18050dda2
--- /dev/null
+++ b/components/script/dom/webidls/XRReferenceSpace.webidl
@@ -0,0 +1,20 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+// https://immersive-web.github.io/webxr/#xrreferencespace-interface
+
+enum XRReferenceSpaceType {
+ "stationary",
+ "bounded",
+ "unbounded"
+};
+
+dictionary XRReferenceSpaceOptions {
+ required XRReferenceSpaceType type;
+};
+
+[SecureContext, Exposed=Window] interface XRReferenceSpace : XRSpace {
+ // attribute XRRigidTransform originOffset;
+ // attribute EventHandler onreset;
+};
diff --git a/components/script/dom/webidls/XRSpace.webidl b/components/script/dom/webidls/XRSpace.webidl
new file mode 100644
index 00000000000..9ad1d399429
--- /dev/null
+++ b/components/script/dom/webidls/XRSpace.webidl
@@ -0,0 +1,7 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+[SecureContext, Exposed=Window] interface XRSpace : EventTarget {
+ // XRRigidTransform? getTransformTo(XRSpace other);
+}; \ No newline at end of file
diff --git a/components/script/dom/webidls/XRStationaryReferenceSpace.webidl b/components/script/dom/webidls/XRStationaryReferenceSpace.webidl
new file mode 100644
index 00000000000..a6b8954b885
--- /dev/null
+++ b/components/script/dom/webidls/XRStationaryReferenceSpace.webidl
@@ -0,0 +1,20 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+// https://immersive-web.github.io/webxr/#xrstationaryreferencespace-interface
+
+enum XRStationaryReferenceSpaceSubtype {
+ "eye-level",
+ "floor-level",
+ "position-disabled"
+};
+
+dictionary XRStationaryReferenceSpaceOptions : XRReferenceSpaceOptions {
+ required XRStationaryReferenceSpaceSubtype subtype;
+};
+
+[SecureContext, Exposed=Window]
+interface XRStationaryReferenceSpace: XRReferenceSpace {
+ // readonly attribute XRStationaryReferenceSpaceSubtype subtype;
+}; \ No newline at end of file
diff --git a/components/script/dom/xrreferencespace.rs b/components/script/dom/xrreferencespace.rs
new file mode 100644
index 00000000000..0a2e1bee3d9
--- /dev/null
+++ b/components/script/dom/xrreferencespace.rs
@@ -0,0 +1,31 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+use crate::dom::bindings::codegen::Bindings::XRReferenceSpaceBinding;
+use crate::dom::bindings::reflector::reflect_dom_object;
+use crate::dom::bindings::root::DomRoot;
+use crate::dom::globalscope::GlobalScope;
+use crate::dom::xrspace::XRSpace;
+use dom_struct::dom_struct;
+
+#[dom_struct]
+pub struct XRReferenceSpace {
+ xrspace: XRSpace,
+}
+
+impl XRReferenceSpace {
+ pub fn new_inherited() -> XRReferenceSpace {
+ XRReferenceSpace {
+ xrspace: XRSpace::new_inherited(),
+ }
+ }
+
+ pub fn new(global: &GlobalScope) -> DomRoot<XRReferenceSpace> {
+ reflect_dom_object(
+ Box::new(XRReferenceSpace::new_inherited()),
+ global,
+ XRReferenceSpaceBinding::Wrap,
+ )
+ }
+}
diff --git a/components/script/dom/xrspace.rs b/components/script/dom/xrspace.rs
new file mode 100644
index 00000000000..c0def208f64
--- /dev/null
+++ b/components/script/dom/xrspace.rs
@@ -0,0 +1,31 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+use crate::dom::bindings::codegen::Bindings::XRSpaceBinding;
+use crate::dom::bindings::reflector::reflect_dom_object;
+use crate::dom::bindings::root::DomRoot;
+use crate::dom::eventtarget::EventTarget;
+use crate::dom::globalscope::GlobalScope;
+use dom_struct::dom_struct;
+
+#[dom_struct]
+pub struct XRSpace {
+ eventtarget: EventTarget,
+}
+
+impl XRSpace {
+ pub fn new_inherited() -> XRSpace {
+ XRSpace {
+ eventtarget: EventTarget::new_inherited(),
+ }
+ }
+
+ pub fn new(global: &GlobalScope) -> DomRoot<XRSpace> {
+ reflect_dom_object(
+ Box::new(XRSpace::new_inherited()),
+ global,
+ XRSpaceBinding::Wrap,
+ )
+ }
+}
diff --git a/components/script/dom/xrstationaryreferencespace.rs b/components/script/dom/xrstationaryreferencespace.rs
new file mode 100644
index 00000000000..65dc5dd93cf
--- /dev/null
+++ b/components/script/dom/xrstationaryreferencespace.rs
@@ -0,0 +1,31 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+use crate::dom::bindings::codegen::Bindings::XRStationaryReferenceSpaceBinding;
+use crate::dom::bindings::reflector::reflect_dom_object;
+use crate::dom::bindings::root::DomRoot;
+use crate::dom::globalscope::GlobalScope;
+use crate::dom::xrreferencespace::XRReferenceSpace;
+use dom_struct::dom_struct;
+
+#[dom_struct]
+pub struct XRStationaryReferenceSpace {
+ xrreferencespace: XRReferenceSpace,
+}
+
+impl XRStationaryReferenceSpace {
+ pub fn new_inherited() -> XRStationaryReferenceSpace {
+ XRStationaryReferenceSpace {
+ xrreferencespace: XRReferenceSpace::new_inherited(),
+ }
+ }
+
+ pub fn new(global: &GlobalScope) -> DomRoot<XRStationaryReferenceSpace> {
+ reflect_dom_object(
+ Box::new(XRStationaryReferenceSpace::new_inherited()),
+ global,
+ XRStationaryReferenceSpaceBinding::Wrap,
+ )
+ }
+}