All files / src/utils transformMatrix.ts

23.53% Statements 4/17
25% Branches 1/4
50% Functions 1/2
30.77% Lines 4/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45  1x         52905x 52905x                                 1x                                        
// tslint:disable-next-line: export-name
export const getTransformedPosition = (
  x: number,
  y: number,
  transformMatrix?: [number, number, number, number, number, number]
) => {
  Eif (!transformMatrix) {
    return {
      x,
      y
    };
  }
 
  const realX =
    transformMatrix[0] * x + transformMatrix[2] * y + transformMatrix[4];
  const realY =
    transformMatrix[1] * x + transformMatrix[3] * y + transformMatrix[5];
 
  return {
    x: realX,
    y: realY
  };
};
 
export const getTransformedDxDy = (
  dx: number,
  dy: number,
  transformMatrix?: [number, number, number, number, number, number]
): { dx: number; dy: number } => {
  if (!transformMatrix) {
    return {
      dx,
      dy
    };
  }
 
  const [a, b, c, d] = transformMatrix;
  const realDx = (d * dx) / (a * d - b * c) + (c * dy) / (b * c - a * d);
  const realDy = (b * dx) / (b * c - a * d) + (a * dy) / (a * d - b * c);
  return {
    dx: realDx,
    dy: realDy
  };
};