static Vector2 reflectBetween(Vector2 direction, Vector2 normal) { final d = 2 * dotBetween(direction, normal); return Vector2( direction.x - d * normal.x, direction.y - d * normal.y, ); }