use rten_imageproc::BoundingRect;
use rten_imageproc::{LineF, RotatedRect};
pub fn downwards_line(line: LineF) -> LineF {
if line.end.y >= line.start.y {
line
} else {
LineF::from_endpoints(line.end, line.start)
}
}
pub fn leftmost_edge(r: &RotatedRect) -> LineF {
let mut corners = r.corners();
corners.sort_by(|a, b| a.x.total_cmp(&b.x));
LineF::from_endpoints(corners[0], corners[1])
}
pub fn rightmost_edge(r: &RotatedRect) -> LineF {
let mut corners = r.corners();
corners.sort_by(|a, b| a.x.total_cmp(&b.x));
LineF::from_endpoints(corners[2], corners[3])
}
pub fn midpoint_line(words: &[RotatedRect]) -> LineF {
assert!(!words.is_empty());
LineF::from_endpoints(
words.first().unwrap().bounding_rect().left_edge().center(),
words.last().unwrap().bounding_rect().right_edge().center(),
)
}