use crate::mesh::{
CurvedEdge, DefaultEdgePayload, DefaultFacePayload, EuclideanMeshType, MeshTypeHalfEdge,
};
mod svg;
pub trait BackendSVG<T: EuclideanMeshType<2, Mesh = Self>>
where
T::Edge: CurvedEdge<2, T>,
T::FP: DefaultFacePayload,
T::EP: DefaultEdgePayload,
{
#[cfg(feature = "svg")]
fn import_svg(&mut self, svg: &str) -> &mut Self
where
T: MeshTypeHalfEdge,
{
svg::import_svg::<T>(self, svg);
self
}
#[cfg(feature = "svg")]
fn from_svg(svg: &str) -> Self
where
T: MeshTypeHalfEdge,
{
let mut mesh = Self::default();
mesh.import_svg(svg);
mesh
}
}
impl<T: EuclideanMeshType<2>> BackendSVG<T> for T::Mesh
where
T::Edge: CurvedEdge<2, T>,
T::FP: DefaultFacePayload,
T::EP: DefaultEdgePayload,
{
}