From afc64258afeb1e2c2a7fed25aa742316b2e0ff23 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Mon, 12 Nov 2018 15:56:16 +0100 Subject: [PATCH] Support for rotation --- .../linestring-style-rotation/expected.png | Bin 0 -> 15757 bytes .../cases/linestring-style-rotation/main.js | 70 ++++++++++++++++++ src/ol/renderer/Composite.js | 18 +++-- src/ol/renderer/canvas/Layer.js | 21 ++++++ src/ol/renderer/canvas/VectorLayer.js | 19 ++--- 5 files changed, 110 insertions(+), 18 deletions(-) create mode 100644 rendering/cases/linestring-style-rotation/expected.png create mode 100644 rendering/cases/linestring-style-rotation/main.js diff --git a/rendering/cases/linestring-style-rotation/expected.png b/rendering/cases/linestring-style-rotation/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..795e69ffb32a6878f4261a295e872f52c3351a86 GIT binary patch literal 15757 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 projectionExtent[2]) { ++world; offsetX = worldWidth * world; - transform = this.getTransform(frameState, offsetX); + transform = this.getRenderTransform(frameState, width, height, offsetX); replayGroup.replay(context, transform, rotation, skippedFeatureUids, snapToPixel); startX -= worldWidth; } } - // TODO: deal with rotation (this should not be necessary) - if (rotation) { - rotateAtOffset(context, rotation, width / 2, height / 2); - } - if (this.getLayer().hasListener(RenderEventType.RENDER)) { this.dispatchRenderEvent(context, frameState, transform); }