-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Description
/**
*
* Center the view on the point [targetX, targetY]. Apply a zoom if provided
*
* @param targetX
* @param targetY
* @param zoom
* @param normalized
*/
goTo(targetX: number, targetY: number, zoom : number, normalized = true) {
if (!normalized)
var { x, y } = this.viewer.normalize({ x, y });
else {
var { x, y } = { x: targetX, y: targetY };
}
if(zoom){
this.viewer.s = zoom;
this.viewer.stage.scale.set(this.viewer.s * this.viewer.rw / this.viewer.imageWidth,
this.viewer.s * this.viewer.rh / this.viewer.imageHeight);
}
let centerXOffset = (this.viewer.canvasWidth) / 2 / this.viewer.s;
let centerYOffset = (this.viewer.canvasHeight) / 2 / this.viewer.s;
this.viewer.rx = centerXOffset + (((x * this.viewer.rw * this.viewer.s) + this.viewer.sx) / this.viewer.s * (-1));
this.viewer.ry = centerYOffset + (((y * this.viewer.rh * this.viewer.s) + this.viewer.sy) / this.viewer.s * (-1));
this.viewer.stage.position.set(this.viewer.rx * this.viewer.s + this.viewer.sx, this.viewer.ry * this.viewer.s + this.viewer.sy);
this.triggerOnZoom();
this.computeHitArea();
}
Metadata
Metadata
Assignees
Labels
No labels