ncollide3d/utils/
center.rs

1use crate::math::Point;
2use na::{self, RealField};
3
4/// Computes the center of a set of point.
5#[inline]
6pub fn center<N: RealField + Copy>(pts: &[Point<N>]) -> Point<N> {
7    assert!(
8        pts.len() >= 1,
9        "Cannot compute the center of less than 1 point."
10    );
11
12    let denom: N = na::convert(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}