Implement translate function for circle geometry
This commit is contained in:
+12
-1
@@ -5,7 +5,7 @@ import {createOrUpdate, forEachCorner, intersects} from '../extent.js';
|
|||||||
import GeometryType from './GeometryType.js';
|
import GeometryType from './GeometryType.js';
|
||||||
import SimpleGeometry from './SimpleGeometry.js';
|
import SimpleGeometry from './SimpleGeometry.js';
|
||||||
import {deflateCoordinate} from './flat/deflate.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();
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -281,6 +281,16 @@ describe('ol.geom.Circle', function() {
|
|||||||
expect(circle.getExtent()).to.eql(extent);
|
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]);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user