public Vector2 TransformPoint(Vector2 p) { p += position; p.RotateAroundPoint(p, rotation); p.ScaleAroundPoint(p, scale); return p; }