hitTestInput method Null safety

  1. @override
DisplayObject? hitTestInput(
  1. num localX,
  2. num localY
)
override

Evaluates this display object to see if the coordinates localX and localY are inside this display object.

If the coordinates are inside, this display object is returned; null otherwise.

localX and localY are relative to to the origin (0,0) of this display object (local coordinates).

Implementation

@override
DisplayObject? hitTestInput(num localX, num localY) {
  if (hitTestState == null) return null;

  final matrix = hitTestState!.transformationMatrix;

  final deltaX = localX - matrix.tx;
  final deltaY = localY - matrix.ty;
  final childX = (matrix.d * deltaX - matrix.c * deltaY) / matrix.det;
  final childY = (matrix.a * deltaY - matrix.b * deltaX) / matrix.det;

  return hitTestState!.hitTestInput(childX, childY) != null ? this : null;
}