Basic XRReferenceSpace interface

This commit is contained in:
Manish Goregaokar 2018-12-19 15:46:39 -08:00
parent 90e0ceb7ce
commit 581470016f
7 changed files with 142 additions and 0 deletions

View file

@ -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;

View file

@ -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;
};

View file

@ -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);
};

View file

@ -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;
};

View file

@ -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,
)
}
}

View file

@ -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,
)
}
}

View file

@ -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,
)
}
}