aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/xrrigidtransform.rs
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2019-03-14 13:01:50 -0700
committerManish Goregaokar <manishsmail@gmail.com>2019-03-18 16:26:13 -0700
commitc775820a79a793781696f2c472d3071bcb5380f6 (patch)
tree3fa2cb93bdf5a544cda8718f9e2f7e761649a2ee /components/script/dom/xrrigidtransform.rs
parentbc03d321429799321be238067f11de4ca6c7e90f (diff)
downloadservo-c775820a79a793781696f2c472d3071bcb5380f6.tar.gz
servo-c775820a79a793781696f2c472d3071bcb5380f6.zip
Add XRRigidTransform constructor
Diffstat (limited to 'components/script/dom/xrrigidtransform.rs')
-rw-r--r--components/script/dom/xrrigidtransform.rs37
1 files changed, 32 insertions, 5 deletions
diff --git a/components/script/dom/xrrigidtransform.rs b/components/script/dom/xrrigidtransform.rs
index b147e274810..d30a074fbf9 100644
--- a/components/script/dom/xrrigidtransform.rs
+++ b/components/script/dom/xrrigidtransform.rs
@@ -2,30 +2,57 @@
* 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::DOMPointBinding::DOMPointInit;
use crate::dom::bindings::codegen::Bindings::XRRigidTransformBinding;
+use crate::dom::bindings::error::Fallible;
+use crate::dom::bindings::reflector::DomObject;
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
-use crate::dom::bindings::root::DomRoot;
-use crate::dom::globalscope::GlobalScope;
+use crate::dom::bindings::root::{Dom, DomRoot};
+use crate::dom::dompointreadonly::DOMPointReadOnly;
+use crate::dom::window::Window;
use dom_struct::dom_struct;
#[dom_struct]
pub struct XRRigidTransform {
reflector_: Reflector,
+ position: Dom<DOMPointReadOnly>,
+ orientation: Dom<DOMPointReadOnly>,
}
impl XRRigidTransform {
- fn new_inherited() -> XRRigidTransform {
+ fn new_inherited(
+ position: &DOMPointReadOnly,
+ orientation: &DOMPointReadOnly,
+ ) -> XRRigidTransform {
XRRigidTransform {
reflector_: Reflector::new(),
+ position: Dom::from_ref(position),
+ orientation: Dom::from_ref(orientation),
}
}
#[allow(unused)]
- pub fn new(global: &GlobalScope) -> DomRoot<XRRigidTransform> {
+ pub fn new(
+ global: &Window,
+ position: &DOMPointReadOnly,
+ orientation: &DOMPointReadOnly,
+ ) -> DomRoot<XRRigidTransform> {
reflect_dom_object(
- Box::new(XRRigidTransform::new_inherited()),
+ Box::new(XRRigidTransform::new_inherited(position, orientation)),
global,
XRRigidTransformBinding::Wrap,
)
}
+
+ // https://immersive-web.github.io/webxr/#dom-xrrigidtransform-xrrigidtransform
+ pub fn Constructor(
+ window: &Window,
+ position: &DOMPointInit,
+ orientation: &DOMPointInit,
+ ) -> Fallible<DomRoot<Self>> {
+ let global = window.global();
+ let position = DOMPointReadOnly::new_from_init(&global, &position);
+ let orientation = DOMPointReadOnly::new_from_init(&global, &orientation);
+ Ok(XRRigidTransform::new(window, &position, &orientation))
+ }
}