public virtual void RotateAroundPoint(double ang, Point p = null) { Begin = Begin.Rotate(ang, p); End = End.Rotate(ang, p); }