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}