pub mod affine;
pub mod defmodel;
pub mod deformation;
pub mod gridshift;
pub mod helmert;
pub mod helmert_batch;
pub mod hgridshift;
pub mod horner;
pub mod molodensky;
pub mod tinshift;
pub mod vertoffset;
pub mod vgridshift;
pub mod xyzgridshift;
use crate::{TransBuild, TransParams};
use oxiproj_core::ProjResult;
pub(crate) fn build(name: &str, p: &TransParams) -> Option<ProjResult<TransBuild>> {
match name {
"helmert" => Some(helmert::new(p)),
"horner" => Some(horner::new(p)),
"molobadekas" => Some(helmert::new_molobadekas(p)),
"molodensky" => Some(molodensky::new(p)),
"affine" => Some(affine::new(p)),
"geogoffset" => Some(affine::new_geogoffset(p)),
"vertoffset" => Some(vertoffset::new(p)),
"hgridshift" => Some(hgridshift::new(p)),
"vgridshift" => Some(vgridshift::new(p)),
"xyzgridshift" => Some(xyzgridshift::new(p)),
"gridshift" => Some(gridshift::new(p)),
"tinshift" => Some(tinshift::new(p)),
"deformation" => Some(deformation::new(p)),
"defmodel" => Some(defmodel::new(p)),
_ => None,
}
}