MCPcopy Index your code
hub / github.com/diffgram/diffgram / get_transformed_coordinates

Function get_transformed_coordinates

frontend/cypress/support/utils.js:3–40  ·  view source on GitHub ↗
(point,
                                                     canvas_client,
                                                     canvas_element,
                                                     canvas_element_wrapper,
                                                     canvas_element_ctx)

Source from the content-addressed store, hash-verified

1
2
3export const get_transformed_coordinates = function (point,
4 canvas_client,
5 canvas_element,
6 canvas_element_wrapper,
7 canvas_element_ctx){
8 let x_raw = (point.x - canvas_client.left)
9 let y_raw = (point.y - canvas_client.top)
10
11
12 var target = canvas_element_wrapper,
13 // style = target.currentStyle || window.getComputedStyle(target, null),
14 // borderLeftWidth = parseInt(style["borderLeftWidth"], 10),
15 // borderTopWidth = parseInt(style["borderTopWidth"], 10),
16 rect = canvas_element_wrapper.getBoundingClientRect(),
17 offsetX = point.x - rect.left,
18 offsetY = point.y - rect.top;
19 let canvas_width = canvas_element.width;
20 let canvas_height = canvas_element.height;
21 if(!canvas_width){
22 canvas_width = canvas_element_wrapper.width;
23 canvas_height = canvas_element_wrapper.height;
24 }
25 let x = (offsetX * canvas_width) / target.clientWidth;
26 let y = (offsetY * canvas_height) / target.clientHeight;
27 const ctx = canvas_element_ctx;
28 var transform = ctx.getTransform();
29 const invMat = transform.invertSelf();
30
31 x = x * invMat.a + y * invMat.c + invMat.e;
32 y = x * invMat.b + y * invMat.d + invMat.f;
33
34 return {
35 x: parseInt(x, 10),
36 y: parseInt(y, 10),
37 x_raw,
38 y_raw
39 }
40}

Callers 2

commands.jsFile · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected