1 <!-- Copyright 2008 Lubomir Bourdev and Hailin Jin
3 Distributed under the Boost Software License, Version 1.0.
4 (See accompanying file LICENSE_1_0.txt or copy at
5 http://www.boost.org/LICENSE_1_0.txt)
9 Copyright 2005-2007 Adobe Systems Incorporated
10 Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt
11 or a copy at http://stlab.adobe.com/licenses.html)
13 Some files are held under additional license.
14 Please see "http://stlab.adobe.com/licenses.html" for more information.
17 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
18 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
19 <html xmlns=
"http://www.w3.org/1999/xhtml" lang=
"en" xml:
lang=
"en">
22 <TITLE>Generic Image Library: memory_based_step_iterator Class Template Reference
</TITLE>
23 <META HTTP-EQUIV=
"content-type" CONTENT=
"text/html;charset=ISO-8859-1"/>
24 <LINK TYPE=
"text/css" REL=
"stylesheet" HREF=
"adobe_source.css"/>
27 <table border=
"0" cellspacing=
"0" cellpadding=
"0" style='width:
100%; margin:
0; padding:
0'
><tr>
28 <td width=
"100%" valign=
"top" style='padding-left:
10px; padding-right:
10px; padding-bottom:
10px'
>
29 <div class=
"qindex"><a class=
"qindex" href=
"index.html">Modules
</a>
30 |
<a class=
"qindex" href=
"classes.html">Alphabetical List
</a>
31 |
<a class=
"qindex" href=
"annotated.html">Class List
</a>
32 |
<a class=
"qindex" href=
"dirs.html">Directories
</a>
33 |
<a class=
"qindex" href=
"files.html">File List
</a>
34 |
<a class=
"qindex" href=
"../index.html">GIL Home Page
</a>
37 <!-- Generated by Doxygen 1.5.6 -->
38 <div class=
"navpath"><a class=
"el" href=
"namespaceboost.html">boost
</a>::
<b>gil
</b>::
<a class=
"el" href=
"g_i_l_0046.html">memory_based_step_iterator
</a>
40 <div class=
"contents">
41 <h1>memory_based_step_iterator Class Template Reference
<br>
43 [
<a class=
"el" href=
"g_i_l_0199.html">step iterators
</a>,
<a class=
"el" href=
"g_i_l_0182.html">Models
</a>]
</small>
44 </h1><!-- doxytag: class="boost::gil::memory_based_step_iterator" --><!-- doxytag: inherits="boost::gil::detail::step_iterator_adaptor" --><code>#include
<<a class=
"el" href=
"g_i_l_0259.html">step_iterator.hpp
</a>></code>
46 <div class=
"dynheader">
47 Inheritance diagram for memory_based_step_iterator:
</div>
48 <div class=
"dynsection">
50 <p><center><img src=
"g_i_l_0007.png" usemap=
"#memory_based_step_iterator_map" border=
"0" alt=
""></center>
51 <map name=
"memory_based_step_iterator_map">
52 <area href=
"g_i_l_0036.html" alt=
"step_iterator_adaptor" shape=
"rect" coords=
"0,0,707,24">
57 <a href=
"g_i_l_0045.html">List of all members.
</a><hr><a name=
"_details"></a><h2>Detailed Description
</h2>
58 <h3>template
<typename Iterator
><br>
59 class boost::gil::memory_based_step_iterator
< Iterator
></h3>
61 Iterator with dynamically specified step in memory units (bytes or bits). Models
<a class=
"el" href=
"g_i_l_0380.html" title=
"Step iterator concept.">StepIteratorConcept
</a>,
<a class=
"el" href=
"g_i_l_0310.html" title=
"Iterator adaptor is a forward iterator adapting another forward iterator.">IteratorAdaptorConcept
</a>,
<a class=
"el" href=
"g_i_l_0312.html" title=
"Concept of a random-access iterator that can be advanced in memory units (bytes or...">MemoryBasedIteratorConcept
</a>,
<a class=
"el" href=
"g_i_l_0352.html" title=
"An STL random access traversal iterator over a model of PixelConcept.">PixelIteratorConcept
</a>,
<a class=
"el" href=
"g_i_l_0290.html" title=
"Concept for iterators, locators and views that can define a type just like the given...">HasDynamicXStepTypeConcept
</a>.
63 MEMORY-BASED STEP ITERATOR
<p>
64 A refinement of step_iterator_adaptor that uses a dynamic parameter for the step which is specified in memory units, such as bytes or bits
<p>
65 Pixel step iterators are used to provide iteration over non-adjacent pixels. Common use is a vertical traversal, where the step is the row stride.
<p>
66 Another application is as a sub-channel view. For example, a red intensity
<a class=
"el" href=
"g_i_l_0038.html" title=
"container interface over image view. Models ImageConcept, PixelBasedConcept">image
</a> over interleaved RGB data would use a step iterator adaptor with step sizeof(channel_t)*
3 In the latter example the step
<a class=
"el" href=
"g_i_l_0621.html" title=
"Returns an MPL integral type specifying the number of elements in a color base.">size
</a> could be fixed at compile time for efficiency. Compile-time fixed step can be implemented by providing a step function object that takes the step as a template
<table border=
"0" cellpadding=
"0" cellspacing=
"0">
68 <tr><td colspan=
"2"><br><h2>Public Types
</h2></td></tr>
69 <tr><td class=
"memItemLeft" nowrap
align=
"right" valign=
"top"><a class=
"anchor" name=
"bc15672c336b287b81a4bd69f0986753"></a><!-- doxytag: member="boost::gil::memory_based_step_iterator::parent_t" ref="bc15672c336b287b81a4bd69f0986753" args="" -->
71 <a class=
"el" href=
"g_i_l_0036.html">detail::step_iterator_adaptor
</a><br>
72 < <a class=
"el" href=
"g_i_l_0046.html">memory_based_step_iterator
</a><br>
73 < Iterator
>, Iterator,
<br>
74 <a class=
"el" href=
"g_i_l_0576.html">memunit_step_fn
</a>< Iterator
> > </td><td class=
"memItemRight" valign=
"bottom"><b>parent_t
</b></td></tr>
76 <tr><td class=
"memItemLeft" nowrap
align=
"right" valign=
"top"><a class=
"anchor" name=
"6c80bdd4dcae459dd371e3d941b83468"></a><!-- doxytag: member="boost::gil::memory_based_step_iterator::reference" ref="6c80bdd4dcae459dd371e3d941b83468" args="" -->
77 typedef parent_t::reference
</td><td class=
"memItemRight" valign=
"bottom"><b>reference
</b></td></tr>
79 <tr><td class=
"memItemLeft" nowrap
align=
"right" valign=
"top"><a class=
"anchor" name=
"af1864eda36a1748894be741b3d64bde"></a><!-- doxytag: member="boost::gil::memory_based_step_iterator::difference_type" ref="af1864eda36a1748894be741b3d64bde" args="" -->
80 typedef parent_t::difference_type
</td><td class=
"memItemRight" valign=
"bottom"><b>difference_type
</b></td></tr>
82 <tr><td class=
"memItemLeft" nowrap
align=
"right" valign=
"top"><a class=
"anchor" name=
"6c92dba2feb25a3b182a2a78de4cddb5"></a><!-- doxytag: member="boost::gil::memory_based_step_iterator::x_iterator" ref="6c92dba2feb25a3b182a2a78de4cddb5" args="" -->
83 typedef Iterator
</td><td class=
"memItemRight" valign=
"bottom"><b>x_iterator
</b></td></tr>
85 <tr><td colspan=
"2"><br><h2>Public Member Functions
</h2></td></tr>
86 <tr><td class=
"memItemLeft" nowrap
align=
"right" valign=
"top"><a class=
"anchor" name=
"1c335f11e1be5ae1444d6556e5c4c59f"></a><!-- doxytag: member="boost::gil::memory_based_step_iterator::memory_based_step_iterator" ref="1c335f11e1be5ae1444d6556e5c4c59f" args="(Iterator it, std::ptrdiff_t memunit_step)" -->
87 </td><td class=
"memItemRight" valign=
"bottom"><b>memory_based_step_iterator
</b> (Iterator it, std::ptrdiff_t memunit_step)
</td></tr>
89 <tr><td class=
"memTemplParams" nowrap
colspan=
"2"><a class=
"anchor" name=
"c9aedc29ca8f724bd7e3c56ca6d779cd"></a><!-- doxytag: member="boost::gil::memory_based_step_iterator::memory_based_step_iterator" ref="c9aedc29ca8f724bd7e3c56ca6d779cd" args="(const memory_based_step_iterator< I2 > &it)" -->
90 template
<typename I2
> </td></tr>
91 <tr><td class=
"memTemplItemLeft" nowrap
align=
"right" valign=
"top"> </td><td class=
"memTemplItemRight" valign=
"bottom"><b>memory_based_step_iterator
</b> (const
<a class=
"el" href=
"g_i_l_0046.html">memory_based_step_iterator
</a>< I2
> &it)
</td></tr>
93 <tr><td class=
"memItemLeft" nowrap
align=
"right" valign=
"top">reference
</td><td class=
"memItemRight" valign=
"bottom"><a class=
"el" href=
"g_i_l_0046.html#de1279c4ed222b6efb0867c038765ea1">operator[]
</a> (difference_type d) const
</td></tr>
95 <tr><td class=
"memItemLeft" nowrap
align=
"right" valign=
"top"><a class=
"anchor" name=
"2db2a1eeeaff81d48e6c3ae3fb21cdd9"></a><!-- doxytag: member="boost::gil::memory_based_step_iterator::set_step" ref="2db2a1eeeaff81d48e6c3ae3fb21cdd9" args="(std::ptrdiff_t memunit_step)" -->
96 void
</td><td class=
"memItemRight" valign=
"bottom"><b>set_step
</b> (std::ptrdiff_t memunit_step)
</td></tr>
98 <tr><td class=
"memItemLeft" nowrap
align=
"right" valign=
"top"><a class=
"anchor" name=
"2d6722b54419923ecb1282a142fcd494"></a><!-- doxytag: member="boost::gil::memory_based_step_iterator::base" ref="2d6722b54419923ecb1282a142fcd494" args="()" -->
99 x_iterator
& </td><td class=
"memItemRight" valign=
"bottom"><b>base
</b> ()
</td></tr>
101 <tr><td class=
"memItemLeft" nowrap
align=
"right" valign=
"top"><a class=
"anchor" name=
"2d972dcaff90f5726d754dd8613c8095"></a><!-- doxytag: member="boost::gil::memory_based_step_iterator::base" ref="2d972dcaff90f5726d754dd8613c8095" args="() const " -->
102 x_iterator const
& </td><td class=
"memItemRight" valign=
"bottom"><b>base
</b> () const
</td></tr>
105 <hr><h2>Member Function Documentation
</h2>
106 <a class=
"anchor" name=
"de1279c4ed222b6efb0867c038765ea1"></a><!-- doxytag: member="boost::gil::memory_based_step_iterator::operator[]" ref="de1279c4ed222b6efb0867c038765ea1" args="(difference_type d) const " -->
107 <div class=
"memitem">
108 <div class=
"memproto">
109 <table class=
"memname">
111 <td class=
"memname">reference operator[]
</td>
113 <td class=
"paramtype">difference_type
</td>
114 <td class=
"paramname"> <em>d
</em> </td>
115 <td> )
</td>
116 <td> const
<code> [inline]
</code></td>
123 For some reason operator[] provided by iterator_adaptor returns a custom class that is convertible to reference We require our own reference because it is registered in iterator_traits
126 <hr>The documentation for this class was generated from the following file:
<ul>
127 <li><a class=
"el" href=
"g_i_l_0259.html">step_iterator.hpp
</a></ul>
129 <hr size=
"1"><address style=
"text-align: right;"><small>Generated on Sat May
2 13:
50:
18 2009 for Generic Image Library by
130 <a href=
"http://www.doxygen.org/index.html">
131 <img src=
"doxygen.png" alt=
"doxygen" align=
"middle" border=
"0"></a> 1.5.6 </small></address>