mirror of
https://github.com/Doodle3D/Doodle3D-Core.git
synced 2025-04-19 17:36:25 +02:00
19 lines
533 B
JavaScript
19 lines
533 B
JavaScript
import update from 'react-addons-update';
|
|
import constrainMatrix from './constrainMatrix.js';
|
|
|
|
export default function d2PanReducer(state, action) {
|
|
let { canvasMatrix } = state.d2;
|
|
const matrix = action.screenMatrixContainer.normalize().inverseMatrix();
|
|
const delta = action.position.subtract(action.previousPosition).applyMatrix(matrix);
|
|
|
|
canvasMatrix = canvasMatrix.translate(delta.x, delta.y);
|
|
|
|
constrainMatrix(canvasMatrix);
|
|
|
|
return update(state, {
|
|
d2: {
|
|
canvasMatrix: { $set: canvasMatrix }
|
|
}
|
|
});
|
|
}
|