use coordinate_buf::CoordinateBuf;
use lonlat_buf::LonLatBuf;
use prelude::*;
use std::fmt::Debug;
pub trait ToLonLat
{
fn to_lon_lat(&self, data: Vec<(f64, f64)>, ellipsoid: &Ellipsoid, strategy: &mut MultithreadingStrategy)
-> LonLatBuf;
}
pub trait FromLonLat
{
fn from_lon_lat(&self, data: Vec<(f64, f64)>, ellipsoid: &Ellipsoid, strategy: &mut MultithreadingStrategy)
-> CoordinateBuf;
}
pub trait Crs: ToLonLat + FromLonLat + Debug {
fn clone(&self) -> Box<dyn Crs>;
}
impl<T> Crs for T where T: ToLonLat + FromLonLat + Debug + Clone + 'static {
fn clone(&self) -> Box<dyn Crs> {
Box::new((*self).clone())
}
}