diff --git a/src/ol/dom.js b/src/ol/dom.js index f55e9655c8..e77d5d5415 100644 --- a/src/ol/dom.js +++ b/src/ol/dom.js @@ -123,54 +123,6 @@ ol.dom.setTransform = function(element, value) { }; -/** - * @param {!Element} element Element. - * @param {ol.Transform} transform Matrix. - * @param {number=} opt_precision Precision. - */ -ol.dom.transformElement2D = function(element, transform, opt_precision) { - // using matrix() causes gaps in Chrome and Firefox on Mac OS X, so prefer - // matrix3d() - var i; - if (ol.dom.canUseCssTransform3D()) { - var value3D; - var transform3D = ol.vec.Mat4.fromTransform(ol.dom.tmpMat4_, transform); - if (opt_precision !== undefined) { - /** @type {Array.} */ - var strings3D = new Array(16); - for (i = 0; i < 16; ++i) { - strings3D[i] = transform3D[i].toFixed(opt_precision); - } - value3D = strings3D.join(','); - } else { - value3D = transform3D.join(','); - } - ol.dom.setTransform(element, 'matrix3d(' + value3D + ')'); - } else if (ol.dom.canUseCssTransform()) { - /** @type {string} */ - var value2D; - if (opt_precision !== undefined) { - /** @type {Array.} */ - var strings2D = new Array(6); - for (i = 0; i < 6; ++i) { - strings2D[i] = transform[i].toFixed(opt_precision); - } - value2D = strings2D.join(','); - } else { - value2D = transform.join(','); - } - ol.dom.setTransform(element, 'matrix(' + value2D + ')'); - } else { - element.style.left = Math.round(transform[4]) + 'px'; - element.style.top = Math.round(transform[5]) + 'px'; - - // TODO: Add scaling here. This isn't quite as simple as multiplying - // width/height, because that only changes the container size, not the - // content size. - } -}; - - /** * Get the current computed width for the given element including margin, * padding and border. diff --git a/test/spec/ol/dom/dom.test.js b/test/spec/ol/dom/dom.test.js index cb3f70e605..ec8667eefe 100644 --- a/test/spec/ol/dom/dom.test.js +++ b/test/spec/ol/dom/dom.test.js @@ -1,7 +1,6 @@ /*global Modernizr*/ goog.provide('ol.test.dom'); -goog.require('ol.transform'); goog.require('ol.dom'); /*! modernizr 3.3.1 (Custom Build) | MIT @@ -139,120 +138,6 @@ describe('ol.dom', function() { }); - describe('ol.dom.transformElement2D', function() { - var element = null; - var transform = ol.transform.create(); - var transformFloat = ol.transform.create(); - transformFloat[0] = 0.12345; - beforeEach(function() { - element = document.createElement('div'); - }); - afterEach(function() { - element = null; - }); - - it('first prefers 3D transforms if available', function() { - // save original value - var originalCanUse3D = ol.dom.canUseCssTransform3D; - // mock up - ol.dom.canUseCssTransform3D = function() { - return true; - }; - - // test - ol.dom.transformElement2D(element, transform); - expect(element.style.transform).to.match(/matrix3d\(/); - expect(element.style.left).to.not.be('0px'); - expect(element.style.top).to.not.be('0px'); - - // revert mock-up - ol.dom.canUseCssTransform3D = originalCanUse3D; - }); - - it('allows to configure precision for 3D transforms', function() { - // save original value - var originalCanUse3D = ol.dom.canUseCssTransform3D; - // mock up - ol.dom.canUseCssTransform3D = function() { - return true; - }; - - // test - ol.dom.transformElement2D(element, transformFloat, 2); - expect(element.style.transform).to.match(/matrix3d\(0\.12/); - - // revert mock-up - ol.dom.canUseCssTransform3D = originalCanUse3D; - }); - - it('second prefers 2D transforms if available', function() { - // save original values - var originalCanUse3D = ol.dom.canUseCssTransform3D; - var originalCanUse2D = ol.dom.canUseCssTransform; - // mock up - ol.dom.canUseCssTransform3D = function() { - return false; - }; - ol.dom.canUseCssTransform = function() { - return true; - }; - - // test - ol.dom.transformElement2D(element, transform); - expect(element.style.transform).to.match(/matrix\(/); - expect(element.style.left).to.not.be('0px'); - expect(element.style.top).to.not.be('0px'); - - // revert mock-up - ol.dom.canUseCssTransform3D = originalCanUse3D; - ol.dom.canUseCssTransform = originalCanUse2D; - }); - - it('allows to configure precision for 2D transforms', function() { - // save original values - var originalCanUse3D = ol.dom.canUseCssTransform3D; - var originalCanUse2D = ol.dom.canUseCssTransform; - // mock up - ol.dom.canUseCssTransform3D = function() { - return false; - }; - ol.dom.canUseCssTransform = function() { - return true; - }; - - // test - ol.dom.transformElement2D(element, transformFloat, 2); - expect(element.style.transform).to.match(/matrix\(0\.12/); - - // revert mock-up - ol.dom.canUseCssTransform3D = originalCanUse3D; - ol.dom.canUseCssTransform = originalCanUse2D; - }); - - it('uses "left" and "top" otherwise', function() { - // save original values - var originalCanUse3D = ol.dom.canUseCssTransform3D; - var originalCanUse2D = ol.dom.canUseCssTransform; - // mock up - ol.dom.canUseCssTransform3D = function() { - return false; - }; - ol.dom.canUseCssTransform = function() { - return false; - }; - - // test - ol.dom.transformElement2D(element, transform); - expect(element.style.left).to.be('0px'); - expect(element.style.top).to.be('0px'); - - // revert mock-up - ol.dom.canUseCssTransform3D = originalCanUse3D; - ol.dom.canUseCssTransform = originalCanUse2D; - }); - - }); - describe('ol.dom.outerWidth', function() { var element = null; beforeEach(function() {