parry3d/utils/center.rs
1use crate::math::{Point, Real};
2use na;
3
4/// Computes the center of a set of point.
5#[inline]
6pub fn center(pts: &[Point<Real>]) -> Point<Real> {
7 assert!(
8 !pts.is_empty(),
9 "Cannot compute the center of less than 1 point."
10 );
11
12 let denom: Real = na::convert::<f64, Real>(1.0 / (pts.len() as f64));
13
14 let mut piter = pts.iter();
15 let mut res = *piter.next().unwrap() * denom;
16
17 for pt in piter {
18 res += pt.coords * denom;
19 }
20
21 res
22}