Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / gil / doc / html / reference / classboost_1_1gil_1_1pixel__2d__locator__base.html
1 <!-- HTML header for doxygen 1.8.13-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4   <head>
5     <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6     <meta http-equiv="X-UA-Compatible" content="IE=9"/>
7     <meta name="generator" content="Doxygen 1.8.15"/>
8     <meta name="viewport" content="width=device-width, initial-scale=1"/>
9     <title>Generic Image Library: pixel_2d_locator_base&lt; Loc, XIterator, YIterator &gt; Class Template Reference</title>
10     <link href="tabs.css" rel="stylesheet" type="text/css"/>
11     <script type="text/javascript" src="jquery.js"></script>
12     <script type="text/javascript" src="dynsections.js"></script>
13     <link href="doxygen.css" rel="stylesheet" type="text/css" />
14     <link href="doxygen-boost.css" rel="stylesheet" type="text/css"/>
15   </head>
16   <body>
17     <div class="boost-header">
18       <table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
19         <tr>
20           <td valign="top" width="300">
21             <h3><a href="../index.html"><img alt="Boost GIL" src="../_static/gil.png" border="0"></a></h3>
22           </td>
23           <td ><h1 align="center"><a href="../index.html"></a></h1></td>
24           <td></td>
25         </tr>
26       </table>
27     </div>
28     <hr/>
29     <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
30 <!-- Generated by Doxygen 1.8.15 -->
31 <script type="text/javascript" src="menudata.js"></script>
32 <script type="text/javascript" src="menu.js"></script>
33 <script type="text/javascript">
34 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
35 $(function() {
36   initMenu('',false,false,'search.php','Search');
37 });
38 /* @license-end */</script>
39 <div id="main-nav"></div>
40 <div id="nav-path" class="navpath">
41   <ul>
42 <li class="navelem"><b>boost</b></li><li class="navelem"><b>gil</b></li><li class="navelem"><a class="el" href="classboost_1_1gil_1_1pixel__2d__locator__base.html">pixel_2d_locator_base</a></li>  </ul>
43 </div>
44 </div><!-- top -->
45 <div class="header">
46   <div class="summary">
47 <a href="#pub-types">Public Types</a> &#124;
48 <a href="#pub-methods">Public Member Functions</a> &#124;
49 <a href="#pub-static-attribs">Static Public Attributes</a> &#124;
50 <a href="#friends">Friends</a> &#124;
51 <a href="classboost_1_1gil_1_1pixel__2d__locator__base-members.html">List of all members</a>  </div>
52   <div class="headertitle">
53 <div class="title">pixel_2d_locator_base&lt; Loc, XIterator, YIterator &gt; Class Template Reference<div class="ingroups"><a class="el" href="group___pixel_locator.html">Pixel Locator</a> &raquo; <a class="el" href="group___pixel_locator_model.html">Models</a><a class="el" href="group___pixel_based.html">PixelBased</a> &raquo;  &#124; <a class="el" href="group___pixel_based_model.html">Models</a></div></div>  </div>
54 </div><!--header-->
55 <div class="contents">
56
57 <p>base class for models of <a class="el" href="structboost_1_1gil_1_1_pixel_locator_concept.html" title="GIL&#39;s 2-dimensional locator over immutable GIL pixels.">PixelLocatorConcept</a>Pixel locator is similar to a pixel iterator, but allows for 2D navigation of pixels within an image view. It has a 2D difference_type and supports random access operations like:  
58  <a href="classboost_1_1gil_1_1pixel__2d__locator__base.html#details">More...</a></p>
59
60 <p><code>#include &lt;<a class="el" href="locator_8hpp_source.html">locator.hpp</a>&gt;</code></p>
61 <table class="memberdecls">
62 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
63 Public Types</h2></td></tr>
64 <tr class="memitem:ac8dff97b16cfc859526cbe71bb5e0456"><td class="memItemLeft" align="right" valign="top"><a id="ac8dff97b16cfc859526cbe71bb5e0456"></a>
65 using&#160;</td><td class="memItemRight" valign="bottom"><b>x_iterator</b> = XIterator</td></tr>
66 <tr class="separator:ac8dff97b16cfc859526cbe71bb5e0456"><td class="memSeparator" colspan="2">&#160;</td></tr>
67 <tr class="memitem:ac7db843d09573b19a4ec6c70cb699df2"><td class="memItemLeft" align="right" valign="top"><a id="ac7db843d09573b19a4ec6c70cb699df2"></a>
68 using&#160;</td><td class="memItemRight" valign="bottom"><b>y_iterator</b> = YIterator</td></tr>
69 <tr class="separator:ac7db843d09573b19a4ec6c70cb699df2"><td class="memSeparator" colspan="2">&#160;</td></tr>
70 <tr class="memitem:a4cf0b4cc09e331d088cba0918375298a"><td class="memItemLeft" align="right" valign="top"><a id="a4cf0b4cc09e331d088cba0918375298a"></a>
71 using&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b> = typename std::iterator_traits&lt; x_iterator &gt;::value_type</td></tr>
72 <tr class="separator:a4cf0b4cc09e331d088cba0918375298a"><td class="memSeparator" colspan="2">&#160;</td></tr>
73 <tr class="memitem:ae4866d87dad1cbb5ec690604b6d7e4c9"><td class="memItemLeft" align="right" valign="top"><a id="ae4866d87dad1cbb5ec690604b6d7e4c9"></a>
74 using&#160;</td><td class="memItemRight" valign="bottom"><b>reference</b> = typename std::iterator_traits&lt; x_iterator &gt;::reference</td></tr>
75 <tr class="separator:ae4866d87dad1cbb5ec690604b6d7e4c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
76 <tr class="memitem:a6b1fc581762647c48e112deb1b043ab5"><td class="memItemLeft" align="right" valign="top"><a id="a6b1fc581762647c48e112deb1b043ab5"></a>
77 using&#160;</td><td class="memItemRight" valign="bottom"><b>coord_t</b> = typename std::iterator_traits&lt; x_iterator &gt;::<a class="el" href="classboost_1_1gil_1_1point.html">difference_type</a></td></tr>
78 <tr class="separator:a6b1fc581762647c48e112deb1b043ab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
79 <tr class="memitem:afb01b687e5fb83d62030e97956f78df8"><td class="memItemLeft" align="right" valign="top"><a id="afb01b687e5fb83d62030e97956f78df8"></a>
80 using&#160;</td><td class="memItemRight" valign="bottom"><b>difference_type</b> = <a class="el" href="classboost_1_1gil_1_1point.html">point</a>&lt; coord_t &gt;</td></tr>
81 <tr class="separator:afb01b687e5fb83d62030e97956f78df8"><td class="memSeparator" colspan="2">&#160;</td></tr>
82 <tr class="memitem:ad3b7e554a3f62b6ae64646320bdf4707"><td class="memItemLeft" align="right" valign="top"><a id="ad3b7e554a3f62b6ae64646320bdf4707"></a>
83 using&#160;</td><td class="memItemRight" valign="bottom"><b>point_t</b> = <a class="el" href="classboost_1_1gil_1_1point.html">difference_type</a></td></tr>
84 <tr class="separator:ad3b7e554a3f62b6ae64646320bdf4707"><td class="memSeparator" colspan="2">&#160;</td></tr>
85 <tr class="memitem:af57b12c880c8e86ceb3ae23874ca5921"><td class="memItemLeft" align="right" valign="top"><a id="af57b12c880c8e86ceb3ae23874ca5921"></a>
86 using&#160;</td><td class="memItemRight" valign="bottom"><b>x_coord_t</b> = typename point_t::template axis&lt; 0 &gt;::coord_t</td></tr>
87 <tr class="separator:af57b12c880c8e86ceb3ae23874ca5921"><td class="memSeparator" colspan="2">&#160;</td></tr>
88 <tr class="memitem:a1f91fc1334430fa1687684fcc107b480"><td class="memItemLeft" align="right" valign="top"><a id="a1f91fc1334430fa1687684fcc107b480"></a>
89 using&#160;</td><td class="memItemRight" valign="bottom"><b>y_coord_t</b> = typename point_t::template axis&lt; 1 &gt;::coord_t</td></tr>
90 <tr class="separator:a1f91fc1334430fa1687684fcc107b480"><td class="memSeparator" colspan="2">&#160;</td></tr>
91 <tr class="memitem:a7192e60183dc5bbaaa9c9344e2b00ccc"><td class="memItemLeft" align="right" valign="top"><a id="a7192e60183dc5bbaaa9c9344e2b00ccc"></a>
92 using&#160;</td><td class="memItemRight" valign="bottom"><b>cached_location_t</b> = <a class="el" href="classboost_1_1gil_1_1point.html">difference_type</a></td></tr>
93 <tr class="separator:a7192e60183dc5bbaaa9c9344e2b00ccc"><td class="memSeparator" colspan="2">&#160;</td></tr>
94 </table><table class="memberdecls">
95 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
96 Public Member Functions</h2></td></tr>
97 <tr class="memitem:a2fc5cf8788f95bf50cdab2e272fc7708"><td class="memItemLeft" align="right" valign="top"><a id="a2fc5cf8788f95bf50cdab2e272fc7708"></a>
98 bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator!=</b> (const Loc &amp;p) const</td></tr>
99 <tr class="separator:a2fc5cf8788f95bf50cdab2e272fc7708"><td class="memSeparator" colspan="2">&#160;</td></tr>
100 <tr class="memitem:ac677b8d3ec02b5e28f5b485c6688f347"><td class="memItemLeft" align="right" valign="top"><a id="ac677b8d3ec02b5e28f5b485c6688f347"></a>
101 x_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>x_at</b> (x_coord_t dx, y_coord_t dy) const</td></tr>
102 <tr class="separator:ac677b8d3ec02b5e28f5b485c6688f347"><td class="memSeparator" colspan="2">&#160;</td></tr>
103 <tr class="memitem:a9254747c0198383ecf39c10f4a7844c5"><td class="memItemLeft" align="right" valign="top"><a id="a9254747c0198383ecf39c10f4a7844c5"></a>
104 x_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>x_at</b> (const <a class="el" href="classboost_1_1gil_1_1point.html">difference_type</a> &amp;d) const</td></tr>
105 <tr class="separator:a9254747c0198383ecf39c10f4a7844c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
106 <tr class="memitem:abd3d3c6fcce3ce7c72de0d2059fd015e"><td class="memItemLeft" align="right" valign="top"><a id="abd3d3c6fcce3ce7c72de0d2059fd015e"></a>
107 y_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>y_at</b> (x_coord_t dx, y_coord_t dy) const</td></tr>
108 <tr class="separator:abd3d3c6fcce3ce7c72de0d2059fd015e"><td class="memSeparator" colspan="2">&#160;</td></tr>
109 <tr class="memitem:a4c22db3e04d46f370dae91de935233fb"><td class="memItemLeft" align="right" valign="top"><a id="a4c22db3e04d46f370dae91de935233fb"></a>
110 y_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>y_at</b> (const <a class="el" href="classboost_1_1gil_1_1point.html">difference_type</a> &amp;d) const</td></tr>
111 <tr class="separator:a4c22db3e04d46f370dae91de935233fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
112 <tr class="memitem:a26fb7b21c165511095079ac298816209"><td class="memItemLeft" align="right" valign="top"><a id="a26fb7b21c165511095079ac298816209"></a>
113 Loc&#160;</td><td class="memItemRight" valign="bottom"><b>xy_at</b> (x_coord_t dx, y_coord_t dy) const</td></tr>
114 <tr class="separator:a26fb7b21c165511095079ac298816209"><td class="memSeparator" colspan="2">&#160;</td></tr>
115 <tr class="memitem:a7cd646736e5f090adc2ae141a5f690c9"><td class="memItemLeft" align="right" valign="top"><a id="a7cd646736e5f090adc2ae141a5f690c9"></a>
116 Loc&#160;</td><td class="memItemRight" valign="bottom"><b>xy_at</b> (const <a class="el" href="classboost_1_1gil_1_1point.html">difference_type</a> &amp;d) const</td></tr>
117 <tr class="separator:a7cd646736e5f090adc2ae141a5f690c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
118 <tr class="memitem:a99149c579785498e03160ecb1a41609d"><td class="memTemplParams" colspan="2"><a id="a99149c579785498e03160ecb1a41609d"></a>
119 template&lt;std::size_t D&gt; </td></tr>
120 <tr class="memitem:a99149c579785498e03160ecb1a41609d"><td class="memTemplItemLeft" align="right" valign="top">axis&lt; D &gt;::iterator &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>axis_iterator</b> ()</td></tr>
121 <tr class="separator:a99149c579785498e03160ecb1a41609d"><td class="memSeparator" colspan="2">&#160;</td></tr>
122 <tr class="memitem:afbe31de642fbd6534226beb9eaeeba17"><td class="memTemplParams" colspan="2"><a id="afbe31de642fbd6534226beb9eaeeba17"></a>
123 template&lt;std::size_t D&gt; </td></tr>
124 <tr class="memitem:afbe31de642fbd6534226beb9eaeeba17"><td class="memTemplItemLeft" align="right" valign="top">axis&lt; D &gt;::iterator const  &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>axis_iterator</b> () const</td></tr>
125 <tr class="separator:afbe31de642fbd6534226beb9eaeeba17"><td class="memSeparator" colspan="2">&#160;</td></tr>
126 <tr class="memitem:a149f9c63d1806d859360960fb66f7e71"><td class="memTemplParams" colspan="2"><a id="a149f9c63d1806d859360960fb66f7e71"></a>
127 template&lt;std::size_t D&gt; </td></tr>
128 <tr class="memitem:a149f9c63d1806d859360960fb66f7e71"><td class="memTemplItemLeft" align="right" valign="top">axis&lt; D &gt;::iterator&#160;</td><td class="memTemplItemRight" valign="bottom"><b>axis_iterator</b> (const <a class="el" href="classboost_1_1gil_1_1point.html">point_t</a> &amp;p) const</td></tr>
129 <tr class="separator:a149f9c63d1806d859360960fb66f7e71"><td class="memSeparator" colspan="2">&#160;</td></tr>
130 <tr class="memitem:a589233c96e618890b464e6ff4d53f36d"><td class="memItemLeft" align="right" valign="top"><a id="a589233c96e618890b464e6ff4d53f36d"></a>
131 reference&#160;</td><td class="memItemRight" valign="bottom"><b>operator()</b> (x_coord_t dx, y_coord_t dy) const</td></tr>
132 <tr class="separator:a589233c96e618890b464e6ff4d53f36d"><td class="memSeparator" colspan="2">&#160;</td></tr>
133 <tr class="memitem:aad6377cfeb4cde7ec3c0d98ca3ee943a"><td class="memItemLeft" align="right" valign="top"><a id="aad6377cfeb4cde7ec3c0d98ca3ee943a"></a>
134 reference&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (const <a class="el" href="classboost_1_1gil_1_1point.html">difference_type</a> &amp;d) const</td></tr>
135 <tr class="separator:aad6377cfeb4cde7ec3c0d98ca3ee943a"><td class="memSeparator" colspan="2">&#160;</td></tr>
136 <tr class="memitem:a5b18bb8c3a765334dd1e3bd2eb8374f3"><td class="memItemLeft" align="right" valign="top"><a id="a5b18bb8c3a765334dd1e3bd2eb8374f3"></a>
137 reference&#160;</td><td class="memItemRight" valign="bottom"><b>operator *</b> () const</td></tr>
138 <tr class="separator:a5b18bb8c3a765334dd1e3bd2eb8374f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
139 <tr class="memitem:a5183ba70dbe786e8dd0cb258b73ed2d2"><td class="memItemLeft" align="right" valign="top"><a id="a5183ba70dbe786e8dd0cb258b73ed2d2"></a>
140 Loc &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator+=</b> (const <a class="el" href="classboost_1_1gil_1_1point.html">difference_type</a> &amp;d)</td></tr>
141 <tr class="separator:a5183ba70dbe786e8dd0cb258b73ed2d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
142 <tr class="memitem:ae4adb8167f7979861b075323379317de"><td class="memItemLeft" align="right" valign="top"><a id="ae4adb8167f7979861b075323379317de"></a>
143 Loc &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator-=</b> (const <a class="el" href="classboost_1_1gil_1_1point.html">difference_type</a> &amp;d)</td></tr>
144 <tr class="separator:ae4adb8167f7979861b075323379317de"><td class="memSeparator" colspan="2">&#160;</td></tr>
145 <tr class="memitem:a889204668e3638b29078a7c51563f8e3"><td class="memItemLeft" align="right" valign="top"><a id="a889204668e3638b29078a7c51563f8e3"></a>
146 Loc&#160;</td><td class="memItemRight" valign="bottom"><b>operator+</b> (const <a class="el" href="classboost_1_1gil_1_1point.html">difference_type</a> &amp;d) const</td></tr>
147 <tr class="separator:a889204668e3638b29078a7c51563f8e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
148 <tr class="memitem:ad00224b883bb26060c9b155e1b6b582d"><td class="memItemLeft" align="right" valign="top"><a id="ad00224b883bb26060c9b155e1b6b582d"></a>
149 Loc&#160;</td><td class="memItemRight" valign="bottom"><b>operator-</b> (const <a class="el" href="classboost_1_1gil_1_1point.html">difference_type</a> &amp;d) const</td></tr>
150 <tr class="separator:ad00224b883bb26060c9b155e1b6b582d"><td class="memSeparator" colspan="2">&#160;</td></tr>
151 <tr class="memitem:abf9358069730bd5cd114f5cc07ee1f02"><td class="memItemLeft" align="right" valign="top"><a id="abf9358069730bd5cd114f5cc07ee1f02"></a>
152 <a class="el" href="classboost_1_1gil_1_1point.html">cached_location_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>cache_location</b> (const <a class="el" href="classboost_1_1gil_1_1point.html">difference_type</a> &amp;d) const</td></tr>
153 <tr class="separator:abf9358069730bd5cd114f5cc07ee1f02"><td class="memSeparator" colspan="2">&#160;</td></tr>
154 <tr class="memitem:a2e1034acfdb761f1457673463f2b8610"><td class="memItemLeft" align="right" valign="top"><a id="a2e1034acfdb761f1457673463f2b8610"></a>
155 <a class="el" href="classboost_1_1gil_1_1point.html">cached_location_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>cache_location</b> (x_coord_t dx, y_coord_t dy) const</td></tr>
156 <tr class="separator:a2e1034acfdb761f1457673463f2b8610"><td class="memSeparator" colspan="2">&#160;</td></tr>
157 </table><table class="memberdecls">
158 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
159 Static Public Attributes</h2></td></tr>
160 <tr class="memitem:acf81c27b3fffa67d66b47f46979b607e"><td class="memItemLeft" align="right" valign="top"><a id="acf81c27b3fffa67d66b47f46979b607e"></a>
161 static const std::size_t&#160;</td><td class="memItemRight" valign="bottom"><b>num_dimensions</b> =2</td></tr>
162 <tr class="separator:acf81c27b3fffa67d66b47f46979b607e"><td class="memSeparator" colspan="2">&#160;</td></tr>
163 </table><table class="memberdecls">
164 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
165 Friends</h2></td></tr>
166 <tr class="memitem:aec74e850d62b81bd65c6eec74f0c3352"><td class="memTemplParams" colspan="2"><a id="aec74e850d62b81bd65c6eec74f0c3352"></a>
167 template&lt;typename X &gt; </td></tr>
168 <tr class="memitem:aec74e850d62b81bd65c6eec74f0c3352"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><b>pixel_2d_locator</b></td></tr>
169 <tr class="separator:aec74e850d62b81bd65c6eec74f0c3352"><td class="memSeparator" colspan="2">&#160;</td></tr>
170 </table>
171 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
172 <div class="textblock"><h3>template&lt;typename Loc, typename XIterator, typename YIterator&gt;<br />
173 class boost::gil::pixel_2d_locator_base&lt; Loc, XIterator, YIterator &gt;</h3>
174
175 <p>base class for models of <a class="el" href="structboost_1_1gil_1_1_pixel_locator_concept.html" title="GIL&#39;s 2-dimensional locator over immutable GIL pixels.">PixelLocatorConcept</a></p>
176 <p>Pixel locator is similar to a pixel iterator, but allows for 2D navigation of pixels within an image view. It has a 2D difference_type and supports random access operations like: </p>
177 <div class="fragment"><div class="line">difference_type offset2(2,3);</div><div class="line">locator+=offset2;</div><div class="line">locator[offset2]=my_pixel;</div></div><!-- fragment --><p>In addition, each coordinate acts as a random-access iterator that can be modified separately: "++locator.x()" or "locator.y()+=10" thereby moving the locator horizontally or vertically.</p>
178 <p>It is called a locator because it doesn't implement the complete interface of a random access iterator. For example, increment and decrement operations don't make sense (no way to specify dimension). Also 2D difference between two locators cannot be computed without knowledge of the X position within the image.</p>
179 <p>This base class provides most of the methods and type aliases needed to create a model of a locator. GIL provides two locator models as subclasses of <code><a class="el" href="classboost_1_1gil_1_1pixel__2d__locator__base.html" title="base class for models of PixelLocatorConceptPixel locator is similar to a pixel iterator,...">pixel_2d_locator_base</a></code>. A memory-based locator, <code><a class="el" href="classboost_1_1gil_1_1memory__based__2d__locator.html" title="Memory-based pixel locator. Models: PixelLocatorConcept,HasDynamicXStepTypeConcept,...">memory_based_2d_locator</a></code> and a virtual locator, <code><a class="el" href="classboost_1_1gil_1_1virtual__2d__locator.html" title="A 2D locator over a virtual image Upon dereferencing, invokes a given function object passing it its ...">virtual_2d_locator</a></code>. The minimum functionality a subclass must provide is this: </p><div class="fragment"><div class="line"><span class="keyword">class </span>my_locator : <span class="keyword">public</span> pixel_2d_locator_base&lt;my_locator, ..., ...&gt; {  <span class="comment">// supply the types for x-iterator and y-iterator</span></div><div class="line">       <span class="keyword">using</span> const_t = ...;                      <span class="comment">// read-only locator</span></div><div class="line"></div><div class="line">       <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Deref&gt; <span class="keyword">struct </span>add_deref {</div><div class="line">           <span class="keyword">using</span> type = ...;                     <span class="comment">// locator that invokes the Deref dereference object upon pixel access</span></div><div class="line">           <span class="keyword">static</span> type make(<span class="keyword">const</span> my_locator&amp; loc, <span class="keyword">const</span> Deref&amp; d);</div><div class="line">       };</div><div class="line"></div><div class="line">       my_locator();</div><div class="line">       my_locator(<span class="keyword">const</span> my_locator&amp; pl);</div><div class="line"></div><div class="line">       <span class="comment">// constructors with dynamic step in y (and x). Only valid for locators with dynamic steps</span></div><div class="line">       my_locator(<span class="keyword">const</span> my_locator&amp; loc, coord_t y_step);</div><div class="line">       my_locator(<span class="keyword">const</span> my_locator&amp; loc, coord_t x_step, coord_t y_step, <span class="keywordtype">bool</span> transpose);</div><div class="line"></div><div class="line">       <span class="keywordtype">bool</span>              operator==(<span class="keyword">const</span> my_locator&amp; p) <span class="keyword">const</span>;</div><div class="line"></div><div class="line">       <span class="comment">// return _references_ to horizontal/vertical iterators. Advancing them moves this locator</span></div><div class="line">       x_iterator&amp;       x();</div><div class="line">       y_iterator&amp;       y();</div><div class="line">       x_iterator <span class="keyword">const</span>&amp; x() <span class="keyword">const</span>;</div><div class="line">       y_iterator <span class="keyword">const</span>&amp; y() <span class="keyword">const</span>;</div><div class="line"></div><div class="line">       <span class="comment">// return the vertical distance to another locator. Some models need the horizontal distance to compute it</span></div><div class="line">       y_coord_t         y_distance_to(<span class="keyword">const</span> my_locator&amp; loc2, x_coord_t xDiff) <span class="keyword">const</span>;</div><div class="line"></div><div class="line">       <span class="comment">// return true iff incrementing an x-iterator located at the last column will position it at the first</span></div><div class="line">       <span class="comment">// column of the next row. Some models need the image width to determine that.</span></div><div class="line">       <span class="keywordtype">bool</span>              is_1d_traversable(x_coord_t width) <span class="keyword">const</span>;</div><div class="line">};</div></div><!-- fragment --><p>Models may choose to override some of the functions in the base class with more efficient versions. </p>
180 </div><hr/>The documentation for this class was generated from the following file:<ul>
181 <li><a class="el" href="locator_8hpp_source.html">locator.hpp</a></li>
182 </ul>
183 </div><!-- contents -->
184      <!-- HTML footer for doxygen 1.8.13-->
185      <!-- start footer part -->
186      <hr class="footer"/>
187      <address class="footer">
188       <small>
189         Generated by &#160;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.15
190       </small>
191     </address>
192   </body>
193 </html>