rotate method
Rotates this by the upper-left 3x3 of matrix, ignoring translation.
Implementation
void rotate(Matrix4 matrix) {
final x = this.x;
final y = this.y;
final z = this.z;
this.x = (matrix[0] * x) + (matrix[4] * y) + (matrix[8] * z);
this.y = (matrix[1] * x) + (matrix[5] * y) + (matrix[9] * z);
this.z = (matrix[2] * x) + (matrix[6] * y) + (matrix[10] * z);
}