Added check for rotation by narrow distance between touch points.
This commit is contained in:
parent
ff2c15a505
commit
68c98d1293
@ -131,15 +131,17 @@ export class InteractionDelta {
|
||||
* @param {*} rotate
|
||||
* @param {*} about
|
||||
* @param {*} number - number of involved pointer
|
||||
* @param {*} distance - distance of farthests touch points
|
||||
* @memberof InteractionDelta
|
||||
*/
|
||||
constructor(x, y, zoom, rotate, about, number) {
|
||||
constructor(x, y, zoom, rotate, about, number, distance) {
|
||||
this.x = x
|
||||
this.y = y
|
||||
this.zoom = zoom
|
||||
this.rotate = rotate
|
||||
this.about = about
|
||||
this.number = number
|
||||
this.distance = distance
|
||||
}
|
||||
|
||||
toString() {
|
||||
@ -235,7 +237,8 @@ export class InteractionPoints {
|
||||
zoom,
|
||||
alpha,
|
||||
cm,
|
||||
csize
|
||||
csize,
|
||||
distance2
|
||||
)
|
||||
} else if (
|
||||
csize == 1 &&
|
||||
|
@ -286,6 +286,7 @@ export class AbstractScatter extends Throwable {
|
||||
scaleCloseThreshold = 0.1,
|
||||
scaleCloseBuffer = 0.05,
|
||||
maxRotation = Angle.degree2radian(5),
|
||||
minRotationDistance = 200,
|
||||
useLowPassFilter = true
|
||||
} = {}) {
|
||||
if (rotationDegrees != null && rotation != null) {
|
||||
@ -331,6 +332,7 @@ export class AbstractScatter extends Throwable {
|
||||
this.mouseZoomFactor = mouseZoomFactor
|
||||
this.autoBringToFront = autoBringToFront
|
||||
this.useLowPassFilter = useLowPassFilter
|
||||
this.minRotationDistance = minRotationDistance
|
||||
if (useLowPassFilter) {
|
||||
this.rotateLPF = new LowPassFilter()
|
||||
this.zoomLPF = new LowPassFilter()
|
||||
@ -387,7 +389,9 @@ export class AbstractScatter extends Throwable {
|
||||
if (this.useLowPassFilter) {
|
||||
rotate = this.rotateLPF.next(rotate)
|
||||
zoom = this.zoomLPF.next(zoom)
|
||||
// console.log({rotate, zoom})
|
||||
if (delta.distance < this.minRotationDistance) {
|
||||
rotate = 0
|
||||
}
|
||||
}
|
||||
this.transform(delta, zoom, rotate, delta.about)
|
||||
if (zoom != 1) this.interactionAnchor = delta.about
|
||||
|
Loading…
Reference in New Issue
Block a user