From: Ian Jackson Date: Fri, 2 Apr 2021 21:41:38 +0000 (+0100) Subject: geometry: Provide len X-Git-Tag: otter-0.5.0~300 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=c20f3111caa7a5f61324b125db9f05c65d1fb99d;p=otter.git geometry: Provide len Signed-off-by: Ian Jackson --- diff --git a/base/geometry.rs b/base/geometry.rs index ab5527aa..6d424f06 100644 --- a/base/geometry.rs +++ b/base/geometry.rs @@ -113,6 +113,14 @@ impl PosC { b.checked_add(c2) })? } + + #[throws(CoordinateOverflow)] + pub fn len(self) -> f64 where PosC: PosPromote { + let d2 = self.len2()?; + let d = d2.sqrt(); + if !d.is_finite() { throw!(CoordinateOverflow) } + d + } } impl PosC where T: Copy { pub fn x(self) -> T { self.coords[0] }