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: RandomAccessNDLocatorConcept Struct 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_0374.html">RandomAccessNDLocatorConcept
</a>
40 <div class=
"contents">
41 <h1>RandomAccessNDLocatorConcept Struct Template Reference
<br>
43 [
<a class=
"el" href=
"g_i_l_0172.html">RandomAccessNDLocatorConcept
</a>]
</small>
44 </h1><!-- doxytag: class="boost::gil::RandomAccessNDLocatorConcept" --><code>#include
<<a class=
"el" href=
"g_i_l_0091.html">gil_concept.hpp
</a>></code>
48 <a href=
"g_i_l_0373.html">List of all members.
</a><hr><a name=
"_details"></a><h2>Detailed Description
</h2>
49 <h3>template
<typename Loc
><br>
50 struct boost::gil::RandomAccessNDLocatorConcept
< Loc
></h3>
52 N-dimensional locator over immutable values.
54 <div class=
"fragment"><pre class=
"fragment">concept RandomAccessNDLocatorConcept
<Regular Loc
> {
55 <span class=
"keyword">typename
</span> value_type;
<span class=
"comment">// value over which the locator navigates
</span>
56 <span class=
"keyword">typename
</span> reference;
<span class=
"comment">// result of dereferencing
</span>
57 <span class=
"keyword">typename
</span> difference_type; where PointNDConcept
<difference_type
>;
<span class=
"comment">// return value of operator-.
</span>
58 <span class=
"keyword">typename
</span> const_t;
<span class=
"comment">// same as Loc, but operating over immutable values
</span>
59 <span class=
"keyword">typename
</span> cached_location_t;
<span class=
"comment">// type to store relative location (for efficient repeated access)
</span>
60 <span class=
"keyword">typename
</span> point_t = difference_type;
62 <span class=
"keyword">static
</span> <span class=
"keyword">const
</span> <span class=
"keywordtype">size_t
</span> num_dimensions;
<span class=
"comment">// dimensionality of the locator
</span>
63 where num_dimensions = point_t::num_dimensions;
65 <span class=
"comment">// The difference_type and iterator type along each dimension. The iterators may only differ in
</span>
66 <span class=
"comment">// difference_type. Their value_type must be the same as Loc::value_type
</span>
67 <span class=
"keyword">template
</span> <<span class=
"keywordtype">size_t
</span> D
> <span class=
"keyword">struct
</span>axis {
68 <span class=
"keyword">typename
</span> coord_t = point_t::axis
<D
>::coord_t;
69 <span class=
"keyword">typename
</span> iterator; where RandomAccessTraversalConcept
<iterator
>;
<span class=
"comment">// iterator along D-th axis.
</span>
70 where iterator::value_type == value_type;
73 <span class=
"comment">// Defines the type of a locator similar to this type, except it invokes Deref upon dereferencing
</span>
74 <span class=
"keyword">template
</span> <PixelDereferenceAdaptorConcept Deref
> <span class=
"keyword">struct
</span>add_deref {
75 <span class=
"keyword">typename
</span> type; where RandomAccessNDLocatorConcept
<type
>;
76 <span class=
"keyword">static
</span> type make(
<span class=
"keyword">const
</span> Loc
& loc,
<span class=
"keyword">const
</span> Deref
& deref);
79 Loc
& operator+=(Loc
&,
<span class=
"keyword">const
</span> difference_type
&);
80 Loc
& operator-=(Loc
&,
<span class=
"keyword">const
</span> difference_type
&);
81 Loc operator+(
<span class=
"keyword">const
</span> Loc
&,
<span class=
"keyword">const
</span> difference_type
&);
82 Loc operator-(
<span class=
"keyword">const
</span> Loc
&,
<span class=
"keyword">const
</span> difference_type
&);
84 reference operator*(
<span class=
"keyword">const
</span> Loc
&);
85 reference operator[](
<span class=
"keyword">const
</span> Loc
&,
<span class=
"keyword">const
</span> difference_type
&);
87 <span class=
"comment">// Storing relative location for faster repeated access and accessing it
</span>
88 cached_location_t Loc::cache_location(
<span class=
"keyword">const
</span> difference_type
&)
<span class=
"keyword">const
</span>;
89 reference operator[](
<span class=
"keyword">const
</span> Loc
&,
<span class=
"keyword">const
</span> cached_location_t
&);
91 <span class=
"comment">// Accessing iterators along a given dimension at the current location or at a given offset
</span>
92 <span class=
"keyword">template
</span> <<span class=
"keywordtype">size_t
</span> D
> axis
<D
>::iterator
& Loc::axis_iterator();
93 <span class=
"keyword">template
</span> <<span class=
"keywordtype">size_t
</span> D
> axis
<D
>::iterator
<span class=
"keyword">const
</span>& Loc::axis_iterator()
<span class=
"keyword">const
</span>;
94 <span class=
"keyword">template
</span> <<span class=
"keywordtype">size_t
</span> D
> axis
<D
>::iterator Loc::axis_iterator(
<span class=
"keyword">const
</span> difference_type
&)
<span class=
"keyword">const
</span>;
96 </pre></div> <table border=
"0" cellpadding=
"0" cellspacing=
"0">
98 <tr><td colspan=
"2"><br><h2>Public Member Functions
</h2></td></tr>
99 <tr><td class=
"memItemLeft" nowrap
align=
"right" valign=
"top"><a class=
"anchor" name=
"b0a0dbf6ca9028bbbb2240cad5882537"></a><!-- doxytag: member="boost::gil::RandomAccessNDLocatorConcept::constraints" ref="b0a0dbf6ca9028bbbb2240cad5882537" args="()" -->
100 void
</td><td class=
"memItemRight" valign=
"bottom"><b>constraints
</b> ()
</td></tr>
102 <tr><td colspan=
"2"><br><h2>Public Attributes
</h2></td></tr>
103 <tr><td class=
"memItemLeft" nowrap
align=
"right" valign=
"top"><a class=
"anchor" name=
"78b239cb3da334ec5ca272453ae698f1"></a><!-- doxytag: member="boost::gil::RandomAccessNDLocatorConcept::loc" ref="78b239cb3da334ec5ca272453ae698f1" args="" -->
104 Loc
</td><td class=
"memItemRight" valign=
"bottom"><b>loc
</b></td></tr>
107 <hr>The documentation for this struct was generated from the following file:
<ul>
108 <li><a class=
"el" href=
"g_i_l_0091.html">gil_concept.hpp
</a></ul>
110 <hr size=
"1"><address style=
"text-align: right;"><small>Generated on Sat May
2 13:
50:
17 2009 for Generic Image Library by
111 <a href=
"http://www.doxygen.org/index.html">
112 <img src=
"doxygen.png" alt=
"doxygen" align=
"middle" border=
"0"></a> 1.5.6 </small></address>