| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>Geometry Interfaces: DOMMatrixReadOnly methods do not mutate the object</title> |
| <link href="mailto:peter.hall@algomi.com" rel="author" title="Peter Hall"> |
| <link rel="help" href="https://drafts.fxtf.org/geometry-1/#dom-dommatrixreadonly"> |
| <script src="support/dommatrix-test-util.js"></script> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <p>Test DOMMatrixReadOnly methods do not mutate the object</p> |
| <div id="log"></div> |
| <script> |
| |
| function initialMatrix(){ |
| return DOMMatrixReadOnly.fromMatrix( |
| { |
| m11:1, m12:-0.5, m13: 0.5, m14:0, |
| m21:0.5, m22:2, m23: -0.5, m24:0, |
| m31:0, m32:0, m33: 1, m34:0, |
| m41:0, m42:0, m43: 0, m44:1, |
| is2D: false |
| } |
| ); |
| } |
| |
| test(function() { |
| var matrix = initialMatrix(); |
| matrix.translate(1,5,3); |
| checkDOMMatrix(matrix, initialMatrix()); |
| },"test translate() doesn't mutate"); |
| |
| test(function() { |
| var matrix = initialMatrix(); |
| matrix.scale(1,5,3,0,1,3); |
| checkDOMMatrix(matrix, initialMatrix()); |
| },"test scale() doesn't mutate"); |
| |
| test(function() { |
| var matrix = initialMatrix(); |
| matrix.scale3d(3,2,1,1); |
| checkDOMMatrix(matrix, initialMatrix()); |
| },"test scale3d() doesn't mutate"); |
| |
| test(function() { |
| var matrix = initialMatrix(); |
| matrix.rotate(Math.PI, Math.PI/2, Math.PI/6); |
| checkDOMMatrix(matrix, initialMatrix()); |
| },"test rotate() doesn't mutate"); |
| |
| test(function() { |
| var matrix = initialMatrix(); |
| matrix.rotateFromVector(10,-4); |
| checkDOMMatrix(matrix, initialMatrix()); |
| },"test rotateFromVector() doesn't mutate"); |
| |
| test(function() { |
| var matrix = initialMatrix(); |
| matrix.rotateAxisAngle(3,4,5, Math.PI/6); |
| checkDOMMatrix(matrix, initialMatrix()); |
| },"test rotateAxisAngle() doesn't mutate"); |
| |
| test(function() { |
| var matrix = initialMatrix(); |
| matrix.skewX(20); |
| checkDOMMatrix(matrix, initialMatrix()); |
| },"test skewX() doesn't mutate"); |
| |
| test(function() { |
| var matrix = initialMatrix(); |
| matrix.skewY(20); |
| checkDOMMatrix(matrix, initialMatrix()); |
| },"test skewY() doesn't mutate"); |
| |
| test(function() { |
| var matrix = initialMatrix(); |
| matrix.multiply({ m11:1, m12:2, m13: 0, m14:0, |
| m21:-1, m22:2, m23: -1, m24:0, |
| m31:0, m32:0, m33: 1, m34:0, |
| m41:5, m42:0, m43: 2, m44:1, |
| is2D: false, |
| isIdentity:false }); |
| checkDOMMatrix(matrix, initialMatrix()); |
| },"test multiply() doesn't mutate"); |
| |
| test(function() { |
| var matrix = initialMatrix(); |
| matrix.flipX(); |
| checkDOMMatrix(matrix, initialMatrix()); |
| },"test flipX() doesn't mutate"); |
| |
| test(function() { |
| var matrix = initialMatrix(); |
| matrix.flipY(); |
| checkDOMMatrix(matrix, initialMatrix()); |
| },"test flipY() doesn't mutate"); |
| |
| test(function() { |
| var matrix = initialMatrix(); |
| matrix.inverse(); |
| checkDOMMatrix(matrix, initialMatrix()); |
| },"test inverse() doesn't mutate"); |
| |
| </script> |
| </body> |
| </html> |