pub fn simplify_douglas_peucker<T>( points: &[Point2<T>], sq_tolerance: f64, ) -> Vec<Point2<T>>where T: Add<Output = T> + Sub<Output = T> + Mul<Output = T> + PartialEq + Copy + Into<f64>,
simplification using Ramer-Douglas-Peucker algorithm