ol 9.0.1-dev.1710242622736 → 9.0.1-dev.1710502266295
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Map.d.ts +4 -0
- package/Map.d.ts.map +1 -1
- package/Map.js +2 -0
- package/dist/ol.d.ts +2 -0
- package/dist/ol.d.ts.map +1 -1
- package/dist/ol.js +2 -2
- package/dist/ol.js.map +1 -1
- package/package.json +1 -1
- package/render/canvas/ExecutorGroup.d.ts.map +1 -1
- package/render/canvas/ExecutorGroup.js +3 -2
- package/renderer/canvas/ImageLayer.d.ts.map +1 -1
- package/renderer/canvas/ImageLayer.js +1 -8
- package/renderer/canvas/Layer.d.ts +3 -3
- package/renderer/canvas/Layer.d.ts.map +1 -1
- package/renderer/canvas/Layer.js +19 -6
- package/renderer/canvas/TileLayer.d.ts.map +1 -1
- package/renderer/canvas/TileLayer.js +1 -8
- package/renderer/canvas/VectorImageLayer.js +1 -1
- package/renderer/canvas/VectorLayer.d.ts +9 -3
- package/renderer/canvas/VectorLayer.d.ts.map +1 -1
- package/renderer/canvas/VectorLayer.js +31 -35
- package/renderer/vector.d.ts.map +1 -1
- package/renderer/vector.js +3 -2
- package/source/Raster.d.ts.map +1 -1
- package/source/Raster.js +1 -0
- package/transform.d.ts +6 -0
- package/transform.d.ts.map +1 -1
- package/transform.js +21 -15
- package/util.js +1 -1
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutorGroup.d.ts","sourceRoot":"","sources":["ExecutorGroup.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExecutorGroup.d.ts","sourceRoot":"","sources":["ExecutorGroup.js"],"names":[],"mappings":"AA8bA;;;;;;GAMG;AACH,2CAHW,MAAM,GACL,MAAM,MAAM,CAAC,CA2CxB;AA/dD;;;GAGG;AACH,kBAFU,MAAM,OAAO,cAAc,EAAE,WAAW,CAAC,CASjD;AAEF;;;GAGG;AACH,wBAFU,MAAM,OAAO,cAAc,EAAE,WAAW,CAAC,CAER;AAE3C;;;GAGG;AACH,4BAFU,MAAM,OAAO,cAAc,EAAE,WAAW,CAAC,CAIjD;;AAEF;IACE;;;;;;;;;;;;OAYG;IACH,uBAZW,OAAO,iBAAiB,EAAE,MAAM,cAIhC,MAAM,cACN,MAAM,YACN,OAAO;YACC,MAAM;mFA0ExB;IA5DC;;;OAGG;IACH,mBAA2B;IAE3B;;;OAGG;IACH,kBAAyB;IAEzB;;;OAGG;IACH,oBAA6B;IAE7B;;;OAGG;IACH,oBAA6B;IAE7B;;;OAGG;IACH,sBAAiC;IAEjC;;;OAGG;IACH,2BAA4B;IAE5B;;;OAGG;IACH,6BAAgC;IAEhC;;;OAGG;IACH,+BAA+C;IAE/C;;;OAGG;IACH,yBAA4B;IAE5B;;OAEG;IACH;YAFiB,MAAM,GAAE,MAAM,OAAO,oBAAoB,EAAE,OAAO,CAAC;MAEnC;IAKnC;;;OAGG;IACH,cAHW,wBAAwB,aACxB,OAAO,oBAAoB,EAAE,SAAS,QAUhD;IAED;;;;;OAKG;IACH,yBAmBC;IAED;;;OAGG;IACH,wBAHW,MAAM,OAAO,cAAc,EAAE,WAAW,CAAC,GACxC,OAAO,CAYlB;IAED;;;;;;;;;OASG;IACH,0CATW,OAAO,qBAAqB,EAAE,UAAU,cACxC,MAAM,YACN,MAAM,gBACN,MAAM,mBACG,OAAO,kBAAkB,EAAE,WAAW,QAAE,OAAO,8BAA8B,EAAE,OAAO,QAAE,MAAM,6BACvG,MAAM,OAAO,kBAAkB,EAAE,WAAW,CAAC,iBA4HvD;IAED;;;OAGG;IACH,yBAHW,OAAO,oBAAoB,EAAE,SAAS,GACrC,MAAM,MAAM,CAAC,GAAC,IAAI,CAc7B;IAED;;OAEG;IACH,WAFY,OAAO,CAIlB;IAED;;;;;;;;;;OAUG;IACH,uBAVW,wBAAwB,oBACxB,OAAO,eAAe,EAAE,IAAI,aAC5B,OAAO,oBAAoB,EAAE,SAAS,gBACtC,MAAM,eACN,OAAO,mFAGP,MAAwB,IAAI,QAmEtC;IAED;;MAEC;IAED,+CAEC;IAED,uBASC;CACF"}
|
|
@@ -426,8 +426,9 @@ class ExecutorGroup {
|
|
|
426
426
|
|
|
427
427
|
renderDeferred() {
|
|
428
428
|
const deferredZIndexContexts = this.deferredZIndexContexts_;
|
|
429
|
-
|
|
430
|
-
|
|
429
|
+
const zs = Object.keys(deferredZIndexContexts).map(Number).sort(ascending);
|
|
430
|
+
for (let i = 0, ii = zs.length; i < ii; ++i) {
|
|
431
|
+
deferredZIndexContexts[zs[i]].forEach((zIndexContext) => {
|
|
431
432
|
zIndexContext.draw(this.renderedContext_); // FIXME Pass clip to replay for temporarily enabling clip
|
|
432
433
|
zIndexContext.clear();
|
|
433
434
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageLayer.d.ts","sourceRoot":"","sources":["ImageLayer.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ImageLayer.d.ts","sourceRoot":"","sources":["ImageLayer.js"],"names":[],"mappings":";AAsBA;;;;GAIG;AACH;IACE;;OAEG;IACH,qEAQC;IALC;;;OAGG;IACH,kBAFW,OAAO,gBAAgB,EAAE,OAAO,QAEzB;IAGpB;;OAEG;IACH,YAFY,OAAO,mBAAmB,EAAE,SAAS,CAIhD;IAqDD;;;OAGG;IACH,eAHW,OAAO,gBAAgB,EAAE,KAAK,GAC7B,iBAAiB,CAyC5B;IAED;;;;;OAKG;IACH,wBAJW,OAAO,cAAc,EAAE,UAAU,UACjC,WAAW,GACV,WAAW,CA+GtB;CACF;gCAjQ+B,YAAY"}
|
|
@@ -8,7 +8,6 @@ import {
|
|
|
8
8
|
apply as applyTransform,
|
|
9
9
|
compose as composeTransform,
|
|
10
10
|
makeInverse,
|
|
11
|
-
toString as toTransformString,
|
|
12
11
|
} from '../../transform.js';
|
|
13
12
|
import {
|
|
14
13
|
containsCoordinate,
|
|
@@ -187,9 +186,7 @@ class CanvasImageLayerRenderer extends CanvasLayerRenderer {
|
|
|
187
186
|
);
|
|
188
187
|
makeInverse(this.inversePixelTransform, this.pixelTransform);
|
|
189
188
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
this.useContainer(target, canvasTransform, this.getBackground(frameState));
|
|
189
|
+
this.useContainer(target, this.pixelTransform, frameState);
|
|
193
190
|
|
|
194
191
|
const context = this.getRenderContext(frameState);
|
|
195
192
|
const canvas = this.context.canvas;
|
|
@@ -259,10 +256,6 @@ class CanvasImageLayerRenderer extends CanvasLayerRenderer {
|
|
|
259
256
|
}
|
|
260
257
|
context.imageSmoothingEnabled = true;
|
|
261
258
|
|
|
262
|
-
if (canvasTransform !== canvas.style.transform) {
|
|
263
|
-
canvas.style.transform = canvasTransform;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
259
|
return this.container;
|
|
267
260
|
}
|
|
268
261
|
}
|
|
@@ -78,10 +78,10 @@ declare class CanvasLayerRenderer<LayerType extends import("../../layer/Layer.js
|
|
|
78
78
|
/**
|
|
79
79
|
* Get a rendering container from an existing target, if compatible.
|
|
80
80
|
* @param {HTMLElement} target Potential render target.
|
|
81
|
-
* @param {
|
|
82
|
-
* @param {
|
|
81
|
+
* @param {import('../../transform.js').Transform} transform Transform parameters for the CSS matrix.
|
|
82
|
+
* @param {import('../../Map.js').FrameState} [frameState] Frame state.
|
|
83
83
|
*/
|
|
84
|
-
useContainer(target: HTMLElement, transform:
|
|
84
|
+
useContainer(target: HTMLElement, transform: import('../../transform.js').Transform, frameState?: import("../../Map.js").FrameState | undefined): void;
|
|
85
85
|
/**
|
|
86
86
|
* @param {CanvasRenderingContext2D} context Context.
|
|
87
87
|
* @param {import("../../Map.js").FrameState} frameState Frame state.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Layer.d.ts","sourceRoot":"","sources":["Layer.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Layer.d.ts","sourceRoot":"","sources":["Layer.js"],"names":[],"mappings":"AAwBA;;GAEG;AACH,yBAFU,MAAM,iBAAiB,CAAC,CAEL;;AAa7B;;;;GAIG;AACH;IAOI;;;OAGG;IACH,qBAFU,WAAW,CAEA;IAErB;;;OAGG;IACH,8BAFU,MAAM,CAEO;IAEvB;;;;;OAKG;IACH,yBAFU,OAAO,oBAAoB,EAAE,SAAS,CAEV;IAEtC;;;;;OAKG;IACH,0BAFU,OAAO,oBAAoB,EAAE,SAAS,CAET;IAEvC;;;;;OAKG;IACH,iCAFU,OAAO,oBAAoB,EAAE,SAAS,CAEF;IAE9C;;OAEG;IACH,SAFU,wBAAwB,CAEf;IAEnB;;;OAGG;IACH,yBAA4B;IAE5B;;OAEG;IACH,iBAFU,OAAO,CAEW;IAE5B;;;OAGG;IACH,sBAAyB;IAEzB;;;OAGG;IACH,sBAFU,OAAO,cAAc,EAAE,UAAU,GAAC,IAAI,CAE1B;IAGxB;;;;;OAKG;IACH,oBALW,OAAO,mBAAmB,EAAE,SAAS,OACrC,MAAM,OACN,MAAM,GACL,iBAAiB,GAAC,IAAI,CAiBjC;IAED;;;OAGG;IACH,0BAHW,OAAO,cAAc,EAAE,UAAU,GAChC,MAAM,CASjB;IAED;;;;;OAKG;IACH,qBAJW,WAAW,aACX,OAAO,oBAAoB,EAAE,SAAS,oEAsEhD;IAED;;;;;OAKG;IACH,iCALW,wBAAwB,cACxB,OAAO,cAAc,EAAE,UAAU,UACjC,OAAO,iBAAiB,EAAE,MAAM,QA2B1C;IAED;;;;;OAKG;IACH,6BAWC;IAED;;;;OAIG;IACH,6BAJW,wBAAwB,cACxB,OAAO,cAAc,EAAE,UAAU,QAS3C;IAED;;;;OAIG;IACH,8BAJW,wBAAwB,cACxB,OAAO,cAAc,EAAE,UAAU,QAQ3C;IAED;;OAEG;IACH,mCAFW,OAAO,cAAc,EAAE,UAAU,QAEP;IAErC;;;OAGG;IACH,6BAHW,OAAO,cAAc,EAAE,UAAU,GAChC,OAAO,sCAAsC,EAAE,kBAAkB,CAS5E;IA2BD;;;;;;;;;;;OAWG;IACH,qCAVW,OAAO,qBAAqB,EAAE,UAAU,cACxC,MAAM,YACN,MAAM,cACN,MAAM,SACN,MAAM,UACN,MAAM,WACN,MAAM,GAEJ,OAAO,oBAAoB,EAAE,SAAS,CA2BlD;CASF;0BAtYyB,aAAa"}
|
package/renderer/canvas/Layer.js
CHANGED
|
@@ -9,10 +9,12 @@ import {
|
|
|
9
9
|
apply as applyTransform,
|
|
10
10
|
compose as composeTransform,
|
|
11
11
|
create as createTransform,
|
|
12
|
+
equals as equalTransforms,
|
|
13
|
+
toString as toTransformString,
|
|
12
14
|
} from '../../transform.js';
|
|
13
15
|
import {asArray} from '../../color.js';
|
|
14
16
|
import {createCanvasContext2D} from '../../dom.js';
|
|
15
|
-
import {equals} from '../../array.js';
|
|
17
|
+
import {equals as equalArrays} from '../../array.js';
|
|
16
18
|
import {
|
|
17
19
|
getBottomLeft,
|
|
18
20
|
getBottomRight,
|
|
@@ -152,11 +154,12 @@ class CanvasLayerRenderer extends LayerRenderer {
|
|
|
152
154
|
/**
|
|
153
155
|
* Get a rendering container from an existing target, if compatible.
|
|
154
156
|
* @param {HTMLElement} target Potential render target.
|
|
155
|
-
* @param {
|
|
156
|
-
* @param {
|
|
157
|
+
* @param {import('../../transform.js').Transform} transform Transform parameters for the CSS matrix.
|
|
158
|
+
* @param {import('../../Map.js').FrameState} [frameState] Frame state.
|
|
157
159
|
*/
|
|
158
|
-
useContainer(target, transform,
|
|
160
|
+
useContainer(target, transform, frameState) {
|
|
159
161
|
const layerClassName = this.getLayer().getClassName();
|
|
162
|
+
const backgroundColor = this.getBackground(frameState);
|
|
160
163
|
let container, context;
|
|
161
164
|
if (
|
|
162
165
|
target &&
|
|
@@ -164,7 +167,7 @@ class CanvasLayerRenderer extends LayerRenderer {
|
|
|
164
167
|
(!backgroundColor ||
|
|
165
168
|
(target &&
|
|
166
169
|
target.style.backgroundColor &&
|
|
167
|
-
|
|
170
|
+
equalArrays(
|
|
168
171
|
asArray(target.style.backgroundColor),
|
|
169
172
|
asArray(backgroundColor),
|
|
170
173
|
)))
|
|
@@ -174,7 +177,11 @@ class CanvasLayerRenderer extends LayerRenderer {
|
|
|
174
177
|
context = canvas.getContext('2d');
|
|
175
178
|
}
|
|
176
179
|
}
|
|
177
|
-
|
|
180
|
+
const transformsAreEqual =
|
|
181
|
+
frameState.layerTransform &&
|
|
182
|
+
transform &&
|
|
183
|
+
equalTransforms(frameState.layerTransform, transform);
|
|
184
|
+
if (context && transformsAreEqual) {
|
|
178
185
|
// Container of the previous layer renderer can be used.
|
|
179
186
|
this.container = target;
|
|
180
187
|
this.context = context;
|
|
@@ -211,6 +218,12 @@ class CanvasLayerRenderer extends LayerRenderer {
|
|
|
211
218
|
) {
|
|
212
219
|
this.container.style.backgroundColor = backgroundColor;
|
|
213
220
|
}
|
|
221
|
+
if (!transformsAreEqual) {
|
|
222
|
+
if (transform) {
|
|
223
|
+
this.context.canvas.style.transform = toTransformString(transform);
|
|
224
|
+
}
|
|
225
|
+
frameState.layerTransform = transform;
|
|
226
|
+
}
|
|
214
227
|
}
|
|
215
228
|
|
|
216
229
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TileLayer.d.ts","sourceRoot":"","sources":["TileLayer.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"TileLayer.d.ts","sourceRoot":"","sources":["TileLayer.js"],"names":[],"mappings":";AA6BA;;;;;;GAMG;AACH;IACE;;OAEG;IACH,uBAFW,SAAS,EA0DnB;IArDC;;;OAGG;IACH,eAFU,OAAO,CAEQ;IAEzB;;;OAGG;IACH,wBAA2B;IAE3B;;;OAGG;IACH,8BAFU,MAAM,CAEO;IAEvB;;;OAGG;IACH,8BAFU,OAAO,0BAA0B,EAAE,OAAO,CAEtB;IAE9B;;;OAGG;IACH,4BAFU,MAAM,CAEK;IAErB;;;OAGG;IACH,yBAFW,MAAM,OAAO,eAAe,EAAE,OAAO,CAAC,CAE1B;IAEvB;;;OAGG;IACH,kBAAsB;IAEtB;;;OAGG;IACH,qBAFU,OAAO,iBAAiB,EAAE,MAAM,CAEZ;IAE9B;;;OAGG;IACH,sBAA8C;IAGhD;;;;OAIG;IACH,+BAHW,OAAO,eAAe,EAAE,OAAO,GAC9B,OAAO,CAWlB;IAED;;;;;;OAMG;IACH,WANW,MAAM,KACN,MAAM,KACN,MAAM,cACN,OAAO,cAAc,EAAE,UAAU,GAC/B,OAAO,eAAe,EAAE,OAAO,CAkB3C;IAED;;;OAGG;IACH,eAHW,OAAO,gBAAgB,EAAE,KAAK,GAC7B,iBAAiB,CA4E5B;IAwBD;;;;;OAKG;IACH,wBAJW,OAAO,cAAc,EAAE,UAAU,UACjC,WAAW,GACV,WAAW,CAiUtB;IAED;;;;;;;;;OASG;IACH,oBATW,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,cAAc,EAAE,UAAU,KACjC,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,UACN,MAAM,cACN,OAAO,QAsCjB;IAED;;OAEG;IACH,YAFY,iBAAiB,CAK5B;IAED;;;;;OAKG;IACH,6BAJW,OAAO,oBAAoB,EAAE,OAAO,GACnC,iBAAiB,GAAC,gBAAgB,GAAC,gBAAgB,CAK9D;IAED;;;;OAIG;IACH,0CAJW,OAAO,cAAc,EAAE,UAAU,cACjC,OAAO,sBAAsB,EAAE,OAAO,QA0BhD;IAED;;;;;OAKG;IACH;YALmB,MAAM;gBAAU,MAAM,GAAE,OAAO;;mBACvC,OAAO,sBAAsB,EAAE,OAAO,QACtC,OAAO,eAAe,EAAE,OAAO,QAUzC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,wCAXW,OAAO,cAAc,EAAE,UAAU,cACjC,OAAO,sBAAsB,EAAE,OAAO,YACtC,OAAO,4BAA4B,EAAE,OAAO,cAC5C,MAAM,cACN,OAAO,0BAA0B,EAAE,OAAO,UAC1C,OAAO,iBAAiB,EAAE,MAAM,YAChC,MAAM,WACN,MAAM,yBACG,OAAO,eAAe,EAAE,OAAO,KAAE,IAAI,qBAmExD;CACF;gCAvvB+B,YAAY"}
|
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
apply as applyTransform,
|
|
11
11
|
compose as composeTransform,
|
|
12
12
|
makeInverse,
|
|
13
|
-
toString as toTransformString,
|
|
14
13
|
} from '../../transform.js';
|
|
15
14
|
import {ascending} from '../../array.js';
|
|
16
15
|
import {
|
|
@@ -380,9 +379,7 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
|
|
|
380
379
|
-height / 2,
|
|
381
380
|
);
|
|
382
381
|
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
this.useContainer(target, canvasTransform, this.getBackground(frameState));
|
|
382
|
+
this.useContainer(target, this.pixelTransform, frameState);
|
|
386
383
|
|
|
387
384
|
const context = this.getRenderContext(frameState);
|
|
388
385
|
const canvas = this.context.canvas;
|
|
@@ -566,10 +563,6 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
|
|
|
566
563
|
}
|
|
567
564
|
context.imageSmoothingEnabled = true;
|
|
568
565
|
|
|
569
|
-
if (canvasTransform !== canvas.style.transform) {
|
|
570
|
-
canvas.style.transform = canvasTransform;
|
|
571
|
-
}
|
|
572
|
-
|
|
573
566
|
return this.container;
|
|
574
567
|
}
|
|
575
568
|
|
|
@@ -105,7 +105,7 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer {
|
|
|
105
105
|
!hints[ViewHint.INTERACTING] &&
|
|
106
106
|
!isEmpty(renderedExtent)
|
|
107
107
|
) {
|
|
108
|
-
vectorRenderer.useContainer(null, null);
|
|
108
|
+
vectorRenderer.useContainer(null, null, frameState);
|
|
109
109
|
const context = vectorRenderer.context;
|
|
110
110
|
const layerState = frameState.layerStatesArray[frameState.layerIndex];
|
|
111
111
|
const imageLayerState = Object.assign({}, layerState, {opacity: 1});
|
|
@@ -87,7 +87,7 @@ declare class CanvasVectorLayerRenderer extends CanvasLayerRenderer<any> {
|
|
|
87
87
|
* @private
|
|
88
88
|
* @type {CanvasRenderingContext2D}
|
|
89
89
|
*/
|
|
90
|
-
private
|
|
90
|
+
private targetContext_;
|
|
91
91
|
/**
|
|
92
92
|
* @private
|
|
93
93
|
* @type {number}
|
|
@@ -100,8 +100,14 @@ declare class CanvasVectorLayerRenderer extends CanvasLayerRenderer<any> {
|
|
|
100
100
|
* `false` to only render non-declutterable items, `undefined` to render all.
|
|
101
101
|
*/
|
|
102
102
|
renderWorlds(executorGroup: ExecutorGroup, frameState: import("../../Map.js").FrameState, declutterable?: boolean | undefined): void;
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
/**
|
|
104
|
+
* @private
|
|
105
|
+
*/
|
|
106
|
+
private setDrawContext_;
|
|
107
|
+
/**
|
|
108
|
+
* @private
|
|
109
|
+
*/
|
|
110
|
+
private resetDrawContext_;
|
|
105
111
|
/**
|
|
106
112
|
* Render declutter items for this layer
|
|
107
113
|
* @param {import("../../Map.js").FrameState} frameState Frame state.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VectorLayer.d.ts","sourceRoot":"","sources":["VectorLayer.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"VectorLayer.d.ts","sourceRoot":"","sources":["VectorLayer.js"],"names":[],"mappings":";AA4CA;;;;GAIG;AACH;IACE;;OAEG;IACH,gFAwGC;IArGC,eAAe;IACf,qCAA2E;IAE3E;;OAEG;IACH,yBAFU,OAAO,CAEW;IAE5B;;OAEG;IACH,wBAFU,SAAS,GAAC,IAAI,CAEU;IAElC;;OAEG;IACH,mBAFU,MAAM,OAAO,kBAAkB,EAAE,OAAO,CAAC,CAEtB;IAE7B;;;OAGG;IACH,0BAA2B;IAE3B;;;OAGG;IACH,4BAA8B;IAE9B;;;OAGG;IACH,wBAAoC;IAEpC;;;OAGG;IACH,+BAA2C;IAE3C;;;OAGG;IACH,0BAAsB;IAEtB;;;OAGG;IACH,wBAA2B;IAE3B;;;OAGG;IACH,4BAA+B;IAE/B;;;OAGG;IACH,4BAA4B;IAE5B;;;OAGG;IACH,6BAAgC;IAEhC;;;OAGG;IACH,qBAAwB;IAExB;;;OAGG;IACH,oBAFU,OAAO,CAEa;IAE9B;;;OAGG;IACH,UAFU,OAAO,CAEG;IAEpB;;;OAGG;IACH,uBAA0B;IAE1B;;;OAGG;IACH,iBAAiB;IAGnB;;;;;OAKG;IACH,4BALW,aAAa,cACb,OAAO,cAAc,EAAE,UAAU,6CAyD3C;IAED;;OAEG;IACH,wBASC;IAED;;OAEG;IACH,0BAWC;IAED;;;OAGG;IACH,4BAFW,OAAO,cAAc,EAAE,UAAU,QAO3C;IAiGD;;;;;OAKG;IACH,mBAJW,OAAO,gBAAgB,EAAE,KAAK,GAC7B,QAAQ,MAAM,OAAO,eAAe,EAAE,OAAO,CAAC,CAAC,CA2F1D;IA4FD;;;;OAIG;IACH,gCAEC;IAwMD;;;;;;;;;OASG;IACH,uBATW,OAAO,kBAAkB,EAAE,OAAO,oBAClC,MAAM,UACN,OAAO,sBAAsB,EAAE,OAAO,GAAC,MAAM,OAAO,sBAAsB,EAAE,OAAO,CAAC,gBACpF,OAAO,qCAAqC,EAAE,OAAO,mIAIpD,OAAO,CA0ClB;CACF;gCA5xB6C,YAAY;0BAKnD,sCAAsC"}
|
|
@@ -15,12 +15,7 @@ import {
|
|
|
15
15
|
createHitDetectionImageData,
|
|
16
16
|
hitDetect,
|
|
17
17
|
} from '../../render/canvas/hitdetect.js';
|
|
18
|
-
import {
|
|
19
|
-
apply,
|
|
20
|
-
makeInverse,
|
|
21
|
-
makeScale,
|
|
22
|
-
toString as transformToString,
|
|
23
|
-
} from '../../transform.js';
|
|
18
|
+
import {apply, makeInverse, makeScale} from '../../transform.js';
|
|
24
19
|
import {
|
|
25
20
|
buffer,
|
|
26
21
|
containsExtent,
|
|
@@ -153,7 +148,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
153
148
|
* @private
|
|
154
149
|
* @type {CanvasRenderingContext2D}
|
|
155
150
|
*/
|
|
156
|
-
this.
|
|
151
|
+
this.targetContext_ = null;
|
|
157
152
|
|
|
158
153
|
/**
|
|
159
154
|
* @private
|
|
@@ -183,7 +178,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
183
178
|
const snapToPixel = !(
|
|
184
179
|
viewHints[ViewHint.ANIMATING] || viewHints[ViewHint.INTERACTING]
|
|
185
180
|
);
|
|
186
|
-
const context = this.
|
|
181
|
+
const context = this.context;
|
|
187
182
|
const width = Math.round(frameState.size[0] * pixelRatio);
|
|
188
183
|
const height = Math.round(frameState.size[1] * pixelRatio);
|
|
189
184
|
|
|
@@ -223,28 +218,33 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
223
218
|
} while (++world < endWorld);
|
|
224
219
|
}
|
|
225
220
|
|
|
226
|
-
|
|
221
|
+
/**
|
|
222
|
+
* @private
|
|
223
|
+
*/
|
|
224
|
+
setDrawContext_() {
|
|
227
225
|
if (this.opacity_ !== 1) {
|
|
228
|
-
|
|
226
|
+
this.targetContext_ = this.context;
|
|
227
|
+
this.context = createCanvasContext2D(
|
|
229
228
|
this.context.canvas.width,
|
|
230
229
|
this.context.canvas.height,
|
|
231
230
|
canvasPool,
|
|
232
231
|
);
|
|
233
|
-
this.compositionContext_ = compositionContext;
|
|
234
|
-
} else {
|
|
235
|
-
this.compositionContext_ = this.context;
|
|
236
232
|
}
|
|
237
233
|
}
|
|
238
234
|
|
|
239
|
-
|
|
235
|
+
/**
|
|
236
|
+
* @private
|
|
237
|
+
*/
|
|
238
|
+
resetDrawContext_() {
|
|
240
239
|
if (this.opacity_ !== 1) {
|
|
241
|
-
const alpha = this.
|
|
242
|
-
this.
|
|
243
|
-
this.
|
|
244
|
-
this.
|
|
245
|
-
releaseCanvas(this.
|
|
246
|
-
canvasPool.push(this.
|
|
247
|
-
this.
|
|
240
|
+
const alpha = this.targetContext_.globalAlpha;
|
|
241
|
+
this.targetContext_.globalAlpha = this.opacity_;
|
|
242
|
+
this.targetContext_.drawImage(this.context.canvas, 0, 0);
|
|
243
|
+
this.targetContext_.globalAlpha = alpha;
|
|
244
|
+
releaseCanvas(this.context);
|
|
245
|
+
canvasPool.push(this.context.canvas);
|
|
246
|
+
this.context = this.targetContext_;
|
|
247
|
+
this.targetContext_ = null;
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
250
|
|
|
@@ -256,9 +256,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
256
256
|
if (!this.replayGroup_ || !this.getLayer().getDeclutter()) {
|
|
257
257
|
return;
|
|
258
258
|
}
|
|
259
|
-
this.setupCompositionContext_(); //FIXME Check if this works, or if we need to defer something.
|
|
260
259
|
this.renderWorlds(this.replayGroup_, frameState, true);
|
|
261
|
-
this.releaseCompositionContext_();
|
|
262
260
|
}
|
|
263
261
|
|
|
264
262
|
/**
|
|
@@ -270,6 +268,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
270
268
|
return;
|
|
271
269
|
}
|
|
272
270
|
this.replayGroup_.renderDeferred();
|
|
271
|
+
this.resetDrawContext_();
|
|
273
272
|
}
|
|
274
273
|
|
|
275
274
|
/**
|
|
@@ -281,14 +280,14 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
281
280
|
renderFrame(frameState, target) {
|
|
282
281
|
const pixelRatio = frameState.pixelRatio;
|
|
283
282
|
const layerState = frameState.layerStatesArray[frameState.layerIndex];
|
|
283
|
+
this.opacity_ = layerState.opacity;
|
|
284
284
|
|
|
285
285
|
// set forward and inverse pixel transforms
|
|
286
286
|
makeScale(this.pixelTransform, 1 / pixelRatio, 1 / pixelRatio);
|
|
287
287
|
makeInverse(this.inversePixelTransform, this.pixelTransform);
|
|
288
288
|
|
|
289
|
-
|
|
289
|
+
this.useContainer(target, this.pixelTransform, frameState);
|
|
290
290
|
|
|
291
|
-
this.useContainer(target, canvasTransform, this.getBackground(frameState));
|
|
292
291
|
const context = this.context;
|
|
293
292
|
const canvas = context.canvas;
|
|
294
293
|
|
|
@@ -309,21 +308,17 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
309
308
|
if (canvas.width != width || canvas.height != height) {
|
|
310
309
|
canvas.width = width;
|
|
311
310
|
canvas.height = height;
|
|
312
|
-
if (canvas.style.transform !== canvasTransform) {
|
|
313
|
-
canvas.style.transform = canvasTransform;
|
|
314
|
-
}
|
|
315
311
|
} else if (!this.containerReused) {
|
|
316
312
|
context.clearRect(0, 0, width, height);
|
|
317
313
|
}
|
|
318
314
|
|
|
315
|
+
this.setDrawContext_();
|
|
316
|
+
|
|
319
317
|
this.preRender(context, frameState);
|
|
320
318
|
|
|
321
319
|
const viewState = frameState.viewState;
|
|
322
320
|
const projection = viewState.projection;
|
|
323
321
|
|
|
324
|
-
this.opacity_ = layerState.opacity;
|
|
325
|
-
this.setupCompositionContext_();
|
|
326
|
-
|
|
327
322
|
// clipped rendering if layer extent is set
|
|
328
323
|
let clipped = false;
|
|
329
324
|
if (render && layerState.extent && this.clipping) {
|
|
@@ -331,7 +326,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
331
326
|
render = intersectsExtent(layerExtent, frameState.extent);
|
|
332
327
|
clipped = render && !containsExtent(layerExtent, frameState.extent);
|
|
333
328
|
if (clipped) {
|
|
334
|
-
this.clipUnrotated(
|
|
329
|
+
this.clipUnrotated(context, frameState, layerExtent);
|
|
335
330
|
}
|
|
336
331
|
}
|
|
337
332
|
|
|
@@ -344,17 +339,18 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
344
339
|
}
|
|
345
340
|
|
|
346
341
|
if (clipped) {
|
|
347
|
-
|
|
342
|
+
context.restore();
|
|
348
343
|
}
|
|
349
344
|
|
|
350
|
-
this.releaseCompositionContext_();
|
|
351
|
-
|
|
352
345
|
this.postRender(context, frameState);
|
|
353
346
|
|
|
354
347
|
if (this.renderedRotation_ !== viewState.rotation) {
|
|
355
348
|
this.renderedRotation_ = viewState.rotation;
|
|
356
349
|
this.hitDetectionImageData_ = null;
|
|
357
350
|
}
|
|
351
|
+
if (!frameState.declutter) {
|
|
352
|
+
this.resetDrawContext_();
|
|
353
|
+
}
|
|
358
354
|
return this.container;
|
|
359
355
|
}
|
|
360
356
|
|
package/renderer/vector.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["vector.js"],"names":[],"mappings":"AAuCA;;;;GAIG;AACH,uCAJW,OAAO,eAAe,EAAE,WAAW,YACnC,OAAO,eAAe,EAAE,WAAW,GAClC,MAAM,CAIjB;AAED;;;;GAIG;AACH,gDAJW,MAAM,cACN,MAAM,GACL,MAAM,CAKjB;AAED;;;;GAIG;AACH,yCAJW,MAAM,cACN,MAAM,GACL,MAAM,CAIjB;
|
|
1
|
+
{"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["vector.js"],"names":[],"mappings":"AAuCA;;;;GAIG;AACH,uCAJW,OAAO,eAAe,EAAE,WAAW,YACnC,OAAO,eAAe,EAAE,WAAW,GAClC,MAAM,CAIjB;AAED;;;;GAIG;AACH,gDAJW,MAAM,cACN,MAAM,GACL,MAAM,CAKjB;AAED;;;;GAIG;AACH,yCAJW,MAAM,cACN,MAAM,GACL,MAAM,CAIjB;AAyBD;;;;;;;;;;GAUG;AACH,2CAVW,OAAO,kCAAkC,EAAE,OAAO,WAClD,OAAO,eAAe,EAAE,WAAW,SACnC,OAAO,mBAAmB,EAAE,OAAO,oBACnC,MAAM,mBACG,OAAO,oBAAoB,EAAE,OAAO,KAAG,IAAI,gIAInD,OAAO,CA+ClB;;;;;;;;wCArIqB,OAAO,eAAe,EAAE,WAAW,QAAE,OAAO,mBAAmB,EAAE,OAAO,CAAC,OAAO,kBAAkB,EAAE,OAAO,CAAC,QAAE,OAAO,2BAA2B,EAAE,OAAO,KAAG,CAAC"}
|
package/renderer/vector.js
CHANGED
|
@@ -70,14 +70,15 @@ export function getTolerance(resolution, pixelRatio) {
|
|
|
70
70
|
* @param {import("../geom/Circle.js").default} geometry Geometry.
|
|
71
71
|
* @param {import("../style/Style.js").default} style Style.
|
|
72
72
|
* @param {import("../Feature.js").default} feature Feature.
|
|
73
|
+
* @param {number} [index] Render order index.
|
|
73
74
|
*/
|
|
74
|
-
function renderCircleGeometry(builderGroup, geometry, style, feature) {
|
|
75
|
+
function renderCircleGeometry(builderGroup, geometry, style, feature, index) {
|
|
75
76
|
const fillStyle = style.getFill();
|
|
76
77
|
const strokeStyle = style.getStroke();
|
|
77
78
|
if (fillStyle || strokeStyle) {
|
|
78
79
|
const circleReplay = builderGroup.getBuilder(style.getZIndex(), 'Circle');
|
|
79
80
|
circleReplay.setFillStrokeStyle(fillStyle, strokeStyle);
|
|
80
|
-
circleReplay.drawCircle(geometry, feature);
|
|
81
|
+
circleReplay.drawCircle(geometry, feature, index);
|
|
81
82
|
}
|
|
82
83
|
const textStyle = style.getText();
|
|
83
84
|
if (textStyle && textStyle.getText()) {
|
package/source/Raster.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Raster.d.ts","sourceRoot":"","sources":["Raster.js"],"names":[],"mappings":"AA4BA;;;;;GAKG;AACH,mCALW,iBAAiB,SACjB,MAAM,UACN,MAAM,GACL,SAAS,CAapB;AAgJD;;GAEG;AAEH;;;;;GAKG;AAEH;;;;;;;GAOG;AAEH;;;GAGG;AACH;IACE;;OAEG;IACH,oBAFW,gBAAgB,EAmD1B;IA9CC,mBAAkC;IAwBlC,mBAAuB;IAEvB;;;OAGG;IACH,eAAgB;IAEhB,wBAA+C;IAC/C,iBAAiB;IAEjB;;;OAGG;IACH,oBAAqB;IAErB;;;OAGG;IACH,aAAgB;IAGlB;;;;;;;;OAQG;IACH,gBAPW,MAAM,SAAS,CAAC,8BAGP,KAAK,QAAE,SAAS,gBAAW,IAAI,QAWlD;IAED;;;OAGG;IACH,cAFW,GAAG,QAOb;IAED;;OAEG;IACH,kBA+CC;IAED;;;;OAIG;IACH,wBAHW,MAAM,SACN,YAAY,QAWtB;IAED;;;OAGG;IACH,oBA2BC;CAWF;AA2CD;;;GAGG;AAEH;;GAEG;AAEH;;;;GAIG;AACH;IACE;;;;;OAKG;IACH,kBALW,MAAM,cACN,OAAO,WAAW,EAAE,UAAU,QAC9B,MAAO,UAAa,EA2B9B;IArBC;;;;OAIG;IACH,QAHU,OAAO,cAAc,EAAE,MAAM,CAGR;IAE/B;;;;OAIG;IACH,YAHU,MAAM,CAGyD;IAEzE;;;;;OAKG;IACH,UAAgB;CAEnB;;;;;;aA/ba,MAAM,WAAW,CAAC;;;;;;;;cAElB,OAAO;;;;WACP,MAAM;;;;YACN,MAAM;;;;;;;;iCAyIE,KAAK,QAAE,SAAS,QAAE,CAAC,MAAO,UAAa,CAAC,KAAG,IAAI;;;;;;;;;YAMvD,MAAM,SAAS,CAAC;;;;cAChB,WAAW;;;;;;aAKX,MAAM;;;;eACN,SAAS;;;;;;;;;;WAET,MAAM;;;;;;;;;;;;;;;;;;;;;+BA2NE,CAAC,MAAM,MAAM,MAAM,CAAC,CAAC,GAAC,MAAM,SAAS,CAAC,CAAC,gBAC5D,CAAO,MAAM,MAAM,CAAC,GAAC,SAAS,CAAC;;;;kCA0BnB,OAAO,GAAG,OAAO;qCAKjB,OAAO,YAAY,EAAE,qBAAqB,GAAC,kBAAkB,GAAC,iBAAiB;;;;;;aA4C9E,MAAM,OAAO,aAAa,EAAE,OAAO,GAAC,OAAO,mBAAmB,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAuBzE,OAAO,eAAe,EAAE,WAAW,CAAC,OAAO,eAAe,EAAE,UAAU,EAAE,OAAO,oBAAoB,EAAE,OAAO,EAAE,MAAM,CAAC,GACjI,OAAW,eAAe,EAAE,WAAW,CAAC,OAAO,oBAAoB,EAAE,KAAK,EAAE,OAAO,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,GACpH,OAAW,eAAe,EAAE,WAAW,CAAC,OAAO,YAAY,EAAE,qBAAqB,EAAE,OAAO,YAAY,EAAE,gBAAgB,EAAE,MAAM,CAAC,GAClI,OAAW,eAAe,EAAE,WAAW,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,CAAC,GAC1F,OAAW,eAAe,EAAE,mBAAmB,CAAC,OAAO,eAAe,EAAE,UAAU,GAAC,OAAO,oBAAoB,EAAE,KAAK,GAC9G,sBAAsB,EAAE,MAAM,CAAC;uBA7gBhB,kBAAkB;kBACvB,oBAAoB;AA8etC;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;;GAQG;AACH;IACE;;OAEG;IACH,qBAFW,OAAO,
|
|
1
|
+
{"version":3,"file":"Raster.d.ts","sourceRoot":"","sources":["Raster.js"],"names":[],"mappings":"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"}
|
package/source/Raster.js
CHANGED
package/transform.d.ts
CHANGED
|
@@ -9,6 +9,12 @@ export function create(): number[];
|
|
|
9
9
|
* @return {!Transform} Transform.
|
|
10
10
|
*/
|
|
11
11
|
export function reset(transform: number[]): number[];
|
|
12
|
+
/**
|
|
13
|
+
* @param {!Transform} transform1 Transform 1.
|
|
14
|
+
* @param {!Transform} transform2 Transform 2.
|
|
15
|
+
* @return {boolean} Transform 1 and 2 are pixel equal.
|
|
16
|
+
*/
|
|
17
|
+
export function equals(transform1: number[], transform2: number[]): boolean;
|
|
12
18
|
/**
|
|
13
19
|
* Multiply the underlying matrices of two transforms and return the result in
|
|
14
20
|
* the first transform.
|
package/transform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["transform.js"],"names":[],"mappings":"AA8BA;;;GAGG;AACH,mCAEC;AAED;;;;GAIG;AACH,qDAEC;AAED;;;;;;GAMG;AACH,+EAsBC;AAED;;;;;;;;;;GAUG;AACH,4CARW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,YAWhB;AAED;;;;;GAKG;AACH,mFAQC;AAED;;;;;;;;GAQG;AACH,uDAJW,OAAO,iBAAiB,EAAE,UAAU,GAAC,OAAO,YAAY,EAAE,KAAK,GAC9D,OAAO,iBAAiB,EAAE,UAAU,GAAC,OAAO,YAAY,EAAE,KAAK,CAS1E;AAED;;;;;GAKG;AACH,mDAHW,MAAM,YAOhB;AAED;;;;;;GAMG;AACH,8CAJW,MAAM,KACN,MAAM,YAKhB;AAED;;;;;;GAMG;AACH,+CAJW,MAAM,KACN,MAAM,YAKhB;AAED;;;;;;GAMG;AACH,mDAJW,MAAM,MACN,MAAM,YAKhB;AAED;;;;;;;;;;;;GAYG;AACH,kDATW,MAAM,OACN,MAAM,MACN,MAAM,MACN,MAAM,SACN,MAAM,OACN,MAAM,OACN,MAAM,YAahB;AAED;;;;;;;;;;;;;GAaG;AACH,yCAVW,MAAM,OACN,MAAM,MACN,MAAM,MACN,MAAM,SACN,MAAM,OACN,MAAM,OACN,MAAM,GACL,MAAM,CAKjB;AAED;;;;GAIG;AACH,mDAEC;AAED;;;;;;GAMG;AACH,0EAmBC;AAED;;;;GAIG;AACH,4CAFY,MAAM,CAIjB;
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["transform.js"],"names":[],"mappings":"AA8BA;;;GAGG;AACH,mCAEC;AAED;;;;GAIG;AACH,qDAEC;AAED;;;;GAIG;AACH,oEAFY,OAAO,CAelB;AAED;;;;;;GAMG;AACH,+EAsBC;AAED;;;;;;;;;;GAUG;AACH,4CARW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,YAWhB;AAED;;;;;GAKG;AACH,mFAQC;AAED;;;;;;;;GAQG;AACH,uDAJW,OAAO,iBAAiB,EAAE,UAAU,GAAC,OAAO,YAAY,EAAE,KAAK,GAC9D,OAAO,iBAAiB,EAAE,UAAU,GAAC,OAAO,YAAY,EAAE,KAAK,CAS1E;AAED;;;;;GAKG;AACH,mDAHW,MAAM,YAOhB;AAED;;;;;;GAMG;AACH,8CAJW,MAAM,KACN,MAAM,YAKhB;AAED;;;;;;GAMG;AACH,+CAJW,MAAM,KACN,MAAM,YAKhB;AAED;;;;;;GAMG;AACH,mDAJW,MAAM,MACN,MAAM,YAKhB;AAED;;;;;;;;;;;;GAYG;AACH,kDATW,MAAM,OACN,MAAM,MACN,MAAM,MACN,MAAM,SACN,MAAM,OACN,MAAM,OACN,MAAM,YAahB;AAED;;;;;;;;;;;;;GAaG;AACH,yCAVW,MAAM,OACN,MAAM,MACN,MAAM,MACN,MAAM,SACN,MAAM,OACN,MAAM,OACN,MAAM,GACL,MAAM,CAKjB;AAED;;;;GAIG;AACH,mDAEC;AAED;;;;;;GAMG;AACH,0EAmBC;AAED;;;;GAIG;AACH,4CAFY,MAAM,CAIjB;AAED;;;;;GAKG;AACH,yCAFY,MAAM,CAIjB;;;;;wBA9Ra,MAAM,MAAM,CAAC"}
|
package/transform.js
CHANGED
|
@@ -45,6 +45,26 @@ export function reset(transform) {
|
|
|
45
45
|
return set(transform, 1, 0, 0, 1, 0, 0);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
/**
|
|
49
|
+
* @param {!Transform} transform1 Transform 1.
|
|
50
|
+
* @param {!Transform} transform2 Transform 2.
|
|
51
|
+
* @return {boolean} Transform 1 and 2 are pixel equal.
|
|
52
|
+
*/
|
|
53
|
+
export function equals(transform1, transform2) {
|
|
54
|
+
if (transform1 === transform2) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
const tolerance = 1e-6;
|
|
58
|
+
return (
|
|
59
|
+
Math.abs(transform1[0] - transform2[0]) < tolerance &&
|
|
60
|
+
Math.abs(transform1[1] - transform2[1]) < tolerance &&
|
|
61
|
+
Math.abs(transform1[2] - transform2[2]) < tolerance &&
|
|
62
|
+
Math.abs(transform1[3] - transform2[3]) < tolerance &&
|
|
63
|
+
Math.abs(transform1[4] - transform2[4]) < tolerance &&
|
|
64
|
+
Math.abs(transform1[5] - transform2[5]) < tolerance
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
|
|
48
68
|
/**
|
|
49
69
|
* Multiply the underlying matrices of two transforms and return the result in
|
|
50
70
|
* the first transform.
|
|
@@ -264,11 +284,6 @@ export function determinant(mat) {
|
|
|
264
284
|
return mat[0] * mat[3] - mat[1] * mat[2];
|
|
265
285
|
}
|
|
266
286
|
|
|
267
|
-
/**
|
|
268
|
-
* @type {Array}
|
|
269
|
-
*/
|
|
270
|
-
const matrixPrecision = [1e6, 1e6, 1e6, 1e6, 2, 2];
|
|
271
|
-
|
|
272
287
|
/**
|
|
273
288
|
* A rounded string version of the transform. This can be used
|
|
274
289
|
* for CSS transforms.
|
|
@@ -276,14 +291,5 @@ const matrixPrecision = [1e6, 1e6, 1e6, 1e6, 2, 2];
|
|
|
276
291
|
* @return {string} The transform as a string.
|
|
277
292
|
*/
|
|
278
293
|
export function toString(mat) {
|
|
279
|
-
|
|
280
|
-
'matrix(' +
|
|
281
|
-
mat
|
|
282
|
-
.map(
|
|
283
|
-
(value, i) =>
|
|
284
|
-
Math.round(value * matrixPrecision[i]) / matrixPrecision[i],
|
|
285
|
-
)
|
|
286
|
-
.join(', ') +
|
|
287
|
-
')';
|
|
288
|
-
return transformString;
|
|
294
|
+
return 'matrix(' + mat.join(', ') + ')';
|
|
289
295
|
}
|
package/util.js
CHANGED