Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
left,
top,
origin,
offsetMatrix,
targetMatrix,
transformOrigin,
} = moveable.state;
const n = is3d ? 4 : 3;
datas.is3d = is3d;
datas.matrix = matrix;
datas.targetMatrix = targetMatrix;
datas.beforeMatrix = beforeMatrix;
datas.offsetMatrix = offsetMatrix;
datas.transformOrigin = transformOrigin;
datas.inverseMatrix = invert(matrix, n);
datas.inverseBeforeMatrix = invert(beforeMatrix, n);
datas.absoluteOrigin = convertPositionMatrix(plus([left, top], origin), n);
datas.startDragBeforeDist = caculate(datas.inverseBeforeMatrix, datas.absoluteOrigin, n);
datas.startDragDist = caculate(datas.inverseMatrix, datas.absoluteOrigin, n);
}
export function getDragDist({ datas, distX, distY }: any, isBefore?: boolean) {
left: prevLeft,
top: prevTop,
width: prevWidth,
height: prevHeight,
} = caculateRect(mat, width, height, n);
const posOrigin = caculatePosition(mat, origin, n);
const prevOrigin = minus(posOrigin, [prevLeft, prevTop]);
const rectOrigin = [
rectLeft + prevOrigin[0] * rectWidth / prevWidth,
rectTop + prevOrigin[1] * rectHeight / prevHeight,
];
const offset = [0, 0];
let count = 0;
while (++count < 10) {
const inverseBeforeMatrix = invert(beforeMatrix, n);
[offset[0], offset[1]] = minus(
caculatePosition(inverseBeforeMatrix, rectOrigin, n),
caculatePosition(inverseBeforeMatrix, posOrigin, n),
);
const mat2 = multiplies(
n,
beforeMatrix,
createOriginMatrix(offset, n),
absoluteMatrix,
);
const {
left: nextLeft,
top: nextTop,
} = caculateRect(mat2, width, height, n);
const distLeft = nextLeft - rectLeft;
const distTop = nextTop - rectTop;
top,
origin,
offsetMatrix,
targetMatrix,
transformOrigin,
} = moveable.state;
const n = is3d ? 4 : 3;
datas.is3d = is3d;
datas.matrix = matrix;
datas.targetMatrix = targetMatrix;
datas.beforeMatrix = beforeMatrix;
datas.offsetMatrix = offsetMatrix;
datas.transformOrigin = transformOrigin;
datas.inverseMatrix = invert(matrix, n);
datas.inverseBeforeMatrix = invert(beforeMatrix, n);
datas.absoluteOrigin = convertPositionMatrix(plus([left, top], origin), n);
datas.startDragBeforeDist = caculate(datas.inverseBeforeMatrix, datas.absoluteOrigin, n);
datas.startDragDist = caculate(datas.inverseMatrix, datas.absoluteOrigin, n);
}
export function getDragDist({ datas, distX, distY }: any, isBefore?: boolean) {
if (!direction || !target) {
return false;
}
const state = moveable.state;
const {
transformOrigin, is3d,
targetTransform, targetMatrix,
width, height,
left, top,
} = state;
datas.datas = {};
datas.targetTransform = targetTransform;
datas.warpTargetMatrix = is3d ? targetMatrix : convertDimension(targetMatrix, 3, 4);
datas.targetInverseMatrix = ignoreDimension(invert(datas.warpTargetMatrix, 4), 3, 4);
datas.direction = direction;
datas.left = left;
datas.top = top;
setDragStart(moveable, { datas });
datas.poses = [
[0, 0],
[width, 0],
[0, height],
[width, height],
].map((p, i) => minus(p, transformOrigin));
datas.nextPoses = datas.poses.map(([x, y]: number[]) => caculate(datas.warpTargetMatrix, [x, y, 0, 1], 4));
datas.startMatrix = createIdentityMatrix(4);
datas.prevMatrix = createIdentityMatrix(4);
datas.absolutePoses = getAbsolutePosesByState(state);