func Rect(x0, y0, z0, x1, y1, z1 float32) Rectangle {
	if x0 > x1 {
		x0, x1 = x1, x0
	}
	if y0 > y1 {
		y0, y1 = y1, y0
	}
	if z0 > z1 {
		z0, z1 = z1, z0
	}
	return Rectangle{Vec3{x0, y0, z0}, Vec3{x1, y1, z1}}
}
func Rect(x0, y0, z0, x1, y1, z1 float32) Rectangle {
	if x0 > x1 {
		x0, x1 = x1, x0
	}
	if y0 > y1 {
		y0, y1 = y1, y0
	}
	if z0 > z1 {
		z0, z1 = z1, z0
	}
	return Rectangle{Vec3{x0, y0, z0}, Vec3{x1, y1, z1}}
}
// Rect is shorthand for Rectangle{Vec3(x0, y0), Vec3(x1, y1)}. The returned
// rectangle has minimum and maximum coordinates swapped if necessary so that
// it is well-formed.