diff --git a/src/ol/transform.js b/src/ol/transform.js index 1694a4c95e..126c92129a 100644 --- a/src/ol/transform.js +++ b/src/ol/transform.js @@ -162,6 +162,16 @@ export function scale(transform, x, y) { return multiply(transform, set(tmp_, x, 0, 0, y, 0, 0)); } +/** + * Creates a scale transform. + * @param {!Transform} target Transform to overwrite. + * @param {number} x Scale factor x. + * @param {number} y Scale factor y. + * @return {!Transform} The scale transform. + */ +export function makeScale(target, x, y) { + return set(target, x, 0, 0, y, 0, 0); +} /** * Applies translation to the given transform. diff --git a/test/spec/ol/transform.test.js b/test/spec/ol/transform.test.js index 4cc8427fa2..4c7ea2df81 100644 --- a/test/spec/ol/transform.test.js +++ b/test/spec/ol/transform.test.js @@ -5,6 +5,7 @@ import { setFromArray, translate, scale, + makeScale, rotate, multiply, compose, @@ -69,6 +70,20 @@ describe('ol.transform', function() { }); }); + describe('makeScale()', function() { + it('creates a scale transform', function() { + const target = create(); + makeScale(target, 2, 3); + expect(target).to.eql([2, 0, 0, 3, 0, 0]); + }); + + it('returns the target', function() { + const target = create(); + const transform = makeScale(target, 2, 3); + expect(transform).to.be(target); + }); + }); + describe('rotate()', function() { it('applies rotation to a transform', function() { const transform = create();