blob: e0d74e15e63f1f88129225f918568abae2f382d9 [file] [log] [blame]
<!-- Copyright 2008 Lubomir Bourdev and Hailin Jin
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<!--
Copyright 2005-2007 Adobe Systems Incorporated
Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt
or a copy at http://stlab.adobe.com/licenses.html)
Some files are held under additional license.
Please see "http://stlab.adobe.com/licenses.html" for more information.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<TITLE>Generic Image Library: RandomAccessNDImageViewConcept Struct Template Reference</TITLE>
<META HTTP-EQUIV="content-type" CONTENT="text/html;charset=ISO-8859-1"/>
<LINK TYPE="text/css" REL="stylesheet" HREF="adobe_source.css"/>
</head>
<body>
<table border="0" cellspacing="0" cellpadding="0" style='width: 100%; margin: 0; padding: 0'><tr>
<td width="100%" valign="top" style='padding-left: 10px; padding-right: 10px; padding-bottom: 10px'>
<div class="qindex"><a class="qindex" href="index.html">Modules</a>
| <a class="qindex" href="classes.html">Alphabetical List</a>
| <a class="qindex" href="annotated.html">Class List</a>
| <a class="qindex" href="dirs.html">Directories</a>
| <a class="qindex" href="files.html">File List</a>
| <a class="qindex" href="../index.html">GIL Home Page</a>
</div>
<!-- End Header -->
<!-- Generated by Doxygen 1.5.6 -->
<div class="navpath"><a class="el" href="namespaceboost.html">boost</a>::<b>gil</b>::<a class="el" href="g_i_l_0372.html">RandomAccessNDImageViewConcept</a>
</div>
<div class="contents">
<h1>RandomAccessNDImageViewConcept Struct Template Reference<br>
<small>
[<a class="el" href="g_i_l_0142.html">ImageViewNDLocatorConcept</a>]</small>
</h1><!-- doxytag: class="boost::gil::RandomAccessNDImageViewConcept" --><code>#include &lt;<a class="el" href="g_i_l_0091.html">gil_concept.hpp</a>&gt;</code>
<p>
<p>
<a href="g_i_l_0371.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;typename View&gt;<br>
struct boost::gil::RandomAccessNDImageViewConcept&lt; View &gt;</h3>
N-dimensional view over immutable values.
<p>
<div class="fragment"><pre class="fragment">concept RandomAccessNDImageViewConcept&lt;Regular View&gt; {
<span class="keyword">typename</span> value_type;
<span class="keyword">typename</span> reference; <span class="comment">// result of dereferencing</span>
<span class="keyword">typename</span> difference_type; <span class="comment">// result of operator-(iterator,iterator) (1-dimensional!)</span>
<span class="keyword">typename</span> const_t; where RandomAccessNDImageViewConcept&lt;View&gt;; <span class="comment">// same as View, but over immutable values</span>
<span class="keyword">typename</span> point_t; where PointNDConcept&lt;point_t&gt;; <span class="comment">// N-dimensional point</span>
<span class="keyword">typename</span> locator; where RandomAccessNDLocatorConcept&lt;locator&gt;; <span class="comment">// N-dimensional locator.</span>
<span class="keyword">typename</span> iterator; where RandomAccessTraversalConcept&lt;iterator&gt;; <span class="comment">// 1-dimensional iterator over all values</span>
<span class="keyword">typename</span> reverse_iterator; where RandomAccessTraversalConcept&lt;reverse_iterator&gt;;
<span class="keyword">typename</span> size_type; <span class="comment">// the return value of size()</span>
<span class="comment">// Equivalent to RandomAccessNDLocatorConcept::axis</span>
<span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> D&gt; <span class="keyword">struct </span>axis {
<span class="keyword">typename</span> coord_t = point_t::axis&lt;D&gt;::coord_t;
<span class="keyword">typename</span> iterator; where RandomAccessTraversalConcept&lt;iterator&gt;; <span class="comment">// iterator along D-th axis.</span>
where SameType&lt;coord_t, iterator::difference_type&gt;;
where SameType&lt;iterator::value_type,value_type&gt;;
};
<span class="comment">// Defines the type of a view similar to this type, except it invokes Deref upon dereferencing</span>
<span class="keyword">template</span> &lt;PixelDereferenceAdaptorConcept Deref&gt; <span class="keyword">struct </span>add_deref {
<span class="keyword">typename</span> type; where RandomAccessNDImageViewConcept&lt;type&gt;;
<span class="keyword">static</span> type make(<span class="keyword">const</span> View&amp; v, <span class="keyword">const</span> Deref&amp; deref);
};
<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> num_dimensions = point_t::num_dimensions;
<span class="comment">// Create from a locator at the top-left corner and dimensions</span>
View::View(<span class="keyword">const</span> locator&amp;, <span class="keyword">const</span> point_type&amp;);
size_type View::size() <span class="keyword">const</span>; <span class="comment">// total number of elements</span>
reference operator[](View, <span class="keyword">const</span> difference_type&amp;) <span class="keyword">const</span>; <span class="comment">// 1-dimensional reference</span>
iterator View::begin() <span class="keyword">const</span>;
iterator View::end() <span class="keyword">const</span>;
reverse_iterator View::rbegin() <span class="keyword">const</span>;
reverse_iterator View::rend() <span class="keyword">const</span>;
iterator View::at(<span class="keyword">const</span> point_t&amp;);
point_t View::dimensions() <span class="keyword">const</span>; <span class="comment">// number of elements along each dimension</span>
<span class="keywordtype">bool</span> View::is_1d_traversable() <span class="keyword">const</span>; <span class="comment">// can an iterator over the first dimension visit each value? I.e. are there gaps between values?</span>
<span class="comment">// iterator along a given dimension starting at a given point</span>
<span class="keyword">template</span> &lt;<span class="keywordtype">size_t</span> D&gt; View::axis&lt;D&gt;::iterator View::axis_iterator(<span class="keyword">const</span> point_t&amp;) <span class="keyword">const</span>;
reference operator()(View,<span class="keyword">const</span> point_t&amp;) <span class="keyword">const</span>;
};
</pre></div> <table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b0a0dbf6ca9028bbbb2240cad5882537"></a><!-- doxytag: member="boost::gil::RandomAccessNDImageViewConcept::constraints" ref="b0a0dbf6ca9028bbbb2240cad5882537" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>constraints</b> ()</td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ac435eb4d053aa36fa4760f634ca37ca"></a><!-- doxytag: member="boost::gil::RandomAccessNDImageViewConcept::view" ref="ac435eb4d053aa36fa4760f634ca37ca" args="" -->
View&nbsp;</td><td class="memItemRight" valign="bottom"><b>view</b></td></tr>
</table>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="g_i_l_0091.html">gil_concept.hpp</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 2 13:50:18 2009 for Generic Image Library by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>