diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs index aae84c5bdd5..3ecb76bba66 100644 --- a/components/script/dom/mod.rs +++ b/components/script/dom/mod.rs @@ -521,6 +521,7 @@ pub mod xr; pub mod xrframe; pub mod xrlayer; pub mod xrreferencespace; +pub mod xrrigidtransform; pub mod xrsession; pub mod xrspace; pub mod xrstationaryreferencespace; diff --git a/components/script/dom/webidls/XRRigidTransform.webidl b/components/script/dom/webidls/XRRigidTransform.webidl new file mode 100644 index 00000000000..d7ad6ac97b4 --- /dev/null +++ b/components/script/dom/webidls/XRRigidTransform.webidl @@ -0,0 +1,13 @@ +/* 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/#xrrigidtransform-interface + +[SecureContext, Exposed=Window] +// [Constructor(optional DOMPointInit position, optional DOMPointInit orientation)] +interface XRRigidTransform { + // readonly attribute DOMPointReadOnly position; + // readonly attribute DOMPointReadOnly orientation; + // readonly attribute Float32Array matrix; +}; \ No newline at end of file diff --git a/components/script/dom/xrrigidtransform.rs b/components/script/dom/xrrigidtransform.rs new file mode 100644 index 00000000000..b14bb0a02bf --- /dev/null +++ b/components/script/dom/xrrigidtransform.rs @@ -0,0 +1,30 @@ +/* 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::XRRigidTransformBinding; +use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; +use crate::dom::bindings::root::DomRoot; +use crate::dom::globalscope::GlobalScope; +use dom_struct::dom_struct; + +#[dom_struct] +pub struct XRRigidTransform { + reflector_: Reflector, +} + +impl XRRigidTransform { + fn new_inherited() -> XRRigidTransform { + XRRigidTransform { + reflector_: Reflector::new(), + } + } + + pub fn new(global: &GlobalScope) -> DomRoot { + reflect_dom_object( + Box::new(XRRigidTransform::new_inherited()), + global, + XRRigidTransformBinding::Wrap, + ) + } +}