mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +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 xrframe;
|
||||
pub mod xrlayer;
|
||||
pub mod xrreferencespace;
|
||||
pub mod xrsession;
|
||||
pub mod xrspace;
|
||||
pub mod xrstationaryreferencespace;
|
||||
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