globalToLocal method
Implementation
Vector2 globalToLocal(Vector2 point) {
final transform = matrix.clone();
final det = transform.invert(); // side effect
if (det == 0.0) {
return Vector2.zero();
}
final Vector3 n = Vector3(0.0, 0.0, 1.0);
final Vector3 i = transform.perspectiveTransform(Vector3(0.0, 0.0, 0.0));
final Vector3 d = transform.perspectiveTransform(Vector3(0.0, 0.0, 1.0)) - i;
final Vector3 s = transform.perspectiveTransform(Vector3(point.x, point.y, 0.0));
final Vector3 p = s - d * (n.dot(s) / n.dot(d));
return Vector2(p.x, p.y);
}