public Volume(IList<Point> points)
{
var rangeX = new Range(points.Select(p => p.X));
var rangeY = new Range(points.Select(p => p.Y));
var rangeZ = new Range(points.Select(p => p.Z));
this.location = new Point(rangeX.Min, rangeY.Min, rangeZ.Min);
this.width = rangeX.Interval;
this.height = rangeY.Interval;
this.depth = rangeZ.Interval;
}