public Rectangle2D<int> GetConvexHullProjBoundaries(Point3D[] points, bool isLeft)
{
int xProjMin = XResolutionInternal - 1, xProjMax = 0, yProjMin = YResolution - 1, yProjMax = 0;
foreach (Point3D point in points)
{
int xProj = GetXProj(point.X, point.Z, isLeft);
int yProj = GetYProj(point.Y, point.Z);
xProjMin = Math.Min(xProj, xProjMin);
xProjMax = Math.Max(xProj, xProjMax);
yProjMin = Math.Min(yProj, yProjMin);
yProjMax = Math.Max(yProj, yProjMax);
}
return new Rectangle2D<int> { X1 = Math.Max(xProjMin, 0), X2 = Math.Min(xProjMax, XResolutionInternal - 1),
Y1 = Math.Max(yProjMin, 0), Y2 = Math.Min(yProjMax, YResolution - 1) };
}