///|
pub fn calibration_from_reference(
pixel_distance : Double,
physical_distance : Double,
) -> Double {
match try_calibration_from_reference(pixel_distance, physical_distance) {
Some(scale) => scale
None => 0.0
}
}
///|
pub fn try_calibration_from_reference(
pixel_distance : Double,
physical_distance : Double,
) -> Double? {
if pixel_distance > 0.0 &&
is_finite(pixel_distance) &&
is_finite(physical_distance) {
Some(physical_distance / pixel_distance)
} else {
None
}
}
///|
pub fn Point::scale(point : Point, factor : Double) -> Point {
Point(x=point.x * factor, y=point.y * factor)
}
///|
pub fn Line::offset(line : Line, pixels : Double) -> Line {
{ ..line, c: line.c - pixels }
}