mirror of
https://github.com/servo/servo.git
synced 2025-08-01 19:50:30 +01:00
Fix DOMMatrix rotate test failure
This commit is contained in:
parent
fee1418b43
commit
168d980f9e
2 changed files with 12 additions and 14 deletions
|
@ -287,22 +287,25 @@ impl DOMMatrixReadOnly {
|
||||||
}
|
}
|
||||||
if rotZ != 0.0 {
|
if rotZ != 0.0 {
|
||||||
// Step 5.
|
// Step 5.
|
||||||
|
// Beware: pass negated value until https://github.com/servo/euclid/issues/354
|
||||||
let rotation =
|
let rotation =
|
||||||
Transform3D::create_rotation(0.0, 0.0, 1.0, Angle::radians(rotZ.to_radians()));
|
Transform3D::create_rotation(0.0, 0.0, -1.0, Angle::radians(rotZ.to_radians()));
|
||||||
let mut matrix = self.matrix.borrow_mut();
|
let mut matrix = self.matrix.borrow_mut();
|
||||||
*matrix = rotation.post_mul(&matrix);
|
*matrix = rotation.post_mul(&matrix);
|
||||||
}
|
}
|
||||||
if rotY != 0.0 {
|
if rotY != 0.0 {
|
||||||
// Step 6.
|
// Step 6.
|
||||||
|
// Beware: pass negated value until https://github.com/servo/euclid/issues/354
|
||||||
let rotation =
|
let rotation =
|
||||||
Transform3D::create_rotation(0.0, 1.0, 0.0, Angle::radians(rotY.to_radians()));
|
Transform3D::create_rotation(0.0, -1.0, 0.0, Angle::radians(rotY.to_radians()));
|
||||||
let mut matrix = self.matrix.borrow_mut();
|
let mut matrix = self.matrix.borrow_mut();
|
||||||
*matrix = rotation.post_mul(&matrix);
|
*matrix = rotation.post_mul(&matrix);
|
||||||
}
|
}
|
||||||
if rotX != 0.0 {
|
if rotX != 0.0 {
|
||||||
// Step 7.
|
// Step 7.
|
||||||
|
// Beware: pass negated value until https://github.com/servo/euclid/issues/354
|
||||||
let rotation =
|
let rotation =
|
||||||
Transform3D::create_rotation(1.0, 0.0, 0.0, Angle::radians(rotX.to_radians()));
|
Transform3D::create_rotation(-1.0, 0.0, 0.0, Angle::radians(rotX.to_radians()));
|
||||||
let mut matrix = self.matrix.borrow_mut();
|
let mut matrix = self.matrix.borrow_mut();
|
||||||
*matrix = rotation.post_mul(&matrix);
|
*matrix = rotation.post_mul(&matrix);
|
||||||
}
|
}
|
||||||
|
@ -315,7 +318,8 @@ impl DOMMatrixReadOnly {
|
||||||
if y != 0.0 || x < 0.0 {
|
if y != 0.0 || x < 0.0 {
|
||||||
// Step 1.
|
// Step 1.
|
||||||
let rotZ = Angle::radians(f64::atan2(y, x));
|
let rotZ = Angle::radians(f64::atan2(y, x));
|
||||||
let rotation = Transform3D::create_rotation(0.0, 0.0, 1.0, rotZ);
|
// Beware: pass negated value until https://github.com/servo/euclid/issues/354
|
||||||
|
let rotation = Transform3D::create_rotation(0.0, 0.0, -1.0, rotZ);
|
||||||
let mut matrix = self.matrix.borrow_mut();
|
let mut matrix = self.matrix.borrow_mut();
|
||||||
*matrix = rotation.post_mul(&matrix);
|
*matrix = rotation.post_mul(&matrix);
|
||||||
}
|
}
|
||||||
|
@ -326,10 +330,11 @@ impl DOMMatrixReadOnly {
|
||||||
pub fn rotate_axis_angle_self(&self, x: f64, y: f64, z: f64, angle: f64) {
|
pub fn rotate_axis_angle_self(&self, x: f64, y: f64, z: f64, angle: f64) {
|
||||||
// Step 1.
|
// Step 1.
|
||||||
let (norm_x, norm_y, norm_z) = normalize_point(x, y, z);
|
let (norm_x, norm_y, norm_z) = normalize_point(x, y, z);
|
||||||
|
// Beware: pass negated value until https://github.com/servo/euclid/issues/354
|
||||||
let rotation = Transform3D::create_rotation(
|
let rotation = Transform3D::create_rotation(
|
||||||
norm_x,
|
-norm_x,
|
||||||
norm_y,
|
-norm_y,
|
||||||
norm_z,
|
-norm_z,
|
||||||
Angle::radians(angle.to_radians()),
|
Angle::radians(angle.to_radians()),
|
||||||
);
|
);
|
||||||
let mut matrix = self.matrix.borrow_mut();
|
let mut matrix = self.matrix.borrow_mut();
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
[DOMMatrix-003.html]
|
|
||||||
type: testharness
|
|
||||||
[test rotate() 2d]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[test rotateAxisAngle() ]
|
|
||||||
expected: FAIL
|
|
Loading…
Add table
Add a link
Reference in a new issue