@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
41 lines (37 loc) • 1.51 kB
JavaScript
import Vector2 from "../../../../core/geom/Vector2.js";
import AABB2 from "../../../../core/geom/2d/aabb/AABB2.js";
import {DragHandler} from "./DragHandler.js";
import {position_canvas_to_curve} from "../draw/position_canvas_to_curve.js";
/**
*
* @param {CanvasView} graph
* @param {AABB2} frame
* @param {Vector2} margin
* @param {function} fnUpdate
* @returns {DragHandler}
*/
export function createPanTool({
graph,
frame,
margin,
fnUpdate,
}) {
return new DragHandler({
dragStart(position) {
// console.log("start pan");
},
drag(position,delta) {
// console.log("panning");
const newPosition = position.clone();
const lastPosition = position.clone().add(delta);
const newCord = position_canvas_to_curve(graph.size, frame, margin, newPosition.x, newPosition.y);
const lastCord = position_canvas_to_curve(graph.size, frame, margin, lastPosition.x, lastPosition.y);
const deltaCord = newCord.clone().sub(lastCord);
frame.move(deltaCord.x,deltaCord.y);
fnUpdate();
},
dragEnd() {
// console.log("end pan");
}
});
}