transformPoint method

Point<num> transformPoint(
  1. Point<num> point, [
  2. Point<num>? returnPoint
])

Implementation

Point<num> transformPoint(math.Point<num> point, [Point<num>? returnPoint]) {
  final px = point.x.toDouble();
  final py = point.y.toDouble();

  final td = m03 * px + m13 * py + m33;
  final tx = m00 * px + m10 * py + m30;
  final ty = m01 * px + m11 * py + m31;

  if (returnPoint is Point) {
    returnPoint.setTo(tx / td, ty / td);
    return returnPoint;
  } else {
    return Point<num>(tx / td, ty / td);
  }
}