Merge pull request #7834 from marcjansen/transform-transformation
Named exports from ol/transform
This commit is contained in:
@@ -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));
|
||||
}
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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));
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -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.<string>}
|
||||
@@ -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,
|
||||
|
||||
@@ -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_) {
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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.<number>}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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: {},
|
||||
|
||||
@@ -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_;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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]);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user