示例#1
0
inline
void
memunit_advance( planar_pixel_iterator< ChannelPtr, ColorSpace >& p
               , typename memunit_2_step_fn< planar_pixel_iterator< ChannelPtr, ColorSpace > >::difference_type      diff
               )
{
    typedef planar_pixel_iterator< ChannelPtr, ColorSpace > pixel_t;
    BOOST_STATIC_ASSERT(( gil::num_channels< pixel_t >::value == 3 ));

    memunit_advance( gil::at_c< 0 >( p ), diff.first  );
    memunit_advance( gil::at_c< 1 >( p ), diff.second );
    memunit_advance( gil::at_c< 2 >( p ), diff.second );
}
inline planar_frame_iterator<IC,C> memunit_advanced (
    const planar_frame_iterator<IC,C>& p, std::ptrdiff_t diff)
{
    planar_frame_iterator<IC,C> ret = p;
    memunit_advance (ret, diff);
    return ret;
}
示例#3
0
inline
planar_pixel_iterator< ChannelPtr, ColorSpace >
memunit_advanced( const planar_pixel_iterator< ChannelPtr, ColorSpace >& p
                , const typename memunit_2_step_fn< planar_pixel_iterator< ChannelPtr, ColorSpace > >::difference_type&     diff
                )
{
    typedef planar_pixel_iterator< ChannelPtr, ColorSpace > iterator_t;
    BOOST_STATIC_ASSERT(( gil::num_channels< iterator_t >::value == 3 ));

    pixel_t ret = p;
    memunit_advance(ret, diff);

    return ret;
}
示例#4
0
inline
planar_pixel_reference< typename std::iterator_traits< ChannelPtr >::reference
                      , ColorSpace
                      >
memunit_advanced_ref( const planar_pixel_iterator<ChannelPtr,ColorSpace>& ptr
                    , const typename memunit_2_step_fn< planar_pixel_iterator< ChannelPtr, ColorSpace > >::difference_type& diff
                    )
{
    typedef planar_pixel_iterator< ChannelPtr, ColorSpace > iterator_t;
    typedef planar_pixel_reference< typename std::iterator_traits< ChannelPtr >::reference
                                 , ColorSpace
                                 > reference_t;

    BOOST_STATIC_ASSERT(( gil::num_channels< iterator_t >::value == 3 ));

    iterator_t it( ptr );
    memunit_advance( it, diff );

    return reference_t( gil::at_c< 0 >( it )
                      , gil::at_c< 1 >( it )
                      , gil::at_c< 2 >( it )
                      );
}