It uses
let mut bound = Bound::default();
as its initial bounding box, which contains all zeroes. If the shape does not contain the origin, this results in an incorrect box. The initial box should probably be something like
let mut bound = Bound {
left: f64::INFINITY,
bottom: f64::INFINITY,
right: -f64::INFINITY,
top: -f64::INFINITY,
};
It uses
as its initial bounding box, which contains all zeroes. If the shape does not contain the origin, this results in an incorrect box. The initial box should probably be something like