i_shape 4.0.0

iShape is a compact and efficient library specifically designed for representing 2D data structures using IntPoint.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use crate::base::data::Contour;
use crate::int::shape::IntContour;
use i_float::adapter::FloatPointAdapter;
use i_float::float::compatible::FloatPointCompatible;
use i_float::int::number::int::IntNumber;

pub trait IntContourInit<P: FloatPointCompatible, I: IntNumber> {
    fn set_with_float(&mut self, contour: &Contour<P>, adapter: &FloatPointAdapter<P, I>);
}

impl<P: FloatPointCompatible, I: IntNumber> IntContourInit<P, I> for IntContour<I> {
    fn set_with_float(&mut self, contour: &Contour<P>, adapter: &FloatPointAdapter<P, I>) {
        self.clear();
        self.extend(contour.iter().map(|p| adapter.float_to_int(p)));
    }
}