mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
Basic XRReferenceSpace interface
This commit is contained in:
parent
90e0ceb7ce
commit
581470016f
7 changed files with 142 additions and 0 deletions
|
@ -520,6 +520,8 @@ pub mod xmlhttprequestupload;
|
||||||
pub mod xr;
|
pub mod xr;
|
||||||
pub mod xrframe;
|
pub mod xrframe;
|
||||||
pub mod xrlayer;
|
pub mod xrlayer;
|
||||||
|
pub mod xrreferencespace;
|
||||||
pub mod xrsession;
|
pub mod xrsession;
|
||||||
pub mod xrspace;
|
pub mod xrspace;
|
||||||
|
pub mod xrstationaryreferencespace;
|
||||||
pub mod xrwebgllayer;
|
pub mod xrwebgllayer;
|
||||||
|
|
20
components/script/dom/webidls/XRReferenceSpace.webidl
Normal file
20
components/script/dom/webidls/XRReferenceSpace.webidl
Normal 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;
|
||||||
|
};
|
7
components/script/dom/webidls/XRSpace.webidl
Normal file
7
components/script/dom/webidls/XRSpace.webidl
Normal 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);
|
||||||
|
};
|
|
@ -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;
|
||||||
|
};
|
31
components/script/dom/xrreferencespace.rs
Normal file
31
components/script/dom/xrreferencespace.rs
Normal 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,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
31
components/script/dom/xrspace.rs
Normal file
31
components/script/dom/xrspace.rs
Normal 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,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
31
components/script/dom/xrstationaryreferencespace.rs
Normal file
31
components/script/dom/xrstationaryreferencespace.rs
Normal 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,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue