Generalized the min rotation to min interaction distance.

This commit is contained in:
2019-07-19 15:21:47 +02:00
parent bb0dcf2d9d
commit dcd5acb4d1
3 changed files with 21 additions and 18 deletions
+7 -6
View File
@@ -286,7 +286,7 @@ export class AbstractScatter extends Throwable {
scaleCloseThreshold = 0.1,
scaleCloseBuffer = 0.05,
maxRotation = Angle.degree2radian(5),
minRotationDistance = 0,
minInteractionDistance = 0,
useLowPassFilter = false
} = {}) {
if (rotationDegrees != null && rotation != null) {
@@ -332,7 +332,7 @@ export class AbstractScatter extends Throwable {
this.mouseZoomFactor = mouseZoomFactor
this.autoBringToFront = autoBringToFront
this.useLowPassFilter = useLowPassFilter
this.minRotationDistance = minRotationDistance
this.minInteractionDistance = minInteractionDistance
if (useLowPassFilter) {
this.rotateLPF = new LowPassFilter()
this.zoomLPF = new LowPassFilter()
@@ -390,9 +390,10 @@ export class AbstractScatter extends Throwable {
rotate = this.rotateLPF.next(rotate)
zoom = this.zoomLPF.next(zoom)
}
if (delta.distance < this.minRotationDistance) {
let ratio = delta.distance / this.minRotationDistance
if (delta.distance < this.minInteractionDistance) {
let ratio = delta.distance / this.minInteractionDistance
rotate *= ratio
zoom *= ratio
}
this.transform(delta, zoom, rotate, delta.about)
@@ -1114,7 +1115,7 @@ export class DOMScatter extends AbstractScatter {
scaleCloseBuffer = 0.05,
useLowPassFilter = false,
maxRotation = Angle.degree2radian(15),
minRotationDistance = 200
minInteractionDistance = 200
} = {}
) {
super({
@@ -1141,7 +1142,7 @@ export class DOMScatter extends AbstractScatter {
onClose,
useLowPassFilter,
maxRotation,
minRotationDistance
minInteractionDistance
})
if (container == null || width == null || height == null) {
throw new Error('Invalid value: null')