Always drag using pointer location, not vertex location
This commit is contained in:
@@ -1163,8 +1163,8 @@ class Modify extends PointerInteraction {
|
|||||||
const vertexSegments = {};
|
const vertexSegments = {};
|
||||||
vertexSegments[getUid(closestSegment)] = true;
|
vertexSegments[getUid(closestSegment)] = true;
|
||||||
|
|
||||||
this.delta_[0] = hitPointGeometry ? vertex[0] - pixelCoordinate[0] : 0;
|
this.delta_[0] = vertex[0] - pixelCoordinate[0];
|
||||||
this.delta_[1] = hitPointGeometry ? vertex[1] - pixelCoordinate[1] : 0;
|
this.delta_[1] = vertex[1] - pixelCoordinate[1];
|
||||||
if (
|
if (
|
||||||
node.geometry.getType() === GeometryType.CIRCLE &&
|
node.geometry.getType() === GeometryType.CIRCLE &&
|
||||||
node.index === CIRCLE_CIRCUMFERENCE_INDEX
|
node.index === CIRCLE_CIRCUMFERENCE_INDEX
|
||||||
|
|||||||
@@ -498,7 +498,7 @@ describe('ol.interaction.Modify', function () {
|
|||||||
simulateEvent('pointerdrag', 30, -5, null, 0);
|
simulateEvent('pointerdrag', 30, -5, null, 0);
|
||||||
simulateEvent('pointerup', 30, -5, null, 0);
|
simulateEvent('pointerup', 30, -5, null, 0);
|
||||||
|
|
||||||
expect(circleFeature.getGeometry().getRadius()).to.equal(25);
|
expect(circleFeature.getGeometry().getRadius()).to.roughlyEqual(25, 0.1);
|
||||||
expect(circleFeature.getGeometry().getCenter()).to.eql([5, 5]);
|
expect(circleFeature.getGeometry().getCenter()).to.eql([5, 5]);
|
||||||
|
|
||||||
// Increase radius along y axis
|
// Increase radius along y axis
|
||||||
@@ -508,7 +508,7 @@ describe('ol.interaction.Modify', function () {
|
|||||||
simulateEvent('pointerdrag', 5, -35, null, 0);
|
simulateEvent('pointerdrag', 5, -35, null, 0);
|
||||||
simulateEvent('pointerup', 5, -35, null, 0);
|
simulateEvent('pointerup', 5, -35, null, 0);
|
||||||
|
|
||||||
expect(circleFeature.getGeometry().getRadius()).to.equal(30);
|
expect(circleFeature.getGeometry().getRadius()).to.roughlyEqual(30, 0.1);
|
||||||
expect(circleFeature.getGeometry().getCenter()).to.eql([5, 5]);
|
expect(circleFeature.getGeometry().getCenter()).to.eql([5, 5]);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -553,7 +553,7 @@ describe('ol.interaction.Modify', function () {
|
|||||||
.getGeometry()
|
.getGeometry()
|
||||||
.clone()
|
.clone()
|
||||||
.transform(userProjection, viewProjection);
|
.transform(userProjection, viewProjection);
|
||||||
expect(geometry2.getRadius()).to.roughlyEqual(25, 1e-9);
|
expect(geometry2.getRadius()).to.roughlyEqual(25, 0.1);
|
||||||
expect(geometry2.getCenter()).to.eql([5, 5]);
|
expect(geometry2.getCenter()).to.eql([5, 5]);
|
||||||
|
|
||||||
// Increase radius along y axis
|
// Increase radius along y axis
|
||||||
@@ -567,7 +567,7 @@ describe('ol.interaction.Modify', function () {
|
|||||||
.getGeometry()
|
.getGeometry()
|
||||||
.clone()
|
.clone()
|
||||||
.transform(userProjection, viewProjection);
|
.transform(userProjection, viewProjection);
|
||||||
expect(geometry3.getRadius()).to.roughlyEqual(30, 1e-9);
|
expect(geometry3.getRadius()).to.roughlyEqual(30, 0.1);
|
||||||
expect(geometry3.getCenter()).to.eql([5, 5]);
|
expect(geometry3.getCenter()).to.eql([5, 5]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -1084,7 +1084,7 @@ describe('ol.interaction.Modify', function () {
|
|||||||
simulateEvent('pointerdrag', 30, -5, null, 0);
|
simulateEvent('pointerdrag', 30, -5, null, 0);
|
||||||
simulateEvent('pointerup', 30, -5, null, 0);
|
simulateEvent('pointerup', 30, -5, null, 0);
|
||||||
|
|
||||||
expect(circleFeature.getGeometry().getRadius()).to.equal(25);
|
expect(circleFeature.getGeometry().getRadius()).to.roughlyEqual(25, 1e9);
|
||||||
expect(circleFeature.getGeometry().getCenter()).to.eql([5, 5]);
|
expect(circleFeature.getGeometry().getCenter()).to.eql([5, 5]);
|
||||||
|
|
||||||
// Increase radius along y axis
|
// Increase radius along y axis
|
||||||
|
|||||||
Reference in New Issue
Block a user