ol/geom/flat/transform export

This commit is contained in:
raiyni
2018-02-13 09:22:00 -06:00
parent 4d27a9eb0e
commit b2d920bbf1
11 changed files with 38 additions and 40 deletions

View File

@@ -5,7 +5,7 @@ import {inherits} from '../index.js';
import BaseObject from '../Object.js';
import {createEmpty, getHeight, returnOrUpdate} from '../extent.js';
import {FALSE} from '../functions.js';
import _ol_geom_flat_transform_ from '../geom/flat/transform.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';
@@ -265,7 +265,7 @@ Geometry.prototype.transform = function(source, destination) {
projectedExtent[0], projectedExtent[3],
scale, -scale, 0,
0, 0);
_ol_geom_flat_transform_.transform2D(inCoordinates, 0, inCoordinates.length, stride,
transform2D(inCoordinates, 0, inCoordinates.length, stride,
tmpTransform, outCoordinates);
return getTransform(source, destination)(inCoordinates, outCoordinates, stride);
} :

View File

@@ -6,7 +6,7 @@ import {FALSE} from '../functions.js';
import {createOrUpdateFromFlatCoordinates, getCenter} from '../extent.js';
import Geometry from '../geom/Geometry.js';
import GeometryLayout from '../geom/GeometryLayout.js';
import _ol_geom_flat_transform_ from '../geom/flat/transform.js';
import {rotate, scale, translate, transform2D} from '../geom/flat/transform.js';
import {clear} from '../obj.js';
/**
@@ -267,7 +267,7 @@ SimpleGeometry.prototype.rotate = function(angle, anchor) {
const flatCoordinates = this.getFlatCoordinates();
if (flatCoordinates) {
const stride = this.getStride();
_ol_geom_flat_transform_.rotate(
rotate(
flatCoordinates, 0, flatCoordinates.length,
stride, angle, anchor, flatCoordinates);
this.changed();
@@ -291,7 +291,7 @@ SimpleGeometry.prototype.scale = function(sx, opt_sy, opt_anchor) {
const flatCoordinates = this.getFlatCoordinates();
if (flatCoordinates) {
const stride = this.getStride();
_ol_geom_flat_transform_.scale(
scale(
flatCoordinates, 0, flatCoordinates.length,
stride, sx, sy, anchor, flatCoordinates);
this.changed();
@@ -307,7 +307,7 @@ SimpleGeometry.prototype.translate = function(deltaX, deltaY) {
const flatCoordinates = this.getFlatCoordinates();
if (flatCoordinates) {
const stride = this.getStride();
_ol_geom_flat_transform_.translate(
translate(
flatCoordinates, 0, flatCoordinates.length, stride,
deltaX, deltaY, flatCoordinates);
this.changed();
@@ -327,7 +327,7 @@ SimpleGeometry.transform2D = function(simpleGeometry, transform, opt_dest) {
return null;
} else {
const stride = simpleGeometry.getStride();
return _ol_geom_flat_transform_.transform2D(
return transform2D(
flatCoordinates, 0, flatCoordinates.length, stride,
transform, opt_dest);
}

View File

@@ -1,7 +1,6 @@
/**
* @module ol/geom/flat/transform
*/
const _ol_geom_flat_transform_ = {};
/**
@@ -13,7 +12,7 @@ const _ol_geom_flat_transform_ = {};
* @param {Array.<number>=} opt_dest Destination.
* @return {Array.<number>} Transformed coordinates.
*/
_ol_geom_flat_transform_.transform2D = function(flatCoordinates, offset, end, stride, transform, opt_dest) {
export function transform2D(flatCoordinates, offset, end, stride, transform, opt_dest) {
const dest = opt_dest ? opt_dest : [];
let i = 0;
for (let j = offset; j < end; j += stride) {
@@ -26,7 +25,7 @@ _ol_geom_flat_transform_.transform2D = function(flatCoordinates, offset, end, st
dest.length = i;
}
return dest;
};
}
/**
@@ -39,7 +38,7 @@ _ol_geom_flat_transform_.transform2D = function(flatCoordinates, offset, end, st
* @param {Array.<number>=} opt_dest Destination.
* @return {Array.<number>} Transformed coordinates.
*/
_ol_geom_flat_transform_.rotate = function(flatCoordinates, offset, end, stride, angle, anchor, opt_dest) {
export function rotate(flatCoordinates, offset, end, stride, angle, anchor, opt_dest) {
const dest = opt_dest ? opt_dest : [];
const cos = Math.cos(angle);
const sin = Math.sin(angle);
@@ -59,7 +58,7 @@ _ol_geom_flat_transform_.rotate = function(flatCoordinates, offset, end, stride,
dest.length = i;
}
return dest;
};
}
/**
@@ -74,7 +73,7 @@ _ol_geom_flat_transform_.rotate = function(flatCoordinates, offset, end, stride,
* @param {Array.<number>=} opt_dest Destination.
* @return {Array.<number>} Transformed coordinates.
*/
_ol_geom_flat_transform_.scale = function(flatCoordinates, offset, end, stride, sx, sy, anchor, opt_dest) {
export function scale(flatCoordinates, offset, end, stride, sx, sy, anchor, opt_dest) {
const dest = opt_dest ? opt_dest : [];
const anchorX = anchor[0];
const anchorY = anchor[1];
@@ -92,7 +91,7 @@ _ol_geom_flat_transform_.scale = function(flatCoordinates, offset, end, stride,
dest.length = i;
}
return dest;
};
}
/**
@@ -105,7 +104,7 @@ _ol_geom_flat_transform_.scale = function(flatCoordinates, offset, end, stride,
* @param {Array.<number>=} opt_dest Destination.
* @return {Array.<number>} Transformed coordinates.
*/
_ol_geom_flat_transform_.translate = function(flatCoordinates, offset, end, stride, deltaX, deltaY, opt_dest) {
export function translate(flatCoordinates, offset, end, stride, deltaX, deltaY, opt_dest) {
const dest = opt_dest ? opt_dest : [];
let i = 0;
for (let j = offset; j < end; j += stride) {
@@ -119,5 +118,4 @@ _ol_geom_flat_transform_.translate = function(flatCoordinates, offset, end, stri
dest.length = i;
}
return dest;
};
export default _ol_geom_flat_transform_;
}

View File

@@ -8,7 +8,7 @@ import GeometryType from '../geom/GeometryType.js';
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 _ol_geom_flat_transform_ from '../geom/flat/transform.js';
import {transform2D} from '../geom/flat/transform.js';
import _ol_transform_ from '../transform.js';
/**
@@ -272,7 +272,7 @@ RenderFeature.prototype.transform = function(source, destination) {
projectedExtent[0], projectedExtent[3],
scale, -scale, 0,
0, 0);
_ol_geom_flat_transform_.transform2D(this.flatCoordinates_, 0, this.flatCoordinates_.length, 2,
transform2D(this.flatCoordinates_, 0, this.flatCoordinates_.length, 2,
transform, this.flatCoordinates_);
};
export default RenderFeature;

View File

@@ -11,7 +11,7 @@ import {asColorLike} from '../../colorlike.js';
import {intersects} from '../../extent.js';
import GeometryType from '../../geom/GeometryType.js';
import SimpleGeometry from '../../geom/SimpleGeometry.js';
import _ol_geom_flat_transform_ from '../../geom/flat/transform.js';
import {transform2D} from '../../geom/flat/transform.js';
import {CANVAS_LINE_DASH} from '../../has.js';
import VectorContext from '../VectorContext.js';
import _ol_render_canvas_ from '../canvas.js';
@@ -252,7 +252,7 @@ CanvasImmediateRenderer.prototype.drawImages_ = function(flatCoordinates, offset
if (!this.image_) {
return;
}
const pixelCoordinates = _ol_geom_flat_transform_.transform2D(
const pixelCoordinates = transform2D(
flatCoordinates, offset, end, 2, this.transform_,
this.pixelCoordinates_);
const context = this.context_;
@@ -313,7 +313,7 @@ CanvasImmediateRenderer.prototype.drawText_ = function(flatCoordinates, offset,
this.setContextStrokeState_(this.textStrokeState_);
}
this.setContextTextState_(this.textState_);
const pixelCoordinates = _ol_geom_flat_transform_.transform2D(
const pixelCoordinates = transform2D(
flatCoordinates, offset, end, stride, this.transform_,
this.pixelCoordinates_);
const context = this.context_;
@@ -356,7 +356,7 @@ CanvasImmediateRenderer.prototype.drawText_ = function(flatCoordinates, offset,
*/
CanvasImmediateRenderer.prototype.moveToLineTo_ = function(flatCoordinates, offset, end, stride, close) {
const context = this.context_;
const pixelCoordinates = _ol_geom_flat_transform_.transform2D(
const pixelCoordinates = transform2D(
flatCoordinates, offset, end, stride, this.transform_,
this.pixelCoordinates_);
context.moveTo(pixelCoordinates[0], pixelCoordinates[1]);

View File

@@ -11,7 +11,7 @@ import GeometryType from '../../geom/GeometryType.js';
import {inflateCoordinates, inflateCoordinatesArray, inflateMultiCoordinatesArray} from '../../geom/flat/inflate.js';
import {lineStringLength} from '../../geom/flat/length.js';
import {drawTextOnPath} from '../../geom/flat/textpath.js';
import _ol_geom_flat_transform_ from '../../geom/flat/transform.js';
import {transform2D} from '../../geom/flat/transform.js';
import {CANVAS_LINE_DASH} from '../../has.js';
import {isEmpty} from '../../obj.js';
import VectorContext from '../VectorContext.js';
@@ -549,7 +549,7 @@ CanvasReplay.prototype.replay_ = function(
if (!this.pixelCoordinates_) {
this.pixelCoordinates_ = [];
}
pixelCoordinates = _ol_geom_flat_transform_.transform2D(
pixelCoordinates = transform2D(
this.coordinates, 0, this.coordinates.length, 2,
transform, this.pixelCoordinates_);
_ol_transform_.setFromArray(this.renderedTransform_, transform);

View File

@@ -5,7 +5,7 @@ import {inherits} from '../../index.js';
import {numberSafeCompareFunction} from '../../array.js';
import {createCanvasContext2D} from '../../dom.js';
import {buffer, createEmpty, extendCoordinate} from '../../extent.js';
import _ol_geom_flat_transform_ from '../../geom/flat/transform.js';
import {transform2D} from '../../geom/flat/transform.js';
import {isEmpty} from '../../obj.js';
import ReplayGroup from '../ReplayGroup.js';
import ReplayType from '../ReplayType.js';
@@ -407,7 +407,7 @@ CanvasReplayGroup.prototype.getClipCoords = function(transform) {
const maxX = maxExtent[2];
const maxY = maxExtent[3];
const flatClipCoords = [minX, minY, minX, maxY, maxX, maxY, maxX, minY];
_ol_geom_flat_transform_.transform2D(
transform2D(
flatClipCoords, 0, 8, 2, transform, flatClipCoords);
return flatClipCoords;
};

View File

@@ -6,7 +6,7 @@ import {equals} from '../../array.js';
import {asArray} from '../../color.js';
import {intersects} from '../../extent.js';
import {isEmpty} from '../../obj.js';
import _ol_geom_flat_transform_ from '../../geom/flat/transform.js';
import {translate} from '../../geom/flat/transform.js';
import {fragment, vertex} from '../webgl/circlereplay/defaultshader.js';
import Locations from '../webgl/circlereplay/defaultshader/Locations.js';
import WebGLReplay from '../webgl/Replay.js';
@@ -134,7 +134,7 @@ WebGLCircleReplay.prototype.drawCircle = function(circleGeometry, feature) {
this.radius_ = radius;
let flatCoordinates = circleGeometry.getFlatCoordinates();
flatCoordinates = _ol_geom_flat_transform_.translate(flatCoordinates, 0, 2,
flatCoordinates = translate(flatCoordinates, 0, 2,
stride, -this.origin[0], -this.origin[1]);
this.drawCoordinates_(flatCoordinates, 0, 2, stride);
} else {

View File

@@ -6,7 +6,7 @@ import {equals} from '../../array.js';
import {asArray} from '../../color.js';
import {intersects} from '../../extent.js';
import {linearRingIsClockwise} from '../../geom/flat/orient.js';
import _ol_geom_flat_transform_ from '../../geom/flat/transform.js';
import {translate} from '../../geom/flat/transform.js';
import {lineStringIsClosed} from '../../geom/flat/topology.js';
import {isEmpty} from '../../obj.js';
import _ol_render_webgl_ from '../webgl.js';
@@ -322,7 +322,7 @@ WebGLLineStringReplay.prototype.drawLineString = function(lineStringGeometry, fe
let flatCoordinates = lineStringGeometry.getFlatCoordinates();
const stride = lineStringGeometry.getStride();
if (this.isValid_(flatCoordinates, 0, flatCoordinates.length, stride)) {
flatCoordinates = _ol_geom_flat_transform_.translate(flatCoordinates, 0, flatCoordinates.length,
flatCoordinates = translate(flatCoordinates, 0, flatCoordinates.length,
stride, -this.origin[0], -this.origin[1]);
if (this.state_.changed) {
this.styleIndices_.push(this.indices.length);
@@ -349,7 +349,7 @@ WebGLLineStringReplay.prototype.drawMultiLineString = function(multiLineStringGe
if (ends.length > 1) {
for (i = 1, ii = ends.length; i < ii; ++i) {
if (this.isValid_(flatCoordinates, ends[i - 1], ends[i], stride)) {
const lineString = _ol_geom_flat_transform_.translate(flatCoordinates, ends[i - 1], ends[i],
const lineString = translate(flatCoordinates, ends[i - 1], ends[i],
stride, -this.origin[0], -this.origin[1]);
this.drawCoordinates_(
lineString, 0, lineString.length, stride);

View File

@@ -8,7 +8,7 @@ import {intersects} from '../../extent.js';
import {isEmpty} from '../../obj.js';
import {linearRingContainsXY} from '../../geom/flat/contains.js';
import {linearRingIsClockwise} from '../../geom/flat/orient.js';
import _ol_geom_flat_transform_ from '../../geom/flat/transform.js';
import {translate} from '../../geom/flat/transform.js';
import {fragment, vertex} from '../webgl/polygonreplay/defaultshader.js';
import Locations from '../webgl/polygonreplay/defaultshader/Locations.js';
import WebGLLineStringReplay from '../webgl/LineStringReplay.js';
@@ -761,14 +761,14 @@ WebGLPolygonReplay.prototype.drawMultiPolygon = function(multiPolygonGeometry, f
for (i = 0, ii = endss.length; i < ii; ++i) {
const ends = endss[i];
if (ends.length > 0) {
const outerRing = _ol_geom_flat_transform_.translate(flatCoordinates, start, ends[0],
const outerRing = translate(flatCoordinates, start, ends[0],
stride, -this.origin[0], -this.origin[1]);
if (outerRing.length) {
const holes = [];
let holeFlatCoords;
for (j = 1, jj = ends.length; j < jj; ++j) {
if (ends[j] !== ends[j - 1]) {
holeFlatCoords = _ol_geom_flat_transform_.translate(flatCoordinates, ends[j - 1],
holeFlatCoords = translate(flatCoordinates, ends[j - 1],
ends[j], stride, -this.origin[0], -this.origin[1]);
holes.push(holeFlatCoords);
}
@@ -801,14 +801,14 @@ WebGLPolygonReplay.prototype.drawPolygon = function(polygonGeometry, feature) {
const stride = polygonGeometry.getStride();
if (ends.length > 0) {
const flatCoordinates = polygonGeometry.getFlatCoordinates().map(Number);
const outerRing = _ol_geom_flat_transform_.translate(flatCoordinates, 0, ends[0],
const outerRing = translate(flatCoordinates, 0, ends[0],
stride, -this.origin[0], -this.origin[1]);
if (outerRing.length) {
const holes = [];
let i, ii, holeFlatCoords;
for (i = 1, ii = ends.length; i < ii; ++i) {
if (ends[i] !== ends[i - 1]) {
holeFlatCoords = _ol_geom_flat_transform_.translate(flatCoordinates, ends[i - 1],
holeFlatCoords = translate(flatCoordinates, ends[i - 1],
ends[i], stride, -this.origin[0], -this.origin[1]);
holes.push(holeFlatCoords);
}

View File

@@ -1,6 +1,6 @@
import MultiPolygon from '../../../../../src/ol/geom/MultiPolygon.js';
import SimpleGeometry from '../../../../../src/ol/geom/SimpleGeometry.js';
import _ol_geom_flat_transform_ from '../../../../../src/ol/geom/flat/transform.js';
import {rotate, translate} from '../../../../../src/ol/geom/flat/transform.js';
describe('ol.geom.flat.transform', function() {
@@ -75,7 +75,7 @@ describe('ol.geom.flat.transform', function() {
const flatCoordinates = multiPolygon.getFlatCoordinates();
const deltaX = 1;
const deltaY = 2;
_ol_geom_flat_transform_.translate(flatCoordinates, 0,
translate(flatCoordinates, 0,
flatCoordinates.length, multiPolygon.getStride(),
deltaX, deltaY, flatCoordinates);
expect(flatCoordinates).to.eql([
@@ -92,7 +92,7 @@ describe('ol.geom.flat.transform', function() {
const flatCoordinates = multiPolygon.getFlatCoordinates();
const angle = Math.PI / 2;
const anchor = [0, 1];
_ol_geom_flat_transform_.rotate(flatCoordinates, 0,
rotate(flatCoordinates, 0,
flatCoordinates.length, multiPolygon.getStride(),
angle, anchor, flatCoordinates);
expect(flatCoordinates[0]).to.roughlyEqual(1, 1e-9);