From 5a86e1aaa4ccef1a655474d660b0d18fb27a018b Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Thu, 30 Jul 2020 22:38:39 +0200 Subject: [PATCH] Add rendering test for rotated image vector clipping with intersection --- .../expected.png | Bin 0 -> 3783 bytes .../main.js | 72 ++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 rendering/cases/layer-vectorimage-extent-rotation-intersection/expected.png create mode 100644 rendering/cases/layer-vectorimage-extent-rotation-intersection/main.js diff --git a/rendering/cases/layer-vectorimage-extent-rotation-intersection/expected.png b/rendering/cases/layer-vectorimage-extent-rotation-intersection/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..d2554be733d1b6a470d4500290317f6ca8627261 GIT binary patch literal 3783 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 SQ-l9Z!B+3>UNxIpC;uNbk*Y}m literal 0 HcmV?d00001 diff --git a/rendering/cases/layer-vectorimage-extent-rotation-intersection/main.js b/rendering/cases/layer-vectorimage-extent-rotation-intersection/main.js new file mode 100644 index 0000000000..1aeed82dbb --- /dev/null +++ b/rendering/cases/layer-vectorimage-extent-rotation-intersection/main.js @@ -0,0 +1,72 @@ +import Feature from '../../../src/ol/Feature.js'; +import Map from '../../../src/ol/Map.js'; +import Point from '../../../src/ol/geom/Point.js'; +import VectorImageLayer from '../../../src/ol/layer/VectorImage.js'; +import VectorSource from '../../../src/ol/source/Vector.js'; +import View from '../../../src/ol/View.js'; +import {Fill, RegularShape, Stroke, Style} from '../../../src/ol/style.js'; +import {fromExtent} from '../../../src/ol/geom/Polygon.js'; + +const extent = [ + 1900e3 - 100000, + 6300e3 - 100000, + 1900e3 + 100000, + 6300e3 + 100000, +]; + +const pt1 = new Feature({ + name: 'point', + geometry: new Point([1900e3, 6300e3]), +}); +pt1.setStyle( + new Style({ + image: new RegularShape({ + points: 4, + radius: 20, + fill: new Fill({ + color: 'fuchsia', + }), + }), + }) +); + +const border = new Feature({ + name: 'extent border', + geometry: fromExtent(extent), +}); + +new Map({ + layers: [ + new VectorImageLayer({ + style: new Style({ + stroke: new Stroke({ + color: 'yellow', + width: 20, + }), + }), + source: new VectorSource({ + features: [border], + }), + }), + new VectorImageLayer({ + style: new Style({ + stroke: new Stroke({ + color: 'green', + width: 20, + }), + }), + source: new VectorSource({ + features: [pt1, border], + }), + extent: extent, + }), + ], + target: 'map', + view: new View({ + center: [1900e3, 6300e3], + zoom: 7, + rotation: Math.PI / 4, + }), +}); + +render();