public Figure RotateByAngleAroundVector(double angle) { return(new Figure { Pivot = Pivot, Polygons = Polygons .Select(polygon => polygon.RotatePolygonByAngleAroundVector(angle, RotationVector.Sum(Pivot.Negotiate()), Pivot)) .ToList(), RotationVector = RotationVector }); }