visionmagic 0.2.0

Collection of vision & graphics algorithms
Documentation
macro_rules! min2 {
    ($x:expr, $y:expr) => {{
        if $x < $y {
            $x
        } else {
            $y
        }
    }};
}

macro_rules! min4 {
    ($a:expr, $b:expr, $c:expr, $d:expr) => {
        min2!(min2!($a, $b), min2!($c, $d))
    };
}

macro_rules! dot_product {
    ($u:expr, $v:expr) => {
        $u.0 * $v.0 + $u.1 * $v.1
    };
}

macro_rules! index {
    ($im:expr, $x:expr, $y:expr) => {
        ($y as usize) * ($im.width as usize) + ($x as usize)
    };
}

macro_rules! elem {
    ($im:expr, $x:expr, $y:expr, $c:expr) => {
        unsafe { $im.buf.get_unchecked_mut(index!($im, $x, $y) * 3 + $c) }
    };
}

macro_rules! elem_v {
    ($im:expr, $x:expr, $y:expr, $c:expr) => {
        unsafe { $im.buf.get_unchecked(index!($im, $x, $y) * 3 + $c) }
    };
}