internal void SetPath()
{
if (this.pathIsInvalid)
{
Point2DCollection point2Ds = this.ClippedPoint2Ds ?? this.Point2Ds;
if (point2Ds != null)
{
Rectangle2D bounds = this.ClippedBounds;
if (!Rectangle2D.IsNullOrEmpty(bounds))
{
PointCollection points = new PointCollection();
Point topLeft = MapToScreen(new Point2D(bounds.Left, bounds.Top));
foreach (Point2D point2d in point2Ds)
{
Point point = this.MapToScreen(point2d);
point.X -= topLeft.X;
point.Y -= topLeft.Y;
points.Add(point);
}
this.ScreenPoints = points;
}
}
else
{
this.ScreenPoints.Clear();
//throw new ArgumentNullException("Point2Ds");
}
this.pathIsInvalid = false;
}
}