pub fn new_from_wound(verts: Vec<Vec2>) -> Poly {
        let len = verts.len() - 1; // verts contains a duplicate trailing vertex
        let mut norms = Vec::with_capacity(len);
        let (mut ix, mut iy, mut ax, mut ay) = (Fp::MAX, Fp::MAX, Fp::MIN, Fp::MIN);
        for i in 0..len {
            norms.push(Vec2::new(-(verts[i + 1].y - verts[i].y), verts[i + 1].x - verts[i].x).normalize());

            if verts[i].x < ix { ix = verts[i].x; }
            if verts[i].x > ax { ax = verts[i].x; }
            if verts[i].y < iy { iy = verts[i].y; }
            if verts[i].y > ay { ay = verts[i].y; }
        }

        Poly { aabb: Aabb::new(ix, iy, ax, ay), verts, norms }
    }
/// `verts` must form a convex polygon, be wrapped clockwise, and must contain a duplicate of the first trailing vertex.
`verts` must form a convex polygon, be wrapped clockwise, and must contain a duplicate of the first trailing vertex.
` verts ` must form a convex polygon be wrapped clockwise and must contain a duplicate of the first trailing vertex .
pub fn new_from_wound(verts: Vec<Vec2>) -> Poly {
        let len = verts.len() - 1; // verts contains a duplicate trailing vertex
        let mut norms = Vec::with_capacity(len);
        let (mut ix, mut iy, mut ax, mut ay) = (Fp::MAX, Fp::MAX, Fp::MIN, Fp::MIN);
        for i in 0..len {
            norms.push(Vec2::new(-(verts[i + 1].y - verts[i].y), verts[i + 1].x - verts[i].x).normalize());
            if verts[i].x < ix { ix = verts[i].x; }
            if verts[i].x > ax { ax = verts[i].x; }
            if verts[i].y < iy { iy = verts[i].y; }
            if verts[i].y > ay { ay = verts[i].y; }
        }
        Poly { aabb: Aabb::new(ix, iy, ax, ay), verts, norms }
    }
pub fn new_from_wound ( verts : Vec < Vec2 > ) -> Poly { let len = verts . len ( ) - 1 ; // verts contains a duplicate trailing vertex let mut norms = Vec :: with_capacity ( len ) ; let ( mut ix , mut iy , mut ax , mut ay ) = ( Fp :: MAX , Fp :: MAX , Fp :: MIN , Fp :: MIN ) ; for i in 0 .. len { norms . push ( Vec2 :: new ( - ( verts [ i + 1 ] . y - verts [ i ] . y ) , verts [ i + 1 ] . x - verts [ i ] . x ) . normalize ( ) ) ; if verts [ i ] . x < ix { ix = verts [ i ] . x ; } if verts [ i ] . x > ax { ax = verts [ i ] . x ; } if verts [ i ] . y < iy { iy = verts [ i ] . y ; } if verts [ i ] . y > ay { ay = verts [ i ] . y ; } } Poly { aabb : Aabb :: new ( ix , iy , ax , ay ) , verts , norms } }
`verts` must form a convex polygon, be wrapped clockwise, and must contain a duplicate of the first trailing vertex.
` verts ` must form a convex polygon be wrapped clockwise and must contain a duplicate of the first trailing vertex .
verts
Vec<Vec2>
verts
Vec<Vec2>