use lina::Point3;
use crate::hsize;
mod list;
mod num;
mod prop;
pub use self::{
list::{TriList, DiList, TriListIntoIter, DiListIntoIter, TriListIter, DiListIter},
num::{CastFromPrimitive, CastIntoPrimitive, PrimitiveNum, PrimitiveCast, PrimitiveFloat},
prop::{ColorLike, PrimitiveColorChannel, Pos3Like, Vec3Like},
};
pub trait IteratorExt: Sized + Iterator {
fn into_vec(self) -> Vec<Self::Item> {
self.collect()
}
fn centroid(self) -> Option<Self::Item>
where
Self::Item: Pos3Like,
{
Point3::centroid(self.map(|item| item.to_point3())).map(|p| p.convert())
}
}
impl<I: Iterator> IteratorExt for I {}
pub trait HSizeExt {
fn next(self) -> Self;
}
impl HSizeExt for hsize {
#[inline(always)]
fn next(self) -> Self {
self + 1
}
}