From 2989c8424886848dab360d160a58da710079e731 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Thu, 11 Apr 2019 16:04:25 +0200 Subject: [PATCH] Implement translate function for circle geometry --- src/ol/geom/Circle.js | 13 ++++++++++++- test/spec/ol/geom/circle.test.js | 10 ++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/ol/geom/Circle.js b/src/ol/geom/Circle.js index 3b74d5de72..25010f9ed3 100644 --- a/src/ol/geom/Circle.js +++ b/src/ol/geom/Circle.js @@ -5,7 +5,7 @@ import {createOrUpdate, forEachCorner, intersects} from '../extent.js'; import GeometryType from './GeometryType.js'; import SimpleGeometry from './SimpleGeometry.js'; import {deflateCoordinate} from './flat/deflate.js'; -import {rotate} from './flat/transform.js'; +import {rotate, translate} from './flat/transform.js'; /** @@ -226,6 +226,17 @@ class Circle extends SimpleGeometry { this.changed(); } + /** + * @inheritDoc + * @api + */ + translate(deltaX, deltaY) { + const center = this.getCenter(); + const stride = this.getStride(); + this.setCenter(translate(center, 0, center.length, stride, deltaX, deltaY, center)); + this.changed(); + } + } diff --git a/test/spec/ol/geom/circle.test.js b/test/spec/ol/geom/circle.test.js index 1695f37736..23e1175a46 100644 --- a/test/spec/ol/geom/circle.test.js +++ b/test/spec/ol/geom/circle.test.js @@ -281,6 +281,16 @@ describe('ol.geom.Circle', function() { expect(circle.getExtent()).to.eql(extent); }); }); + + describe('#translate', function() { + + it('translates the circle', function() { + circle.setCenter([1, 1]); + circle.translate(5, 10); + expect(circle.getCenter()).to.eql([6, 11]); + expect(circle.getExtent()).to.eql([5, 10, 7, 12]); + }); + }); }); });