pub mod basic_types;
pub mod core;
pub mod edge_collapse;
pub mod face;
pub mod half_edge;
pub mod intersection_segment;
pub mod spatial_hash;
pub mod topology;
pub mod triangle;
pub mod vertex;
#[macro_export]
macro_rules! impl_mesh {
($($items:item)*) => {
impl<T: crate::numeric::scalar::Scalar, const N: usize> crate::mesh::basic_types::Mesh<T, N>
where
crate::geometry::point::Point<T, N>: crate::geometry::point::PointOps<T, N, Vector = crate::geometry::vector::Vector<T, N>>,
crate::geometry::vector::Vector<T, N>: crate::geometry::vector::VectorOps<T, N>,
for<'a> &'a T: std::ops::Sub<&'a T, Output = T>
+ std::ops::Mul<&'a T, Output = T>
+ std::ops::Add<&'a T, Output = T>
+ std::ops::Div<&'a T, Output = T>
+ std::ops::Neg<Output = T>,
{
$($items)*
}
};
}