aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/xrrigidtransform.rs
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2019-04-05 13:12:19 -0700
committerManish Goregaokar <manishsmail@gmail.com>2019-04-05 20:18:35 -0700
commitcdbc08b9119b062ee9db2967bf19f7be95444756 (patch)
tree84a478cb19c65e93811f52e8d40568dee6b807ab /components/script/dom/xrrigidtransform.rs
parent967efc7fbc0fdfe55eeb9c1f6ac9f3df933f72d9 (diff)
downloadservo-cdbc08b9119b062ee9db2967bf19f7be95444756.tar.gz
servo-cdbc08b9119b062ee9db2967bf19f7be95444756.zip
Set transform.inverse.inverse == transform
https://github.com/immersive-web/webxr/issues/576
Diffstat (limited to 'components/script/dom/xrrigidtransform.rs')
-rw-r--r--components/script/dom/xrrigidtransform.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/components/script/dom/xrrigidtransform.rs b/components/script/dom/xrrigidtransform.rs
index 030905d84fa..969ec839292 100644
--- a/components/script/dom/xrrigidtransform.rs
+++ b/components/script/dom/xrrigidtransform.rs
@@ -100,8 +100,11 @@ impl XRRigidTransformMethods for XRRigidTransform {
}
// https://immersive-web.github.io/webxr/#dom-xrrigidtransform-inverse
fn Inverse(&self) -> DomRoot<XRRigidTransform> {
- self.inverse
- .or_init(|| XRRigidTransform::new(&self.global(), self.transform.inverse()))
+ self.inverse.or_init(|| {
+ let transform = XRRigidTransform::new(&self.global(), self.transform.inverse());
+ transform.inverse.set(Some(self));
+ transform
+ })
}
// https://immersive-web.github.io/webxr/#dom-xrrigidtransform-matrix
#[allow(unsafe_code)]