Пример #1
0
inline
typename memunit_2_step_fn< planar_pixel_iterator< ChannelPtr, ColorSpace > >::difference_type
memunit_distance( const planar_pixel_iterator< ChannelPtr, ColorSpace >& p1
                , const planar_pixel_iterator< ChannelPtr, ColorSpace >& p2
                )
{
    assert(  memunit_distance( gil::at_c< 1 >( p1 ),gil::at_c< 1 >( p2 ))
          == memunit_distance( gil::at_c< 2 >( p1 ),gil::at_c< 2 >( p2 ))
          );

    typedef planar_pixel_iterator< ChannelPtr, ColorSpace > pixel_t;
    BOOST_STATIC_ASSERT(( gil::num_channels< pixel_t >::value == 3 ));

    typedef typename memunit_2_step_fn::difference_type return_t;

    return return_t( memunit_distance( gil::at_c< 0 >( p1 ),gil::at_c< 0 >( p2 ))
                   , memunit_distance( gil::at_c< 1 >( p1 ),gil::at_c< 1 >( p2 ))
                   );
}
Пример #2
0
inline std::ptrdiff_t memunit_distance(const planar_pixel_iterator<IC,C>& p1, const planar_pixel_iterator<IC,C>& p2) { 
    return memunit_distance(gil::at_c<0>(p1),gil::at_c<0>(p2)); 
}
inline std::ptrdiff_t memunit_distance (const planar_frame_iterator<IC,C>& p1,
					const planar_frame_iterator<IC,C>& p2)
{
    return memunit_distance (sound::at_c<0>(p1), sound::at_c<0>(p2));
}