diff --git a/src/ol/PluggableMap.js b/src/ol/PluggableMap.js index 689c8d0dd5..17394eec2b 100644 --- a/src/ol/PluggableMap.js +++ b/src/ol/PluggableMap.js @@ -28,7 +28,7 @@ import {getMapRendererPlugins} from './plugins.js'; import RendererType from './renderer/Type.js'; import {hasArea} from './size.js'; import PriorityQueue from './structs/PriorityQueue.js'; -import _ol_transform_ from './transform.js'; +import {create as createTransform, apply as applyTransform} from './transform.js'; /** @@ -164,13 +164,13 @@ const PluggableMap = function(options) { * @private * @type {ol.Transform} */ - this.coordinateToPixelTransform_ = _ol_transform_.create(); + this.coordinateToPixelTransform_ = createTransform(); /** * @private * @type {ol.Transform} */ - this.pixelToCoordinateTransform_ = _ol_transform_.create(); + this.pixelToCoordinateTransform_ = createTransform(); /** * @private @@ -707,7 +707,7 @@ PluggableMap.prototype.getCoordinateFromPixel = function(pixel) { if (!frameState) { return null; } else { - return _ol_transform_.apply(frameState.pixelToCoordinateTransform, pixel.slice()); + return applyTransform(frameState.pixelToCoordinateTransform, pixel.slice()); } }; @@ -795,7 +795,7 @@ PluggableMap.prototype.getPixelFromCoordinate = function(coordinate) { if (!frameState) { return null; } else { - return _ol_transform_.apply(frameState.coordinateToPixelTransform, + return applyTransform(frameState.coordinateToPixelTransform, coordinate.slice(0, 2)); } }; diff --git a/src/ol/geom/Geometry.js b/src/ol/geom/Geometry.js index ac37cda3f6..7dcec4dcd4 100644 --- a/src/ol/geom/Geometry.js +++ b/src/ol/geom/Geometry.js @@ -8,7 +8,7 @@ import {FALSE} from '../functions.js'; import {transform2D} from '../geom/flat/transform.js'; import {get as getProjection, getTransform} from '../proj.js'; import Units from '../proj/Units.js'; -import _ol_transform_ from '../transform.js'; +import {create as createTransform, compose as composeTransform} from '../transform.js'; /** * @classdesc @@ -62,7 +62,7 @@ const Geometry = function() { * @private * @type {ol.Transform} */ - this.tmpTransform_ = _ol_transform_.create(); + this.tmpTransform_ = createTransform(); }; @@ -261,7 +261,7 @@ Geometry.prototype.transform = function(source, destination) { const pixelExtent = source.getExtent(); const projectedExtent = source.getWorldExtent(); const scale = getHeight(projectedExtent) / getHeight(pixelExtent); - _ol_transform_.compose(tmpTransform, + composeTransform(tmpTransform, projectedExtent[0], projectedExtent[3], scale, -scale, 0, 0, 0); diff --git a/src/ol/render.js b/src/ol/render.js index 4e07812871..3445606d26 100644 --- a/src/ol/render.js +++ b/src/ol/render.js @@ -2,7 +2,7 @@ * @module ol/render */ import {DEVICE_PIXEL_RATIO} from './has.js'; -import _ol_transform_ from './transform.js'; +import {create as createTransform, scale as scaleTransform} from './transform.js'; import CanvasImmediateRenderer from './render/canvas/Immediate.js'; @@ -38,6 +38,6 @@ export function toContext(context, opt_options) { canvas.style.height = size[1] + 'px'; } const extent = [0, 0, canvas.width, canvas.height]; - const transform = _ol_transform_.scale(_ol_transform_.create(), pixelRatio, pixelRatio); + const transform = scaleTransform(createTransform(), pixelRatio, pixelRatio); return new CanvasImmediateRenderer(context, pixelRatio, extent, transform, 0); } diff --git a/src/ol/render/Feature.js b/src/ol/render/Feature.js index 1d8cad934a..765ccd84eb 100644 --- a/src/ol/render/Feature.js +++ b/src/ol/render/Feature.js @@ -9,7 +9,7 @@ import {linearRingss as linearRingssCenter} from '../geom/flat/center.js'; import {getInteriorPointOfArray, getInteriorPointsOfMultiArray} from '../geom/flat/interiorpoint.js'; import {interpolatePoint} from '../geom/flat/interpolate.js'; import {transform2D} from '../geom/flat/transform.js'; -import _ol_transform_ from '../transform.js'; +import {create as createTransform, compose as composeTransform} from '../transform.js'; /** * Lightweight, read-only, {@link ol.Feature} and {@link ol.geom.Geometry} like @@ -78,7 +78,7 @@ const RenderFeature = function(type, flatCoordinates, ends, properties, id) { * @private * @type {ol.Transform} */ - this.tmpTransform_ = _ol_transform_.create(); + this.tmpTransform_ = createTransform(); }; @@ -268,7 +268,7 @@ RenderFeature.prototype.transform = function(source, destination) { const projectedExtent = source.getWorldExtent(); const scale = getHeight(projectedExtent) / getHeight(pixelExtent); const transform = this.tmpTransform_; - _ol_transform_.compose(transform, + composeTransform(transform, projectedExtent[0], projectedExtent[3], scale, -scale, 0, 0, 0); diff --git a/src/ol/render/canvas.js b/src/ol/render/canvas.js index 8553bb3744..66f2323e1a 100644 --- a/src/ol/render/canvas.js +++ b/src/ol/render/canvas.js @@ -5,7 +5,7 @@ import {getFontFamilies} from '../css.js'; import {createCanvasContext2D} from '../dom.js'; import {clear} from '../obj.js'; import LRUCache from '../structs/LRUCache.js'; -import _ol_transform_ from '../transform.js'; +import {create as createTransform} from '../transform.js'; /** @@ -257,7 +257,7 @@ export function rotateAtOffset(context, rotation, offsetX, offsetY) { } -export const resetTransform = _ol_transform_.create(); +export const resetTransform = createTransform(); /** diff --git a/src/ol/render/canvas/Immediate.js b/src/ol/render/canvas/Immediate.js index 1fce058810..b31eb31e54 100644 --- a/src/ol/render/canvas/Immediate.js +++ b/src/ol/render/canvas/Immediate.js @@ -15,7 +15,7 @@ import {transform2D} from '../../geom/flat/transform.js'; import {CANVAS_LINE_DASH} from '../../has.js'; import VectorContext from '../VectorContext.js'; import {defaultTextAlign, defaultFillStyle, defaultLineCap, defaultLineDash, defaultLineDashOffset, defaultLineJoin, defaultLineWidth, defaultMiterLimit, defaultStrokeStyle, defaultTextBaseline, defaultFont} from '../canvas.js'; -import _ol_transform_ from '../../transform.js'; +import {create as createTransform, compose as composeTransform} from '../../transform.js'; /** * @classdesc @@ -234,7 +234,7 @@ const CanvasImmediateRenderer = function(context, pixelRatio, extent, transform, * @private * @type {ol.Transform} */ - this.tmpLocalTransform_ = _ol_transform_.create(); + this.tmpLocalTransform_ = createTransform(); }; @@ -275,7 +275,7 @@ CanvasImmediateRenderer.prototype.drawImages_ = function(flatCoordinates, offset if (rotation !== 0 || this.imageScale_ != 1) { const centerX = x + this.imageAnchorX_; const centerY = y + this.imageAnchorY_; - _ol_transform_.compose(localTransform, + composeTransform(localTransform, centerX, centerY, this.imageScale_, this.imageScale_, rotation, @@ -325,7 +325,7 @@ CanvasImmediateRenderer.prototype.drawText_ = function(flatCoordinates, offset, const x = pixelCoordinates[offset] + this.textOffsetX_; const y = pixelCoordinates[offset + 1] + this.textOffsetY_; if (rotation !== 0 || this.textScale_ != 1) { - const localTransform = _ol_transform_.compose(this.tmpLocalTransform_, + const localTransform = composeTransform(this.tmpLocalTransform_, x, y, this.textScale_, this.textScale_, rotation, diff --git a/src/ol/render/canvas/Replay.js b/src/ol/render/canvas/Replay.js index b96545dcaa..7a7a5a205a 100644 --- a/src/ol/render/canvas/Replay.js +++ b/src/ol/render/canvas/Replay.js @@ -18,7 +18,12 @@ import VectorContext from '../VectorContext.js'; import {drawImage, resetTransform, defaultPadding, defaultFillStyle, defaultStrokeStyle, defaultMiterLimit, defaultLineWidth, defaultLineJoin, defaultLineDashOffset, defaultLineDash, defaultLineCap} from '../canvas.js'; import CanvasInstruction from '../canvas/Instruction.js'; import _ol_render_replay_ from '../replay.js'; -import _ol_transform_ from '../../transform.js'; +import { + create as createTransform, + compose as composeTransform, + apply as applyTransform, + setFromArray as transformSetFromArray +} from '../../transform.js'; /** * @constructor @@ -129,7 +134,7 @@ const CanvasReplay = function(tolerance, maxExtent, resolution, pixelRatio, over * @private * @type {!ol.Transform} */ - this.renderedTransform_ = _ol_transform_.create(); + this.renderedTransform_ = createTransform(); /** * @protected @@ -159,13 +164,13 @@ const CanvasReplay = function(tolerance, maxExtent, resolution, pixelRatio, over * @private * @type {!ol.Transform} */ - this.tmpLocalTransform_ = _ol_transform_.create(); + this.tmpLocalTransform_ = createTransform(); /** * @private * @type {!ol.Transform} */ - this.resetTransform = _ol_transform_.create(); + this.resetTransform = createTransform(); }; inherits(CanvasReplay, VectorContext); @@ -256,14 +261,14 @@ CanvasReplay.prototype.replayImage_ = function(context, x, y, image, if (rotation !== 0) { const centerX = x + anchorX; const centerY = y + anchorY; - transform = _ol_transform_.compose(localTransform, + transform = composeTransform(localTransform, centerX, centerY, 1, 1, rotation, -centerX, -centerY); createOrUpdateEmpty(box); - extendCoordinate(box, _ol_transform_.apply(localTransform, p1)); - extendCoordinate(box, _ol_transform_.apply(localTransform, p2)); - extendCoordinate(box, _ol_transform_.apply(localTransform, p3)); - extendCoordinate(box, _ol_transform_.apply(localTransform, p4)); + extendCoordinate(box, applyTransform(localTransform, p1)); + extendCoordinate(box, applyTransform(localTransform, p2)); + extendCoordinate(box, applyTransform(localTransform, p3)); + extendCoordinate(box, applyTransform(localTransform, p4)); } else { createOrUpdate(boxX, boxY, boxX + boxW, boxY + boxH, box); } @@ -457,7 +462,7 @@ CanvasReplay.prototype.beginGeometry = function(geometry, feature) { */ CanvasReplay.prototype.fill_ = function(context) { if (this.fillOrigin_) { - const origin = _ol_transform_.apply(this.renderedTransform_, this.fillOrigin_.slice()); + const origin = applyTransform(this.renderedTransform_, this.fillOrigin_.slice()); context.translate(origin[0], origin[1]); context.rotate(this.viewRotation_); } @@ -551,7 +556,7 @@ CanvasReplay.prototype.replay_ = function( pixelCoordinates = transform2D( this.coordinates, 0, this.coordinates.length, 2, transform, this.pixelCoordinates_); - _ol_transform_.setFromArray(this.renderedTransform_, transform); + transformSetFromArray(this.renderedTransform_, transform); } const skipFeatures = !isEmpty(skippedFeaturesHash); let i = 0; // instruction index diff --git a/src/ol/render/canvas/ReplayGroup.js b/src/ol/render/canvas/ReplayGroup.js index 4a3c2da437..436349b897 100644 --- a/src/ol/render/canvas/ReplayGroup.js +++ b/src/ol/render/canvas/ReplayGroup.js @@ -15,7 +15,7 @@ import CanvasLineStringReplay from '../canvas/LineStringReplay.js'; import CanvasPolygonReplay from '../canvas/PolygonReplay.js'; import CanvasTextReplay from '../canvas/TextReplay.js'; import _ol_render_replay_ from '../replay.js'; -import _ol_transform_ from '../../transform.js'; +import {create as createTransform, compose as composeTransform} from '../../transform.js'; /** @@ -115,7 +115,7 @@ const CanvasReplayGroup = function( * @private * @type {ol.Transform} */ - this.hitDetectionTransform_ = _ol_transform_.create(); + this.hitDetectionTransform_ = createTransform(); }; inherits(CanvasReplayGroup, ReplayGroup); @@ -301,7 +301,7 @@ CanvasReplayGroup.prototype.forEachFeatureAtCoordinate = function( hitTolerance = Math.round(hitTolerance); const contextSize = hitTolerance * 2 + 1; - const transform = _ol_transform_.compose(this.hitDetectionTransform_, + const transform = composeTransform(this.hitDetectionTransform_, hitTolerance + 0.5, hitTolerance + 0.5, 1 / resolution, -1 / resolution, -rotation, diff --git a/src/ol/render/webgl/Replay.js b/src/ol/render/webgl/Replay.js index 9163dc0f33..6b0961415f 100644 --- a/src/ol/render/webgl/Replay.js +++ b/src/ol/render/webgl/Replay.js @@ -4,7 +4,13 @@ import {inherits} from '../../index.js'; import {getCenter} from '../../extent.js'; import VectorContext from '../VectorContext.js'; -import _ol_transform_ from '../../transform.js'; +import { + create as createTransform, + reset as resetTransform, + rotate as rotateTransform, + scale as scaleTransform, + translate as translateTransform +} from '../../transform.js'; import {create, fromTransform} from '../../vec/mat4.js'; import _ol_webgl_ from '../../webgl.js'; @@ -46,19 +52,19 @@ const WebGLReplay = function(tolerance, maxExtent) { * @private * @type {ol.Transform} */ - this.projectionMatrix_ = _ol_transform_.create(); + this.projectionMatrix_ = createTransform(); /** * @private * @type {ol.Transform} */ - this.offsetRotateMatrix_ = _ol_transform_.create(); + this.offsetRotateMatrix_ = createTransform(); /** * @private * @type {ol.Transform} */ - this.offsetScaleMatrix_ = _ol_transform_.create(); + this.offsetScaleMatrix_ = createTransform(); /** * @private @@ -294,17 +300,17 @@ WebGLReplay.prototype.replay = function(context, const locations = this.setUpProgram(gl, context, size, pixelRatio); // set the "uniform" values - const projectionMatrix = _ol_transform_.reset(this.projectionMatrix_); - _ol_transform_.scale(projectionMatrix, 2 / (resolution * size[0]), 2 / (resolution * size[1])); - _ol_transform_.rotate(projectionMatrix, -rotation); - _ol_transform_.translate(projectionMatrix, -(center[0] - this.origin[0]), -(center[1] - this.origin[1])); + const projectionMatrix = resetTransform(this.projectionMatrix_); + scaleTransform(projectionMatrix, 2 / (resolution * size[0]), 2 / (resolution * size[1])); + rotateTransform(projectionMatrix, -rotation); + translateTransform(projectionMatrix, -(center[0] - this.origin[0]), -(center[1] - this.origin[1])); - const offsetScaleMatrix = _ol_transform_.reset(this.offsetScaleMatrix_); - _ol_transform_.scale(offsetScaleMatrix, 2 / size[0], 2 / size[1]); + const offsetScaleMatrix = resetTransform(this.offsetScaleMatrix_); + scaleTransform(offsetScaleMatrix, 2 / size[0], 2 / size[1]); - const offsetRotateMatrix = _ol_transform_.reset(this.offsetRotateMatrix_); + const offsetRotateMatrix = resetTransform(this.offsetRotateMatrix_); if (rotation !== 0) { - _ol_transform_.rotate(offsetRotateMatrix, -rotation); + rotateTransform(offsetRotateMatrix, -rotation); } gl.uniformMatrix4fv(locations.u_projectionMatrix, false, diff --git a/src/ol/renderer/Map.js b/src/ol/renderer/Map.js index b35fd3d667..e4aaf05695 100644 --- a/src/ol/renderer/Map.js +++ b/src/ol/renderer/Map.js @@ -10,7 +10,7 @@ import {TRUE} from '../functions.js'; import {visibleAtResolution} from '../layer/Layer.js'; import {getLayerRendererPlugins} from '../plugins.js'; import {iconImageCache} from '../style.js'; -import _ol_transform_ from '../transform.js'; +import {compose as composeTransform, invert as invertTransform, setFromArray as transformSetFromArray} from '../transform.js'; /** * @constructor @@ -56,14 +56,14 @@ MapRenderer.prototype.calculateMatrices2D = function(frameState) { const coordinateToPixelTransform = frameState.coordinateToPixelTransform; const pixelToCoordinateTransform = frameState.pixelToCoordinateTransform; - _ol_transform_.compose(coordinateToPixelTransform, + composeTransform(coordinateToPixelTransform, frameState.size[0] / 2, frameState.size[1] / 2, 1 / viewState.resolution, -1 / viewState.resolution, -viewState.rotation, -viewState.center[0], -viewState.center[1]); - _ol_transform_.invert( - _ol_transform_.setFromArray(pixelToCoordinateTransform, coordinateToPixelTransform)); + invertTransform( + transformSetFromArray(pixelToCoordinateTransform, coordinateToPixelTransform)); }; diff --git a/src/ol/renderer/canvas/ImageLayer.js b/src/ol/renderer/canvas/ImageLayer.js index 8d6aea62a3..9549626b86 100644 --- a/src/ol/renderer/canvas/ImageLayer.js +++ b/src/ol/renderer/canvas/ImageLayer.js @@ -13,7 +13,7 @@ import {assign} from '../../obj.js'; import {getLayerRendererPlugins} from '../../plugins.js'; import RendererType from '../Type.js'; import IntermediateCanvasRenderer from '../canvas/IntermediateCanvas.js'; -import _ol_transform_ from '../../transform.js'; +import {create as createTransform, compose as composeTransform} from '../../transform.js'; /** * @constructor @@ -35,7 +35,7 @@ const CanvasImageLayerRenderer = function(imageLayer) { * @private * @type {ol.Transform} */ - this.imageTransform_ = _ol_transform_.create(); + this.imageTransform_ = createTransform(); /** * @type {!Array.} @@ -175,13 +175,13 @@ CanvasImageLayerRenderer.prototype.prepareFrame = function(frameState, layerStat const imagePixelRatio = image.getPixelRatio(); const scale = pixelRatio * imageResolution / (viewResolution * imagePixelRatio); - const transform = _ol_transform_.compose(this.imageTransform_, + const transform = composeTransform(this.imageTransform_, pixelRatio * size[0] / 2, pixelRatio * size[1] / 2, scale, scale, 0, imagePixelRatio * (imageExtent[0] - viewCenter[0]) / imageResolution, imagePixelRatio * (viewCenter[1] - imageExtent[3]) / imageResolution); - _ol_transform_.compose(this.coordinateToCanvasPixelTransform, + composeTransform(this.coordinateToCanvasPixelTransform, pixelRatio * size[0] / 2 - transform[4], pixelRatio * size[1] / 2 - transform[5], pixelRatio / viewResolution, -pixelRatio / viewResolution, 0, diff --git a/src/ol/renderer/canvas/IntermediateCanvas.js b/src/ol/renderer/canvas/IntermediateCanvas.js index e8d6dc4568..f2ff25a5a4 100644 --- a/src/ol/renderer/canvas/IntermediateCanvas.js +++ b/src/ol/renderer/canvas/IntermediateCanvas.js @@ -6,7 +6,7 @@ import {scale as scaleCoordinate} from '../../coordinate.js'; import {createCanvasContext2D} from '../../dom.js'; import {containsExtent, intersects} from '../../extent.js'; import CanvasLayerRenderer from '../canvas/Layer.js'; -import _ol_transform_ from '../../transform.js'; +import {create as createTransform, apply as applyTransform} from '../../transform.js'; /** * @constructor @@ -22,7 +22,7 @@ const IntermediateCanvasRenderer = function(layer) { * @protected * @type {ol.Transform} */ - this.coordinateToCanvasPixelTransform = _ol_transform_.create(); + this.coordinateToCanvasPixelTransform = createTransform(); /** * @private @@ -128,7 +128,7 @@ IntermediateCanvasRenderer.prototype.forEachLayerAtCoordinate = function(coordin // so that for example also transparent polygons are detected return CanvasLayerRenderer.prototype.forEachLayerAtCoordinate.apply(this, arguments); } else { - const pixel = _ol_transform_.apply(this.coordinateToCanvasPixelTransform, coordinate.slice()); + const pixel = applyTransform(this.coordinateToCanvasPixelTransform, coordinate.slice()); scaleCoordinate(pixel, frameState.viewState.resolution / this.renderedResolution); if (!this.hitCanvasContext_) { diff --git a/src/ol/renderer/canvas/Layer.js b/src/ol/renderer/canvas/Layer.js index 44558c5dd7..aa400f1ee1 100644 --- a/src/ol/renderer/canvas/Layer.js +++ b/src/ol/renderer/canvas/Layer.js @@ -9,7 +9,7 @@ import RenderEventType from '../../render/EventType.js'; import {rotateAtOffset} from '../../render/canvas.js'; import CanvasImmediateRenderer from '../../render/canvas/Immediate.js'; import LayerRenderer from '../Layer.js'; -import _ol_transform_ from '../../transform.js'; +import {create as createTransform, apply as applyTransform, compose as composeTransform} from '../../transform.js'; /** * @constructor @@ -31,7 +31,7 @@ const CanvasLayerRenderer = function(layer) { * @private * @type {ol.Transform} */ - this.transform_ = _ol_transform_.create(); + this.transform_ = createTransform(); }; @@ -54,10 +54,10 @@ CanvasLayerRenderer.prototype.clip = function(context, frameState, extent) { const bottomRight = getBottomRight(/** @type {ol.Extent} */ (extent)); const bottomLeft = getBottomLeft(/** @type {ol.Extent} */ (extent)); - _ol_transform_.apply(frameState.coordinateToPixelTransform, topLeft); - _ol_transform_.apply(frameState.coordinateToPixelTransform, topRight); - _ol_transform_.apply(frameState.coordinateToPixelTransform, bottomRight); - _ol_transform_.apply(frameState.coordinateToPixelTransform, bottomLeft); + applyTransform(frameState.coordinateToPixelTransform, topLeft); + applyTransform(frameState.coordinateToPixelTransform, topRight); + applyTransform(frameState.coordinateToPixelTransform, bottomRight); + applyTransform(frameState.coordinateToPixelTransform, bottomLeft); context.save(); rotateAtOffset(context, -rotation, width / 2, height / 2); @@ -168,7 +168,7 @@ CanvasLayerRenderer.prototype.getTransform = function(frameState, offsetX) { const angle = -viewState.rotation; const dx2 = -viewState.center[0] + offsetX; const dy2 = -viewState.center[1]; - return _ol_transform_.compose(this.transform_, dx1, dy1, sx, sy, angle, dx2, dy2); + return composeTransform(this.transform_, dx1, dy1, sx, sy, angle, dx2, dy2); }; diff --git a/src/ol/renderer/canvas/Map.js b/src/ol/renderer/canvas/Map.js index c58eb92388..b76abb83a3 100644 --- a/src/ol/renderer/canvas/Map.js +++ b/src/ol/renderer/canvas/Map.js @@ -3,7 +3,7 @@ */ // FIXME offset panning -import _ol_transform_ from '../../transform.js'; +import {create as createTransform, apply as applyTransform, compose as composeTransform} from '../../transform.js'; import {inherits} from '../../index.js'; import {stableSort} from '../../array.js'; import {CLASS_UNSELECTABLE} from '../../css.js'; @@ -56,7 +56,7 @@ const CanvasMapRenderer = function(container, map) { * @private * @type {ol.Transform} */ - this.transform_ = _ol_transform_.create(); + this.transform_ = createTransform(); }; @@ -123,7 +123,7 @@ CanvasMapRenderer.prototype.getTransform = function(frameState) { const angle = -viewState.rotation; const dx2 = -viewState.center[0]; const dy2 = -viewState.center[1]; - return _ol_transform_.compose(this.transform_, dx1, dy1, sx, sy, angle, dx2, dy2); + return composeTransform(this.transform_, dx1, dy1, sx, sy, angle, dx2, dy2); }; @@ -216,7 +216,7 @@ CanvasMapRenderer.prototype.forEachLayerAtPixel = function(pixel, frameState, ca const layerStates = frameState.layerStatesArray; const numLayers = layerStates.length; - const coordinate = _ol_transform_.apply( + const coordinate = applyTransform( frameState.pixelToCoordinateTransform, pixel.slice()); let i; diff --git a/src/ol/renderer/canvas/TileLayer.js b/src/ol/renderer/canvas/TileLayer.js index d845ed31d1..5227dde96b 100644 --- a/src/ol/renderer/canvas/TileLayer.js +++ b/src/ol/renderer/canvas/TileLayer.js @@ -10,7 +10,7 @@ import {createCanvasContext2D} from '../../dom.js'; import {containsExtent, createEmpty, equals, getIntersection, isEmpty} from '../../extent.js'; import RendererType from '../Type.js'; import IntermediateCanvasRenderer from '../canvas/IntermediateCanvas.js'; -import _ol_transform_ from '../../transform.js'; +import {create as createTransform, compose as composeTransform} from '../../transform.js'; /** * @constructor @@ -68,7 +68,7 @@ const CanvasTileLayerRenderer = function(tileLayer) { * @private * @type {ol.Transform} */ - this.imageTransform_ = _ol_transform_.create(); + this.imageTransform_ = createTransform(); /** * @protected @@ -275,13 +275,13 @@ CanvasTileLayerRenderer.prototype.prepareFrame = function(frameState, layerState } const scale = this.renderedResolution / viewResolution; - const transform = _ol_transform_.compose(this.imageTransform_, + const transform = composeTransform(this.imageTransform_, pixelRatio * size[0] / 2, pixelRatio * size[1] / 2, scale, scale, 0, (this.renderedExtent_[0] - viewCenter[0]) / this.renderedResolution * pixelRatio, (viewCenter[1] - this.renderedExtent_[3]) / this.renderedResolution * pixelRatio); - _ol_transform_.compose(this.coordinateToCanvasPixelTransform, + composeTransform(this.coordinateToCanvasPixelTransform, pixelRatio * size[0] / 2 - transform[4], pixelRatio * size[1] / 2 - transform[5], pixelRatio / viewResolution, -pixelRatio / viewResolution, 0, diff --git a/src/ol/renderer/canvas/VectorTileLayer.js b/src/ol/renderer/canvas/VectorTileLayer.js index bd2b2f6788..eb7139a7cf 100644 --- a/src/ol/renderer/canvas/VectorTileLayer.js +++ b/src/ol/renderer/canvas/VectorTileLayer.js @@ -19,7 +19,13 @@ import _ol_render_replay_ from '../../render/replay.js'; import RendererType from '../Type.js'; import CanvasTileLayerRenderer from '../canvas/TileLayer.js'; import {getSquaredTolerance as getSquaredRenderTolerance, renderFeature} from '../vector.js'; -import _ol_transform_ from '../../transform.js'; +import { + create as createTransform, + compose as composeTransform, + reset as resetTransform, + scale as scaleTransform, + translate as translateTransform +} from '../../transform.js'; /** @@ -79,7 +85,7 @@ const CanvasVectorTileLayerRenderer = function(layer) { * @private * @type {ol.Transform} */ - this.tmpTransform_ = _ol_transform_.create(); + this.tmpTransform_ = createTransform(); // Use lower resolution for pure vector rendering. Closest resolution otherwise. this.zDirection = layer.getRenderMode() == VectorTileRenderType.VECTOR ? 1 : 0; @@ -327,7 +333,7 @@ CanvasVectorTileLayerRenderer.prototype.getReplayTransform_ = function(tile, fra const size = frameState.size; const offsetX = Math.round(pixelRatio * size[0] / 2); const offsetY = Math.round(pixelRatio * size[1] / 2); - return _ol_transform_.compose(this.tmpTransform_, + return composeTransform(this.tmpTransform_, offsetX, offsetY, tileResolution / renderResolution, tileResolution / renderResolution, viewState.rotation, @@ -502,9 +508,9 @@ CanvasVectorTileLayerRenderer.prototype.renderTileImage_ = function( continue; } const pixelScale = pixelRatio / resolution; - const transform = _ol_transform_.reset(this.tmpTransform_); - _ol_transform_.scale(transform, pixelScale, -pixelScale); - _ol_transform_.translate(transform, -tileExtent[0], -tileExtent[3]); + const transform = resetTransform(this.tmpTransform_); + scaleTransform(transform, pixelScale, -pixelScale); + translateTransform(transform, -tileExtent[0], -tileExtent[3]); const replayGroup = sourceTile.getReplayGroup(layer, tile.tileCoord.toString()); replayGroup.replay(context, transform, 0, {}, replays); } diff --git a/src/ol/renderer/webgl/ImageLayer.js b/src/ol/renderer/webgl/ImageLayer.js index ad7c40df41..0211f6092f 100644 --- a/src/ol/renderer/webgl/ImageLayer.js +++ b/src/ol/renderer/webgl/ImageLayer.js @@ -10,7 +10,16 @@ import {getIntersection, isEmpty} from '../../extent.js'; import {TRUE} from '../../functions.js'; import RendererType from '../Type.js'; import WebGLLayerRenderer from '../webgl/Layer.js'; -import _ol_transform_ from '../../transform.js'; +import { + create as createTransform, + rotate as rotateTransform, + translate as translateTransform, + scale as scaleTransform, + reset as resetTransform, + apply as applyTransform, + invert as invertTransform, + multiply as multiplyTransform +} from '../../transform.js'; import _ol_webgl_ from '../../webgl.js'; import {createTexture} from '../../webgl/Context.js'; @@ -183,9 +192,9 @@ WebGLImageLayerRenderer.prototype.prepareFrame = function(frameState, layerState // Translate and scale to flip the Y coord. const texCoordMatrix = this.texCoordMatrix; - _ol_transform_.reset(texCoordMatrix); - _ol_transform_.scale(texCoordMatrix, 1, -1); - _ol_transform_.translate(texCoordMatrix, 0, -1); + resetTransform(texCoordMatrix); + scaleTransform(texCoordMatrix, 1, -1); + translateTransform(texCoordMatrix, 0, -1); this.image_ = image; this.texture = texture; @@ -212,18 +221,18 @@ WebGLImageLayerRenderer.prototype.updateProjectionMatrix_ = function(canvasWidth const canvasExtentHeight = canvasHeight * viewResolution; const projectionMatrix = this.projectionMatrix; - _ol_transform_.reset(projectionMatrix); - _ol_transform_.scale(projectionMatrix, + resetTransform(projectionMatrix); + scaleTransform(projectionMatrix, pixelRatio * 2 / canvasExtentWidth, pixelRatio * 2 / canvasExtentHeight); - _ol_transform_.rotate(projectionMatrix, -viewRotation); - _ol_transform_.translate(projectionMatrix, + rotateTransform(projectionMatrix, -viewRotation); + translateTransform(projectionMatrix, imageExtent[0] - viewCenter[0], imageExtent[1] - viewCenter[1]); - _ol_transform_.scale(projectionMatrix, + scaleTransform(projectionMatrix, (imageExtent[2] - imageExtent[0]) / 2, (imageExtent[3] - imageExtent[1]) / 2); - _ol_transform_.translate(projectionMatrix, 1, 1); + translateTransform(projectionMatrix, 1, 1); }; @@ -248,7 +257,7 @@ WebGLImageLayerRenderer.prototype.forEachLayerAtPixel = function(pixel, frameSta if (this.getLayer().getSource().forEachFeatureAtCoordinate !== nullFunction) { // for ImageCanvas sources use the original hit-detection logic, // so that for example also transparent polygons are detected - const coordinate = _ol_transform_.apply( + const coordinate = applyTransform( frameState.pixelToCoordinateTransform, pixel.slice()); const hasFeature = this.forEachFeatureAtCoordinate(coordinate, frameState, 0, TRUE, this); @@ -266,7 +275,7 @@ WebGLImageLayerRenderer.prototype.forEachLayerAtPixel = function(pixel, frameSta frameState.size, imageSize); } - const pixelOnFrameBuffer = _ol_transform_.apply( + const pixelOnFrameBuffer = applyTransform( this.hitTransformationMatrix_, pixel.slice()); if (pixelOnFrameBuffer[0] < 0 || pixelOnFrameBuffer[0] > imageSize[0] || @@ -304,25 +313,25 @@ WebGLImageLayerRenderer.prototype.forEachLayerAtPixel = function(pixel, frameSta WebGLImageLayerRenderer.prototype.getHitTransformationMatrix_ = function(mapSize, imageSize) { // the first matrix takes a map pixel, flips the y-axis and scales to // a range between -1 ... 1 - const mapCoordTransform = _ol_transform_.create(); - _ol_transform_.translate(mapCoordTransform, -1, -1); - _ol_transform_.scale(mapCoordTransform, 2 / mapSize[0], 2 / mapSize[1]); - _ol_transform_.translate(mapCoordTransform, 0, mapSize[1]); - _ol_transform_.scale(mapCoordTransform, 1, -1); + const mapCoordTransform = createTransform(); + translateTransform(mapCoordTransform, -1, -1); + scaleTransform(mapCoordTransform, 2 / mapSize[0], 2 / mapSize[1]); + translateTransform(mapCoordTransform, 0, mapSize[1]); + scaleTransform(mapCoordTransform, 1, -1); // the second matrix is the inverse of the projection matrix used in the // shader for drawing - const projectionMatrixInv = _ol_transform_.invert(this.projectionMatrix.slice()); + const projectionMatrixInv = invertTransform(this.projectionMatrix.slice()); // the third matrix scales to the image dimensions and flips the y-axis again - const transform = _ol_transform_.create(); - _ol_transform_.translate(transform, 0, imageSize[1]); - _ol_transform_.scale(transform, 1, -1); - _ol_transform_.scale(transform, imageSize[0] / 2, imageSize[1] / 2); - _ol_transform_.translate(transform, 1, 1); + const transform = createTransform(); + translateTransform(transform, 0, imageSize[1]); + scaleTransform(transform, 1, -1); + scaleTransform(transform, imageSize[0] / 2, imageSize[1] / 2); + translateTransform(transform, 1, 1); - _ol_transform_.multiply(transform, projectionMatrixInv); - _ol_transform_.multiply(transform, mapCoordTransform); + multiplyTransform(transform, projectionMatrixInv); + multiplyTransform(transform, mapCoordTransform); return transform; }; diff --git a/src/ol/renderer/webgl/Layer.js b/src/ol/renderer/webgl/Layer.js index 391716c135..f79980c35e 100644 --- a/src/ol/renderer/webgl/Layer.js +++ b/src/ol/renderer/webgl/Layer.js @@ -8,7 +8,7 @@ import WebGLImmediateRenderer from '../../render/webgl/Immediate.js'; import LayerRenderer from '../Layer.js'; import {fragment, vertex} from '../webgl/defaultmapshader.js'; import Locations from '../webgl/defaultmapshader/Locations.js'; -import _ol_transform_ from '../../transform.js'; +import {create as createTransform} from '../../transform.js'; import {create, fromTransform} from '../../vec/mat4.js'; import _ol_webgl_ from '../../webgl.js'; import WebGLBuffer from '../../webgl/Buffer.js'; @@ -64,13 +64,13 @@ const WebGLLayerRenderer = function(mapRenderer, layer) { * @protected * @type {ol.Transform} */ - this.texCoordMatrix = _ol_transform_.create(); + this.texCoordMatrix = createTransform(); /** * @protected * @type {ol.Transform} */ - this.projectionMatrix = _ol_transform_.create(); + this.projectionMatrix = createTransform(); /** * @type {Array.} diff --git a/src/ol/renderer/webgl/TileLayer.js b/src/ol/renderer/webgl/TileLayer.js index 362abab353..373ca0de7d 100644 --- a/src/ol/renderer/webgl/TileLayer.js +++ b/src/ol/renderer/webgl/TileLayer.js @@ -16,7 +16,13 @@ import WebGLLayerRenderer from '../webgl/Layer.js'; import {fragment, vertex} from '../webgl/tilelayershader.js'; import Locations from '../webgl/tilelayershader/Locations.js'; import {toSize} from '../../size.js'; -import _ol_transform_ from '../../transform.js'; +import { + reset as resetTransform, + rotate as rotateTransform, + scale as scaleTransform, + translate as translateTransform, + apply as applyTransform +} from '../../transform.js'; import _ol_webgl_ from '../../webgl.js'; import WebGLBuffer from '../../webgl/Buffer.js'; @@ -355,21 +361,21 @@ WebGLTileLayerRenderer.prototype.prepareFrame = function(frameState, layerState, this.scheduleExpireCache(frameState, tileSource); const texCoordMatrix = this.texCoordMatrix; - _ol_transform_.reset(texCoordMatrix); - _ol_transform_.translate(texCoordMatrix, + resetTransform(texCoordMatrix); + translateTransform(texCoordMatrix, (Math.round(center[0] / tileResolution) * tileResolution - framebufferExtent[0]) / (framebufferExtent[2] - framebufferExtent[0]), (Math.round(center[1] / tileResolution) * tileResolution - framebufferExtent[1]) / (framebufferExtent[3] - framebufferExtent[1])); if (viewState.rotation !== 0) { - _ol_transform_.rotate(texCoordMatrix, viewState.rotation); + rotateTransform(texCoordMatrix, viewState.rotation); } - _ol_transform_.scale(texCoordMatrix, + scaleTransform(texCoordMatrix, frameState.size[0] * viewState.resolution / (framebufferExtent[2] - framebufferExtent[0]), frameState.size[1] * viewState.resolution / (framebufferExtent[3] - framebufferExtent[1])); - _ol_transform_.translate(texCoordMatrix, -0.5, -0.5); + translateTransform(texCoordMatrix, -0.5, -0.5); return true; }; @@ -387,7 +393,7 @@ WebGLTileLayerRenderer.prototype.forEachLayerAtPixel = function(pixel, frameStat pixel[0] / frameState.size[0], (frameState.size[1] - pixel[1]) / frameState.size[1]]; - const pixelOnFrameBufferScaled = _ol_transform_.apply( + const pixelOnFrameBufferScaled = applyTransform( this.texCoordMatrix, pixelOnMapScaled.slice()); const pixelOnFrameBuffer = [ pixelOnFrameBufferScaled[0] * this.framebufferDimension, diff --git a/src/ol/renderer/webgl/VectorLayer.js b/src/ol/renderer/webgl/VectorLayer.js index f39c854035..fc32b07afd 100644 --- a/src/ol/renderer/webgl/VectorLayer.js +++ b/src/ol/renderer/webgl/VectorLayer.js @@ -9,7 +9,7 @@ import WebGLReplayGroup from '../../render/webgl/ReplayGroup.js'; import RendererType from '../Type.js'; import {defaultOrder as defaultRenderOrder, getTolerance as getRenderTolerance, getSquaredTolerance as getSquaredRenderTolerance, renderFeature} from '../vector.js'; import WebGLLayerRenderer from '../webgl/Layer.js'; -import _ol_transform_ from '../../transform.js'; +import {apply as applyTransform} from '../../transform.js'; /** * @constructor @@ -186,7 +186,7 @@ WebGLVectorLayerRenderer.prototype.hasFeatureAtCoordinate = function(coordinate, * @inheritDoc */ WebGLVectorLayerRenderer.prototype.forEachLayerAtPixel = function(pixel, frameState, callback, thisArg) { - const coordinate = _ol_transform_.apply( + const coordinate = applyTransform( frameState.pixelToCoordinateTransform, pixel.slice()); const hasFeature = this.hasFeatureAtCoordinate(coordinate, frameState); diff --git a/src/ol/source/Raster.js b/src/ol/source/Raster.js index c7440b691f..bc2543184d 100644 --- a/src/ol/source/Raster.js +++ b/src/ol/source/Raster.js @@ -19,7 +19,7 @@ import ImageSource from '../source/Image.js'; import RasterOperationType from '../source/RasterOperationType.js'; import SourceState from '../source/State.js'; import TileSource from '../source/Tile.js'; -import _ol_transform_ from '../transform.js'; +import {create as createTransform} from '../transform.js'; /** @@ -128,14 +128,14 @@ const RasterSource = function(options) { */ this.frameState_ = { animate: false, - coordinateToPixelTransform: _ol_transform_.create(), + coordinateToPixelTransform: createTransform(), extent: null, focus: null, index: 0, layerStates: layerStates, layerStatesArray: layerStatesArray, pixelRatio: 1, - pixelToCoordinateTransform: _ol_transform_.create(), + pixelToCoordinateTransform: createTransform(), postRenderFunctions: [], size: [0, 0], skippedFeatureUids: {}, diff --git a/src/ol/transform.js b/src/ol/transform.js index e8cda64521..968b1c4c10 100644 --- a/src/ol/transform.js +++ b/src/ol/transform.js @@ -2,7 +2,6 @@ * @module ol/transform */ import {assert} from './asserts.js'; -const _ol_transform_ = {}; /** @@ -22,16 +21,16 @@ const _ol_transform_ = {}; * @private * @type {ol.Transform} */ -_ol_transform_.tmp_ = new Array(6); +const tmp_ = new Array(6); /** * Create an identity transform. * @return {!ol.Transform} Identity transform. */ -_ol_transform_.create = function() { +export function create() { return [1, 0, 0, 1, 0, 0]; -}; +} /** @@ -39,9 +38,9 @@ _ol_transform_.create = function() { * @param {!ol.Transform} transform Transform. * @return {!ol.Transform} Transform. */ -_ol_transform_.reset = function(transform) { - return _ol_transform_.set(transform, 1, 0, 0, 1, 0, 0); -}; +export function reset(transform) { + return set(transform, 1, 0, 0, 1, 0, 0); +} /** @@ -51,7 +50,7 @@ _ol_transform_.reset = function(transform) { * @param {!ol.Transform} transform2 Transform parameters of matrix 2. * @return {!ol.Transform} transform1 multiplied with transform2. */ -_ol_transform_.multiply = function(transform1, transform2) { +export function multiply(transform1, transform2) { const a1 = transform1[0]; const b1 = transform1[1]; const c1 = transform1[2]; @@ -73,7 +72,7 @@ _ol_transform_.multiply = function(transform1, transform2) { transform1[5] = b1 * e2 + d1 * f2 + f1; return transform1; -}; +} /** * Set the transform components a-f on a given transform. @@ -86,7 +85,7 @@ _ol_transform_.multiply = function(transform1, transform2) { * @param {number} f The f component of the transform. * @return {!ol.Transform} Matrix with transform applied. */ -_ol_transform_.set = function(transform, a, b, c, d, e, f) { +export function set(transform, a, b, c, d, e, f) { transform[0] = a; transform[1] = b; transform[2] = c; @@ -94,7 +93,7 @@ _ol_transform_.set = function(transform, a, b, c, d, e, f) { transform[4] = e; transform[5] = f; return transform; -}; +} /** @@ -103,7 +102,7 @@ _ol_transform_.set = function(transform, a, b, c, d, e, f) { * @param {!ol.Transform} transform2 Matrix to set transform from. * @return {!ol.Transform} transform1 with transform from transform2 applied. */ -_ol_transform_.setFromArray = function(transform1, transform2) { +export function setFromArray(transform1, transform2) { transform1[0] = transform2[0]; transform1[1] = transform2[1]; transform1[2] = transform2[2]; @@ -111,7 +110,7 @@ _ol_transform_.setFromArray = function(transform1, transform2) { transform1[4] = transform2[4]; transform1[5] = transform2[5]; return transform1; -}; +} /** @@ -123,13 +122,13 @@ _ol_transform_.setFromArray = function(transform1, transform2) { * @return {ol.Coordinate|ol.Pixel} return coordinate so that operations can be * chained together. */ -_ol_transform_.apply = function(transform, coordinate) { +export function apply(transform, coordinate) { const x = coordinate[0]; const y = coordinate[1]; coordinate[0] = transform[0] * x + transform[2] * y + transform[4]; coordinate[1] = transform[1] * x + transform[3] * y + transform[5]; return coordinate; -}; +} /** @@ -138,12 +137,11 @@ _ol_transform_.apply = function(transform, coordinate) { * @param {number} angle Angle in radians. * @return {!ol.Transform} The rotated transform. */ -_ol_transform_.rotate = function(transform, angle) { +export function rotate(transform, angle) { const cos = Math.cos(angle); const sin = Math.sin(angle); - return _ol_transform_.multiply(transform, - _ol_transform_.set(_ol_transform_.tmp_, cos, sin, -sin, cos, 0, 0)); -}; + return multiply(transform, set(tmp_, cos, sin, -sin, cos, 0, 0)); +} /** @@ -153,10 +151,9 @@ _ol_transform_.rotate = function(transform, angle) { * @param {number} y Scale factor y. * @return {!ol.Transform} The scaled transform. */ -_ol_transform_.scale = function(transform, x, y) { - return _ol_transform_.multiply(transform, - _ol_transform_.set(_ol_transform_.tmp_, x, 0, 0, y, 0, 0)); -}; +export function scale(transform, x, y) { + return multiply(transform, set(tmp_, x, 0, 0, y, 0, 0)); +} /** @@ -166,10 +163,9 @@ _ol_transform_.scale = function(transform, x, y) { * @param {number} dy Translation y. * @return {!ol.Transform} The translated transform. */ -_ol_transform_.translate = function(transform, dx, dy) { - return _ol_transform_.multiply(transform, - _ol_transform_.set(_ol_transform_.tmp_, 1, 0, 0, 1, dx, dy)); -}; +export function translate(transform, dx, dy) { + return multiply(transform, set(tmp_, 1, 0, 0, 1, dx, dy)); +} /** @@ -185,7 +181,7 @@ _ol_transform_.translate = function(transform, dx, dy) { * @param {number} dy2 Final translation y. * @return {!ol.Transform} The composite transform. */ -_ol_transform_.compose = function(transform, dx1, dy1, sx, sy, angle, dx2, dy2) { +export function compose(transform, dx1, dy1, sx, sy, angle, dx2, dy2) { const sin = Math.sin(angle); const cos = Math.cos(angle); transform[0] = sx * cos; @@ -195,7 +191,7 @@ _ol_transform_.compose = function(transform, dx1, dy1, sx, sy, angle, dx2, dy2) transform[4] = dx2 * sx * cos - dy2 * sx * sin + dx1; transform[5] = dx2 * sy * sin + dy2 * sy * cos + dy1; return transform; -}; +} /** @@ -203,8 +199,8 @@ _ol_transform_.compose = function(transform, dx1, dy1, sx, sy, angle, dx2, dy2) * @param {!ol.Transform} transform Transform. * @return {!ol.Transform} Inverse of the transform. */ -_ol_transform_.invert = function(transform) { - const det = _ol_transform_.determinant(transform); +export function invert(transform) { + const det = determinant(transform); assert(det !== 0, 32); // Transformation matrix cannot be inverted const a = transform[0]; @@ -222,7 +218,7 @@ _ol_transform_.invert = function(transform) { transform[5] = -(a * f - b * e) / det; return transform; -}; +} /** @@ -230,7 +226,6 @@ _ol_transform_.invert = function(transform) { * @param {!ol.Transform} mat Matrix. * @return {number} Determinant. */ -_ol_transform_.determinant = function(mat) { +export function determinant(mat) { return mat[0] * mat[3] - mat[1] * mat[2]; -}; -export default _ol_transform_; +} diff --git a/test/spec/ol/render.test.js b/test/spec/ol/render.test.js index 1c1a55ddeb..8ab353c2e1 100644 --- a/test/spec/ol/render.test.js +++ b/test/spec/ol/render.test.js @@ -2,7 +2,7 @@ import {equals} from '../../../src/ol/array.js'; import {DEVICE_PIXEL_RATIO} from '../../../src/ol/has.js'; import {toContext} from '../../../src/ol/render.js'; import CanvasImmediateRenderer from '../../../src/ol/render/canvas/Immediate.js'; -import _ol_transform_ from '../../../src/ol/transform.js'; +import {scale as scaleTransform, create as createTransform} from '../../../src/ol/transform.js'; describe('ol.render', function() { @@ -27,7 +27,7 @@ describe('ol.render', function() { [0, 0, size[0] * pixelRatio, size[1] * pixelRatio]); expect(canvas.style.width).to.be(size[0] + 'px'); expect(canvas.style.height).to.be(size[1] + 'px'); - const transform = _ol_transform_.scale(_ol_transform_.create(), + const transform = scaleTransform(createTransform(), pixelRatio, pixelRatio); expect(equals(render.transform_, transform)).to.be.ok(); }); diff --git a/test/spec/ol/renderer/canvas/intermediatecanvas.test.js b/test/spec/ol/renderer/canvas/intermediatecanvas.test.js index 77b6a3b631..a4496cff34 100644 --- a/test/spec/ol/renderer/canvas/intermediatecanvas.test.js +++ b/test/spec/ol/renderer/canvas/intermediatecanvas.test.js @@ -1,4 +1,4 @@ -import _ol_transform_ from '../../../../../src/ol/transform.js'; +import {create as createTransform} from '../../../../../src/ol/transform.js'; import ImageLayer from '../../../../../src/ol/layer/Image.js'; import MapRenderer from '../../../../../src/ol/renderer/Map.js'; import IntermediateCanvasRenderer from '../../../../../src/ol/renderer/canvas/IntermediateCanvas.js'; @@ -27,11 +27,11 @@ describe('ol.renderer.canvas.IntermediateCanvas', function() { }, size: [10, 10], pixelRatio: 1, - coordinateToPixelTransform: _ol_transform_.create(), - pixelToCoordinateTransform: _ol_transform_.create() + coordinateToPixelTransform: createTransform(), + pixelToCoordinateTransform: createTransform() }; renderer.getImageTransform = function() { - return _ol_transform_.create(); + return createTransform(); }; MapRenderer.prototype.calculateMatrices2D(frameState); layerState = layer.getLayerState(); diff --git a/test/spec/ol/renderer/canvas/replay.test.js b/test/spec/ol/renderer/canvas/replay.test.js index e732121c3b..337a5fadc0 100644 --- a/test/spec/ol/renderer/canvas/replay.test.js +++ b/test/spec/ol/renderer/canvas/replay.test.js @@ -15,7 +15,7 @@ import {renderFeature} from '../../../../../src/ol/renderer/vector.js'; import Fill from '../../../../../src/ol/style/Fill.js'; import Stroke from '../../../../../src/ol/style/Stroke.js'; import Style from '../../../../../src/ol/style/Style.js'; -import _ol_transform_ from '../../../../../src/ol/transform.js'; +import {create as createTransform, scale as scaleTransform} from '../../../../../src/ol/transform.js'; describe('ol.render.canvas.ReplayGroup', function() { @@ -27,7 +27,7 @@ describe('ol.render.canvas.ReplayGroup', function() { let fill0, fill1, style1, style2; beforeEach(function() { - transform = _ol_transform_.create(); + transform = createTransform(); replay = new CanvasReplayGroup(1, [-180, -90, 180, 90], 1, 1, false); feature0 = new Feature(new Polygon( [[[-90, 0], [-45, 45], [0, 0], [1, 1], [0, -45], [-90, 0]]])); @@ -92,7 +92,7 @@ describe('ol.render.canvas.ReplayGroup', function() { replay.replay(context, transform, 0, {}); expect(lineToCount).to.be(4); lineToCount = 0; - _ol_transform_.scale(transform, 0.25, 0.25); + scaleTransform(transform, 0.25, 0.25); replay.replay(context, transform, 0, {}); expect(lineToCount).to.be(3); }); @@ -249,7 +249,7 @@ describe('ol.render.canvas.ReplayGroup', function() { renderFeature(replay, polygon, style, 1); renderFeature(replay, multipolygon, style, 1); renderFeature(replay, geometrycollection, style, 1); - _ol_transform_.scale(transform, 0.1, 0.1); + scaleTransform(transform, 0.1, 0.1); replay.replay(context, transform, 0, {}); expect(calls.length).to.be(9); expect(calls[0].geometry).to.be(point.getGeometry()); diff --git a/test/spec/ol/renderer/canvas/tilelayer.test.js b/test/spec/ol/renderer/canvas/tilelayer.test.js index 6fe530c08d..21ba13e2f0 100644 --- a/test/spec/ol/renderer/canvas/tilelayer.test.js +++ b/test/spec/ol/renderer/canvas/tilelayer.test.js @@ -6,7 +6,7 @@ import MapRenderer from '../../../../../src/ol/renderer/Map.js'; import CanvasTileLayerRenderer from '../../../../../src/ol/renderer/canvas/TileLayer.js'; import TileWMS from '../../../../../src/ol/source/TileWMS.js'; import XYZ from '../../../../../src/ol/source/XYZ.js'; -import _ol_transform_ from '../../../../../src/ol/transform.js'; +import {create as createTransform} from '../../../../../src/ol/transform.js'; describe('ol.renderer.canvas.TileLayer', function() { @@ -89,13 +89,13 @@ describe('ol.renderer.canvas.TileLayer', function() { extent: [0, 0, 20, 10], size: [20, 10], pixelRatio: 2, - coordinateToPixelTransform: _ol_transform_.create(), - pixelToCoordinateTransform: _ol_transform_.create(), + coordinateToPixelTransform: createTransform(), + pixelToCoordinateTransform: createTransform(), usedTiles: {}, wantedTiles: {} }; renderer.getImageTransform = function() { - return _ol_transform_.create(); + return createTransform(); }; MapRenderer.prototype.calculateMatrices2D(frameState); const layerState = layer.getLayerState(); diff --git a/test/spec/ol/renderer/webgl/imagelayer.test.js b/test/spec/ol/renderer/webgl/imagelayer.test.js index f741ad4191..ccfc693c64 100644 --- a/test/spec/ol/renderer/webgl/imagelayer.test.js +++ b/test/spec/ol/renderer/webgl/imagelayer.test.js @@ -1,4 +1,4 @@ -import _ol_transform_ from '../../../../../src/ol/transform.js'; +import {apply as applyTransform} from '../../../../../src/ol/transform.js'; import Map from '../../../../../src/ol/Map.js'; import ImageLayer from '../../../../../src/ol/layer/Image.js'; import ImageSource from '../../../../../src/ol/source/Image.js'; @@ -52,23 +52,23 @@ describe('ol.renderer.webgl.ImageLayer', function() { pixelRatio, viewCenter, viewResolution, viewRotation, imageExtent); const matrix = renderer.getProjectionMatrix(); - let output = _ol_transform_.apply(matrix, [-1, -1]); + let output = applyTransform(matrix, [-1, -1]); expect(output[0]).to.eql(-6); expect(output[1]).to.eql(-6); - output = _ol_transform_.apply(matrix, [1, -1]); + output = applyTransform(matrix, [1, -1]); expect(output[0]).to.eql(2); expect(output[1]).to.eql(-6); - output = _ol_transform_.apply(matrix, [-1, 1]); + output = applyTransform(matrix, [-1, 1]); expect(output[0]).to.eql(-6); expect(output[1]).to.eql(6); - output = _ol_transform_.apply(matrix, [1, 1]); + output = applyTransform(matrix, [1, 1]); expect(output[0]).to.eql(2); expect(output[1]).to.eql(6); - output = _ol_transform_.apply(matrix, [0, 0]); + output = applyTransform(matrix, [0, 0]); expect(output[0]).to.eql(-2); expect(output[1]).to.eql(0); }); diff --git a/test/spec/ol/transform.test.js b/test/spec/ol/transform.test.js index bd0f6b8aab..13b5d91846 100644 --- a/test/spec/ol/transform.test.js +++ b/test/spec/ol/transform.test.js @@ -1,4 +1,16 @@ -import _ol_transform_ from '../../../src/ol/transform.js'; +import { + create, + reset, + set, + setFromArray, + translate, + scale, + rotate, + multiply, + compose, + invert, + apply +} from '../../../src/ol/transform.js'; describe('ol.transform', function() { @@ -9,71 +21,71 @@ describe('ol.transform', function() { }); } - describe('ol.transform.create()', function() { + describe('create()', function() { it('creates an identity transform', function() { - expect(_ol_transform_.create()).to.eql([1, 0, 0, 1, 0, 0]); + expect(create()).to.eql([1, 0, 0, 1, 0, 0]); }); }); - describe('ol.transform.reset()', function() { + describe('reset()', function() { it('resets tansform to an identity transform', function() { const transform = [1, 2, 3, 4, 5, 6]; - expect(_ol_transform_.reset(transform)).to.eql([1, 0, 0, 1, 0, 0]); + expect(reset(transform)).to.eql([1, 0, 0, 1, 0, 0]); expect(transform).to.eql([1, 0, 0, 1, 0, 0]); }); }); - describe('ol.transform.set()', function() { + describe('set()', function() { it('sets the given values', function() { - const transform = _ol_transform_.create(); - expect(_ol_transform_.set(transform, 1, 2, 3, 4, 5, 6)).to.eql([1, 2, 3, 4, 5, 6]); + const transform = create(); + expect(set(transform, 1, 2, 3, 4, 5, 6)).to.eql([1, 2, 3, 4, 5, 6]); expect(transform).to.eql([1, 2, 3, 4, 5, 6]); }); }); - describe('ol.transform.setFromArray()', function() { + describe('setFromArray()', function() { it('sets values of 2nd transform on 1st transform', function() { - const transform1 = _ol_transform_.create(); + const transform1 = create(); const transform2 = [1, 2, 3, 4, 5, 6]; - expect(_ol_transform_.setFromArray(transform1, transform2)).to.eql(transform2); + expect(setFromArray(transform1, transform2)).to.eql(transform2); expect(transform1).to.eql(transform2); }); }); - describe('ol.transform.translate()', function() { + describe('translate()', function() { it('applies translation to a transform', function() { - const transform = _ol_transform_.create(); - expect(_ol_transform_.translate(transform, 3, 4)).to.eql([1, 0, 0, 1, 3, 4]); + const transform = create(); + expect(translate(transform, 3, 4)).to.eql([1, 0, 0, 1, 3, 4]); expect(transform).to.eql([1, 0, 0, 1, 3, 4]); }); }); - describe('ol.transform.scale()', function() { + describe('scale()', function() { it('applies scaling to a transform', function() { - const transform = _ol_transform_.create(); - expect(_ol_transform_.scale(transform, 3, 4)).to.eql([3, 0, 0, 4, 0, 0]); + const transform = create(); + expect(scale(transform, 3, 4)).to.eql([3, 0, 0, 4, 0, 0]); expect(transform).to.eql([3, 0, 0, 4, 0, 0]); }); }); - describe('ol.transform.rotate()', function() { + describe('rotate()', function() { it('applies rotation to a transform', function() { - const transform = _ol_transform_.create(); - assertRoughlyEqual(_ol_transform_.rotate(transform, Math.PI / 2), [0, 1, -1, 0, 0, 0]); + const transform = create(); + assertRoughlyEqual(rotate(transform, Math.PI / 2), [0, 1, -1, 0, 0, 0]); assertRoughlyEqual(transform, [0, 1, -1, 0, 0, 0]); }); }); - describe('ol.transform.multiply()', function() { + describe('multiply()', function() { it('multiplies two transforms', function() { const transform1 = [1, 2, 1, 2, 1, 2]; const transform2 = [1, 2, 1, 2, 1, 2]; - expect(_ol_transform_.multiply(transform1, transform2)).to.eql([3, 6, 3, 6, 4, 8]); + expect(multiply(transform1, transform2)).to.eql([3, 6, 3, 6, 4, 8]); expect(transform1).to.eql([3, 6, 3, 6, 4, 8]); }); }); - describe('ol.transform.compose()', function() { + describe('compose()', function() { it('composes a translate, scale, rotate, translate transform', function() { const dx1 = 3; const dy1 = 4; @@ -83,36 +95,36 @@ describe('ol.transform', function() { const dx2 = -dx1 / 2; const dy2 = -dy1 / 2; - const expected = _ol_transform_.create(); - _ol_transform_.translate(expected, dx1, dy1); - _ol_transform_.scale(expected, sx, sy); - _ol_transform_.rotate(expected, angle); - _ol_transform_.translate(expected, dx2, dy2); + const expected = create(); + translate(expected, dx1, dy1); + scale(expected, sx, sy); + rotate(expected, angle); + translate(expected, dx2, dy2); - const composed = _ol_transform_.create(); - const composedReturn = _ol_transform_.compose(composed, dx1, dy1, sx, sy, angle, dx2, dy2); + const composed = create(); + const composedReturn = compose(composed, dx1, dy1, sx, sy, angle, dx2, dy2); expect(composed).to.equal(composedReturn); expect(composed).to.eql(expected); }); }); - describe('ol.transform.invert()', function() { + describe('invert()', function() { it('inverts a transform', function() { let transform = [1, 0, 1, 0, 1, 0]; expect(function() { - _ol_transform_.invert(transform); + invert(transform); }).to.throwException(); transform = [1, 1, 1, 2, 2, 0]; - expect(_ol_transform_.invert(transform)).to.eql([2, -1, -1, 1, -4, 2]); + expect(invert(transform)).to.eql([2, -1, -1, 1, -4, 2]); expect(transform).to.eql([2, -1, -1, 1, -4, 2]); }); }); - describe('ol.transform.apply()', function() { + describe('apply()', function() { it('applies a transform to a 2d vector', function() { - const transform = _ol_transform_.translate(_ol_transform_.create(), 2, 3); + const transform = translate(create(), 2, 3); const point = [1, 2]; - expect(_ol_transform_.apply(transform, point)).to.eql([3, 5]); + expect(apply(transform, point)).to.eql([3, 5]); expect(point).to.eql([3, 5]); }); });