Vec2 reflected(Vec2 normal) { final d = 2 * dot(normal); return Vec2(x - d * normal.x, y - d * normal.y); }