transformPoints method
Implementation
void transformPoints(List<double> points) {
final maxI = points.length - 1; // points.length must be even
for (int i = 0; i < maxI; i += 2) {
final x = points[i];
final y = points[i + 1];
final denominator = a13 * x + a23 * y + a33;
points[i] = (a11 * x + a21 * y + a31) / denominator;
points[i + 1] = (a12 * x + a22 * y + a32) / denominator;
}
}