diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2018-12-19 15:46:39 -0800 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2018-12-19 16:24:38 -0800 |
commit | 581470016f1cc7d6d183e983056ec8e4882a0b19 (patch) | |
tree | c3256c2fa2421cfbe7a324844324f2b6ceae3b9c /components | |
parent | 90e0ceb7ce083e54fb7e749e929ab979cc66fe06 (diff) | |
download | servo-581470016f1cc7d6d183e983056ec8e4882a0b19.tar.gz servo-581470016f1cc7d6d183e983056ec8e4882a0b19.zip |
Basic XRReferenceSpace interface
Diffstat (limited to 'components')
-rw-r--r-- | components/script/dom/mod.rs | 2 | ||||
-rw-r--r-- | components/script/dom/webidls/XRReferenceSpace.webidl | 20 | ||||
-rw-r--r-- | components/script/dom/webidls/XRSpace.webidl | 7 | ||||
-rw-r--r-- | components/script/dom/webidls/XRStationaryReferenceSpace.webidl | 20 | ||||
-rw-r--r-- | components/script/dom/xrreferencespace.rs | 31 | ||||
-rw-r--r-- | components/script/dom/xrspace.rs | 31 | ||||
-rw-r--r-- | components/script/dom/xrstationaryreferencespace.rs | 31 |
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, + ) + } +} |