aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/xrrigidtransform.rs
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2019-04-03 11:33:06 -0700
committerManish Goregaokar <manishsmail@gmail.com>2019-04-03 23:55:33 -0700
commiteb837d1ed79bac1d3e0e9552b149f7f289665eb1 (patch)
tree57e7b308e492e315e63f099a805670e4c36eec25 /components/script/dom/xrrigidtransform.rs
parentfcec93ae162798274576ff3b4d3c7310dd9fb3e3 (diff)
downloadservo-eb837d1ed79bac1d3e0e9552b149f7f289665eb1.tar.gz
servo-eb837d1ed79bac1d3e0e9552b149f7f289665eb1.zip
XRRigidTransform.inverse is now a lazy attribute
Diffstat (limited to 'components/script/dom/xrrigidtransform.rs')
-rw-r--r--components/script/dom/xrrigidtransform.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/components/script/dom/xrrigidtransform.rs b/components/script/dom/xrrigidtransform.rs
index be27d20d6ee..0bebba280a9 100644
--- a/components/script/dom/xrrigidtransform.rs
+++ b/components/script/dom/xrrigidtransform.rs
@@ -23,6 +23,7 @@ pub struct XRRigidTransform {
orientation: MutNullableDom<DOMPointReadOnly>,
#[ignore_malloc_size_of = "defined in euclid"]
transform: RigidTransform3D<f64>,
+ inverse: MutNullableDom<XRRigidTransform>,
}
impl XRRigidTransform {
@@ -32,6 +33,7 @@ impl XRRigidTransform {
position: MutNullableDom::default(),
orientation: MutNullableDom::default(),
transform,
+ inverse: MutNullableDom::default(),
}
}
@@ -93,7 +95,9 @@ impl XRRigidTransformMethods for XRRigidTransform {
}
// https://immersive-web.github.io/webxr/#dom-xrrigidtransform-inverse
fn Inverse(&self) -> DomRoot<XRRigidTransform> {
- XRRigidTransform::new(&self.global(), self.transform.inverse())
+ self.inverse.or_init(|| {
+ XRRigidTransform::new(&self.global(), self.transform.inverse())
+ })
}
}