blob: 9ce3baa05da17fdee8a45aa4478aa50bdf938027 [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: algorithm.hpp File 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="g_i_l_0076.html">boost</a>&nbsp;&raquo&nbsp;<a class="el" href="g_i_l_0079.html">gil</a>
</div>
<div class="contents">
<h1>algorithm.hpp File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
Some basic STL-style algorithms when applied to image views.
<p>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Lubomir Bourdev and Hailin Jin <br>
Adobe Systems Incorporated </dd></dl>
<dl class="date" compact><dt><b>Date:</b></dt><dd>2005-2008 <br>
Last updated on March 12, 2008 </dd></dl>
<p>
<code>#include &lt;cassert&gt;</code><br>
<code>#include &lt;cstddef&gt;</code><br>
<code>#include &lt;cstring&gt;</code><br>
<code>#include &lt;algorithm&gt;</code><br>
<code>#include &lt;iterator&gt;</code><br>
<code>#include &lt;memory&gt;</code><br>
<code>#include &lt;typeinfo&gt;</code><br>
<code>#include &quot;<a class="el" href="g_i_l_0093.html">gil_config.hpp</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="g_i_l_0091.html">gil_concept.hpp</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="g_i_l_0068.html">color_base_algorithm.hpp</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="g_i_l_0224.html">image_view.hpp</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="g_i_l_0226.html">image_view_factory.hpp</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="g_i_l_0010.html">bit_aligned_pixel_iterator.hpp</a>&quot;</code><br>
<p>
<a href="g_i_l_0001.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Namespaces</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><b>boost::gil</b></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><b>std</b></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><b>boost::gil::detail</b></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0387.html">binary_operation_obj</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A generic binary operation on views<p>
Use this class as a convenience superclass when defining an operation for any <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> views. Many operations have different behavior when the two views are compatible. This class checks for compatibility and invokes apply_compatible(V1,V2) or apply_incompatible(V1,V2) of the subclass. You must provide apply_compatible(V1,V2) method in your subclass, but apply_incompatible(V1,V2) is not required and the default throws std::bad_cast. <a href="g_i_l_0387.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0479.html">copier_n</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0483.html">copier_n&lt; iterator_from_2d&lt; IL &gt;, O &gt;</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Source range is delimited by <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> iterators. <a href="g_i_l_0483.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0481.html">copier_n&lt; I, iterator_from_2d&lt; OL &gt; &gt;</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destination range is delimited by <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> iterators. <a href="g_i_l_0481.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0485.html">copier_n&lt; iterator_from_2d&lt; IL &gt;, iterator_from_2d&lt; OL &gt; &gt;</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Both source and destination ranges are delimited by <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> iterators. <a href="g_i_l_0485.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0521.html">std_fill_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">struct to do std::fill <a href="g_i_l_0521.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0494.html">equal_n_fn&lt; const pixel&lt; T, Cs &gt; *, const pixel&lt; T, Cs &gt; * &gt;</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0496.html">equal_n_fn&lt; planar_pixel_iterator&lt; IC, Cs &gt;, planar_pixel_iterator&lt; IC, Cs &gt; &gt;</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0493.html">equal_n_fn&lt; boost::gil::iterator_from_2d&lt; Loc &gt;, I2 &gt;</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Source range is delimited by <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> iterators. <a href="g_i_l_0493.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0489.html">equal_n_fn&lt; I1, boost::gil::iterator_from_2d&lt; Loc &gt; &gt;</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destination range is delimited by <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> iterators. <a href="g_i_l_0489.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0490.html">equal_n_fn&lt; boost::gil::iterator_from_2d&lt; Loc1 &gt;, boost::gil::iterator_from_2d&lt; Loc2 &gt; &gt;</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Both source and destination ranges are delimited by <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> iterators. <a href="g_i_l_0490.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="gc2faa90ab27d7fb0253d19839c75d341"></a><!-- doxytag: member="algorithm.hpp::copy" ref="gc2faa90ab27d7fb0253d19839c75d341" args="(boost::gil::pixel&lt; T, Cs &gt; *first, boost::gil::pixel&lt; T, Cs &gt; *last, boost::gil::pixel&lt; T, Cs &gt; *dst)" -->
template&lt;typename T, typename Cs&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE <br>
<a class="el" href="g_i_l_0599.html">boost::gil::pixel</a>&lt; T, Cs &gt; *&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0214.html#gc2faa90ab27d7fb0253d19839c75d341">copy</a> (<a class="el" href="g_i_l_0599.html">boost::gil::pixel</a>&lt; T, Cs &gt; *first, <a class="el" href="g_i_l_0599.html">boost::gil::pixel</a>&lt; T, Cs &gt; *last, <a class="el" href="g_i_l_0599.html">boost::gil::pixel</a>&lt; T, Cs &gt; *dst)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy when both src and dst are interleaved and of the same type can be just memmove. <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g85354afb86367e7d21162317463e8743"></a><!-- doxytag: member="algorithm.hpp::copy" ref="g85354afb86367e7d21162317463e8743" args="(const boost::gil::pixel&lt; T, Cs &gt; *first, const boost::gil::pixel&lt; T, Cs &gt; *last, boost::gil::pixel&lt; T, Cs &gt; *dst)" -->
template&lt;typename T, typename Cs&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE <br>
<a class="el" href="g_i_l_0599.html">boost::gil::pixel</a>&lt; T, Cs &gt; *&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0214.html#g85354afb86367e7d21162317463e8743">copy</a> (const <a class="el" href="g_i_l_0599.html">boost::gil::pixel</a>&lt; T, Cs &gt; *first, const <a class="el" href="g_i_l_0599.html">boost::gil::pixel</a>&lt; T, Cs &gt; *last, <a class="el" href="g_i_l_0599.html">boost::gil::pixel</a>&lt; T, Cs &gt; *dst)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy when both src and dst are interleaved and of the same type can be just memmove. <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g4e8a9e1bb08e76c93dc56a4626231ee1"></a><!-- doxytag: member="algorithm.hpp::copy" ref="g4e8a9e1bb08e76c93dc56a4626231ee1" args="(boost::gil::planar_pixel_iterator&lt; IC1, Cs &gt; first, boost::gil::planar_pixel_iterator&lt; IC1, Cs &gt; last, boost::gil::planar_pixel_iterator&lt; IC2, Cs &gt; dst)" -->
template&lt;typename Cs, typename IC1, typename IC2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE <br>
<a class="el" href="g_i_l_0609.html">boost::gil::planar_pixel_iterator</a><br>
&lt; IC2, Cs &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0214.html#g4e8a9e1bb08e76c93dc56a4626231ee1">copy</a> (<a class="el" href="g_i_l_0609.html">boost::gil::planar_pixel_iterator</a>&lt; IC1, Cs &gt; first, <a class="el" href="g_i_l_0609.html">boost::gil::planar_pixel_iterator</a>&lt; IC1, Cs &gt; last, <a class="el" href="g_i_l_0609.html">boost::gil::planar_pixel_iterator</a>&lt; IC2, Cs &gt; dst)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy when both src and dst are planar pointers is copy for each channel. <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="60c9557acd79cc1079a1dbaa72785c04"></a><!-- doxytag: member="algorithm.hpp::copy_with_2d_iterators" ref="60c9557acd79cc1079a1dbaa72785c04" args="(SrcIterator first, SrcIterator last, DstIterator dst)" -->
template&lt;typename SrcIterator, typename DstIterator&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE DstIterator&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>copy_with_2d_iterators</b> (SrcIterator first, SrcIterator last, DstIterator dst)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g12594bf8bdb7b27c070987a3d30293ba"></a><!-- doxytag: member="algorithm.hpp::copy1" ref="g12594bf8bdb7b27c070987a3d30293ba" args="(boost::gil::iterator_from_2d&lt; IL &gt; first, boost::gil::iterator_from_2d&lt; IL &gt; last, boost::gil::iterator_from_2d&lt; OL &gt; dst)" -->
template&lt;typename IL, typename OL&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE <br>
<a class="el" href="g_i_l_0042.html">boost::gil::iterator_from_2d</a><br>
&lt; OL &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0214.html#g12594bf8bdb7b27c070987a3d30293ba">copy1</a> (<a class="el" href="g_i_l_0042.html">boost::gil::iterator_from_2d</a>&lt; IL &gt; first, <a class="el" href="g_i_l_0042.html">boost::gil::iterator_from_2d</a>&lt; IL &gt; last, <a class="el" href="g_i_l_0042.html">boost::gil::iterator_from_2d</a>&lt; OL &gt; dst)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::copy(I1,I1,I2) with I1 and I2 being a iterator_from_2d <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g16f18749152217a2b84733c330a2b415"></a><!-- doxytag: member="algorithm.hpp::copy_pixels" ref="g16f18749152217a2b84733c330a2b415" args="(const View1 &amp;src, const View2 &amp;dst)" -->
template&lt;typename View1, typename View2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0145.html#g16f18749152217a2b84733c330a2b415">copy_pixels</a> (const View1 &amp;src, const View2 &amp;dst)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::copy for <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> views <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="gfd619231a3e277a7b51c35c4819eec37"></a><!-- doxytag: member="algorithm.hpp::copy_and_convert_pixels" ref="gfd619231a3e277a7b51c35c4819eec37" args="(const V1 &amp;src, const V2 &amp;dst, CC cc)" -->
template&lt;typename V1, typename V2, typename CC&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>copy_and_convert_pixels</b> (const V1 &amp;src, const V2 &amp;dst, CC cc)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g32200f2e09a83d780890ba87e10342e5"></a><!-- doxytag: member="algorithm.hpp::copy_and_convert_pixels" ref="g32200f2e09a83d780890ba87e10342e5" args="(const View1 &amp;src, const View2 &amp;dst)" -->
template&lt;typename View1, typename View2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>copy_and_convert_pixels</b> (const View1 &amp;src, const View2 &amp;dst)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename IL, typename V&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0214.html#g718772a47188f4e2ecfce2f28fa3dc4f">fill</a> (<a class="el" href="g_i_l_0042.html">boost::gil::iterator_from_2d</a>&lt; IL &gt; first, <a class="el" href="g_i_l_0042.html">boost::gil::iterator_from_2d</a>&lt; IL &gt; last, const V &amp;val)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::fill(I,I,V) with I being a iterator_from_2d <a href="g_i_l_0214.html#g718772a47188f4e2ecfce2f28fa3dc4f"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="e68bcc02418f9c3182af982442b12ac8"></a><!-- doxytag: member="algorithm.hpp::fill_aux" ref="e68bcc02418f9c3182af982442b12ac8" args="(It first, It last, const P &amp;p, mpl::true_)" -->
template&lt;typename It, typename P&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1gil_1_1detail.html#e68bcc02418f9c3182af982442b12ac8">fill_aux</a> (It first, It last, const P &amp;p, mpl::true_)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::fill for planar iterators <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="7e87d95ab6a4d4fc2bc675bcc3247752"></a><!-- doxytag: member="algorithm.hpp::fill_aux" ref="7e87d95ab6a4d4fc2bc675bcc3247752" args="(It first, It last, const P &amp;p, mpl::false_)" -->
template&lt;typename It, typename P&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1gil_1_1detail.html#7e87d95ab6a4d4fc2bc675bcc3247752">fill_aux</a> (It first, It last, const P &amp;p, mpl::false_)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::fill for interleaved iterators <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g3b28c66102763fd1d42f69e4eefa631f"></a><!-- doxytag: member="algorithm.hpp::fill_pixels" ref="g3b28c66102763fd1d42f69e4eefa631f" args="(const View &amp;img_view, const Value &amp;val)" -->
template&lt;typename View, typename Value&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0149.html#g3b28c66102763fd1d42f69e4eefa631f">fill_pixels</a> (const View &amp;img_view, const Value &amp;val)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::fill for <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> views <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="c7567ed1e3fcbf70457343766b202a4a"></a><!-- doxytag: member="algorithm.hpp::destruct_range_impl" ref="c7567ed1e3fcbf70457343766b202a4a" args="(It first, It last, mpl::true_)" -->
template&lt;typename It&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>destruct_range_impl</b> (It first, It last, mpl::true_)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="bf4c0e9795fce9fafc29ad78b55242f3"></a><!-- doxytag: member="algorithm.hpp::destruct_range_impl" ref="bf4c0e9795fce9fafc29ad78b55242f3" args="(It first, It last, mpl::false_)" -->
template&lt;typename It&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>destruct_range_impl</b> (It first, It last, mpl::false_)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="ca738e0e80c6f7c62bb5728e3c933d83"></a><!-- doxytag: member="algorithm.hpp::destruct_range" ref="ca738e0e80c6f7c62bb5728e3c933d83" args="(It first, It last)" -->
template&lt;typename It&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>destruct_range</b> (It first, It last)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="f293fbbea53fa700bdad2f0da08d2821"></a><!-- doxytag: member="algorithm.hpp::destruct_aux" ref="f293fbbea53fa700bdad2f0da08d2821" args="(It first, It last, mpl::true_)" -->
template&lt;typename It&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1gil_1_1detail.html#f293fbbea53fa700bdad2f0da08d2821">destruct_aux</a> (It first, It last, mpl::true_)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">destruct for planar iterators <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="9655833d86077d2c6daceeacd2c7f021"></a><!-- doxytag: member="algorithm.hpp::destruct_aux" ref="9655833d86077d2c6daceeacd2c7f021" args="(It first, It last, mpl::false_)" -->
template&lt;typename It&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1gil_1_1detail.html#9655833d86077d2c6daceeacd2c7f021">destruct_aux</a> (It first, It last, mpl::false_)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">destruct for interleaved iterators <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g5c465a97a10e15d9ce18a3c2fff7f91d"></a><!-- doxytag: member="algorithm.hpp::destruct_pixels" ref="g5c465a97a10e15d9ce18a3c2fff7f91d" args="(const View &amp;img_view)" -->
template&lt;typename View&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0147.html#g5c465a97a10e15d9ce18a3c2fff7f91d">destruct_pixels</a> (const View &amp;img_view)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invokes the in-place destructor on every <a class="el" href="g_i_l_0599.html" title="Represents a pixel value (a container of channels). Models: HomogeneousColorBaseValueConcept...">pixel</a> of the view. <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename It, typename P&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1gil_1_1detail.html#19c5dcdbfda628cea83086945c55fd20">uninitialized_fill_aux</a> (It first, It last, const P &amp;p, mpl::true_)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename It, typename P&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1gil_1_1detail.html#3cb35d2bc216d391b50dff837d5a279c">uninitialized_fill_aux</a> (It first, It last, const P &amp;p, mpl::false_)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g4f5edbc3fe6b776c6aa1939902333cf3"></a><!-- doxytag: member="algorithm.hpp::uninitialized_fill_pixels" ref="g4f5edbc3fe6b776c6aa1939902333cf3" args="(const View &amp;img_view, const Value &amp;val)" -->
template&lt;typename View, typename Value&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0156.html#g4f5edbc3fe6b776c6aa1939902333cf3">uninitialized_fill_pixels</a> (const View &amp;img_view, const Value &amp;val)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::uninitialized_fill for <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> views. Does not support planar heterogeneous views. If an exception is thrown destructs any in-place copy-constructed pixels <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="67b3b3517416e50184c56c622dcea4de"></a><!-- doxytag: member="algorithm.hpp::default_construct_range_impl" ref="67b3b3517416e50184c56c622dcea4de" args="(It first, It last, mpl::true_)" -->
template&lt;typename It&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>default_construct_range_impl</b> (It first, It last, mpl::true_)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="26022a1dc5736d6eeb0eded6b494e6dd"></a><!-- doxytag: member="algorithm.hpp::default_construct_range_impl" ref="26022a1dc5736d6eeb0eded6b494e6dd" args="(It first, It last, mpl::false_)" -->
template&lt;typename It&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>default_construct_range_impl</b> (It first, It last, mpl::false_)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="70ca8ee31353b63614797d45cbf1768c"></a><!-- doxytag: member="algorithm.hpp::default_construct_range" ref="70ca8ee31353b63614797d45cbf1768c" args="(It first, It last)" -->
template&lt;typename It&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>default_construct_range</b> (It first, It last)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="c80fcb5b3802d8a2b79a6d0af3056dd1"></a><!-- doxytag: member="algorithm.hpp::default_construct_aux" ref="c80fcb5b3802d8a2b79a6d0af3056dd1" args="(It first, It last, mpl::true_)" -->
template&lt;typename It&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1gil_1_1detail.html#c80fcb5b3802d8a2b79a6d0af3056dd1">default_construct_aux</a> (It first, It last, mpl::true_)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">uninitialized_default_construct for planar iterators <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="e83908fe6c7ad32c3aeaf101358c1038"></a><!-- doxytag: member="algorithm.hpp::default_construct_aux" ref="e83908fe6c7ad32c3aeaf101358c1038" args="(It first, It last, mpl::false_)" -->
template&lt;typename It&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1gil_1_1detail.html#e83908fe6c7ad32c3aeaf101358c1038">default_construct_aux</a> (It first, It last, mpl::false_)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">uninitialized_default_construct for interleaved iterators <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g523e1cfd5c8023f14055cb52489431c8"></a><!-- doxytag: member="algorithm.hpp::default_construct_pixels" ref="g523e1cfd5c8023f14055cb52489431c8" args="(const View &amp;img_view)" -->
template&lt;typename View&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0146.html#g523e1cfd5c8023f14055cb52489431c8">default_construct_pixels</a> (const View &amp;img_view)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invokes the in-place default constructor on every <a class="el" href="g_i_l_0599.html" title="Represents a pixel value (a container of channels). Models: HomogeneousColorBaseValueConcept...">pixel</a> of the (uninitialized) view. Does not support planar heterogeneous views. If an exception is thrown destructs any in-place default-constructed pixels. <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="c547ca067491f3e83ee765f5ff729839"></a><!-- doxytag: member="algorithm.hpp::uninitialized_copy_aux" ref="c547ca067491f3e83ee765f5ff729839" args="(It1 first1, It1 last1, It2 first2, mpl::true_)" -->
template&lt;typename It1, typename It2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1gil_1_1detail.html#c547ca067491f3e83ee765f5ff729839">uninitialized_copy_aux</a> (It1 first1, It1 last1, It2 first2, mpl::true_)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::uninitialized_copy for pairs of planar iterators <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="33624f767955cf97e09868d686e950cb"></a><!-- doxytag: member="algorithm.hpp::uninitialized_copy_aux" ref="33624f767955cf97e09868d686e950cb" args="(It1 first1, It1 last1, It2 first2, mpl::false_)" -->
template&lt;typename It1, typename It2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceboost_1_1gil_1_1detail.html#33624f767955cf97e09868d686e950cb">uninitialized_copy_aux</a> (It1 first1, It1 last1, It2 first2, mpl::false_)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::uninitialized_copy for interleaved or mixed iterators <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="ge33d703beb3b085809b3b3ca64cc8906"></a><!-- doxytag: member="algorithm.hpp::uninitialized_copy_pixels" ref="ge33d703beb3b085809b3b3ca64cc8906" args="(const View1 &amp;view1, const View2 &amp;view2)" -->
template&lt;typename View1, typename View2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0155.html#ge33d703beb3b085809b3b3ca64cc8906">uninitialized_copy_pixels</a> (const View1 &amp;view1, const View2 &amp;view2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::uninitialized_copy for <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> views. Does not support planar heterogeneous views. If an exception is thrown destructs any in-place copy-constructed objects <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g5123ef0d9c6db38be9eecce4ac996da2"></a><!-- doxytag: member="algorithm.hpp::for_each_pixel" ref="g5123ef0d9c6db38be9eecce4ac996da2" args="(const V &amp;img, F fun)" -->
template&lt;typename V, typename F&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">F&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>for_each_pixel</b> (const V &amp;img, F fun)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="gbf0ee7e6dc8e633ef1742b904c134acd"></a><!-- doxytag: member="algorithm.hpp::for_each_pixel_position" ref="gbf0ee7e6dc8e633ef1742b904c134acd" args="(const View &amp;img, F fun)" -->
template&lt;typename View, typename F&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">F&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>for_each_pixel_position</b> (const View &amp;img, F fun)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="gdce3525a9aa4794ba807cfb8c0100d2f"></a><!-- doxytag: member="algorithm.hpp::generate_pixels" ref="gdce3525a9aa4794ba807cfb8c0100d2f" args="(const View &amp;v, F fun)" -->
template&lt;typename View, typename F&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0152.html#gdce3525a9aa4794ba807cfb8c0100d2f">generate_pixels</a> (const View &amp;v, F fun)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::generate for <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> views <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="7ea5adae5d27a6a031a8db6adac1842e"></a><!-- doxytag: member="algorithm.hpp::equal_n" ref="7ea5adae5d27a6a031a8db6adac1842e" args="(I1 i1, std::ptrdiff_t n, I2 i2)" -->
template&lt;typename I1, typename I2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><b>equal_n</b> (I1 i1, std::ptrdiff_t n, I2 i2)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;typename Loc1, typename Loc2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0214.html#g4ed3cf71cb0fbf435d1389df8567a4e5">equal</a> (<a class="el" href="g_i_l_0042.html">boost::gil::iterator_from_2d</a>&lt; Loc1 &gt; first, <a class="el" href="g_i_l_0042.html">boost::gil::iterator_from_2d</a>&lt; Loc1 &gt; last, <a class="el" href="g_i_l_0042.html">boost::gil::iterator_from_2d</a>&lt; Loc2 &gt; first2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::equal(I1,I1,I2) with I1 and I2 being a iterator_from_2d <a href="g_i_l_0214.html#g4ed3cf71cb0fbf435d1389df8567a4e5"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g86a5d26dbacd64b2bc4f53b4b2971a73"></a><!-- doxytag: member="algorithm.hpp::equal_pixels" ref="g86a5d26dbacd64b2bc4f53b4b2971a73" args="(const View1 &amp;v1, const View2 &amp;v2)" -->
template&lt;typename View1, typename View2&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0148.html#g86a5d26dbacd64b2bc4f53b4b2971a73">equal_pixels</a> (const View1 &amp;v1, const View2 &amp;v2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::equal for <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> views <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g27eed3931b4835e3757642ed41db0984"></a><!-- doxytag: member="algorithm.hpp::transform_pixels" ref="g27eed3931b4835e3757642ed41db0984" args="(const View1 &amp;src, const View2 &amp;dst, F fun)" -->
template&lt;typename View1, typename View2, typename F&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE F&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0154.html#g27eed3931b4835e3757642ed41db0984">transform_pixels</a> (const View1 &amp;src, const View2 &amp;dst, F fun)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::transform for <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> views <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="gceacc4e2452d2b3adba5902b21c5957b"></a><!-- doxytag: member="algorithm.hpp::transform_pixels" ref="gceacc4e2452d2b3adba5902b21c5957b" args="(const View1 &amp;src1, const View2 &amp;src2, const View3 &amp;dst, F fun)" -->
template&lt;typename View1, typename View2, typename View3, typename F&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE F&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0154.html#gceacc4e2452d2b3adba5902b21c5957b">transform_pixels</a> (const View1 &amp;src1, const View2 &amp;src2, const View3 &amp;dst, F fun)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">transform_pixels with two sources <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="gc74f3114086b954dfd1735a918f68389"></a><!-- doxytag: member="algorithm.hpp::transform_pixel_positions" ref="gc74f3114086b954dfd1735a918f68389" args="(const View1 &amp;src, const View2 &amp;dst, F fun)" -->
template&lt;typename View1, typename View2, typename F&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE F&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0153.html#gc74f3114086b954dfd1735a918f68389">transform_pixel_positions</a> (const View1 &amp;src, const View2 &amp;dst, F fun)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Like transform_pixels but passes to the function object <a class="el" href="g_i_l_0599.html" title="Represents a pixel value (a container of channels). Models: HomogeneousColorBaseValueConcept...">pixel</a> locators instead of <a class="el" href="g_i_l_0599.html" title="Represents a pixel value (a container of channels). Models: HomogeneousColorBaseValueConcept...">pixel</a> references. <br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="g1edf36f5d5c954f190235d362002e964"></a><!-- doxytag: member="algorithm.hpp::transform_pixel_positions" ref="g1edf36f5d5c954f190235d362002e964" args="(const View1 &amp;src1, const View2 &amp;src2, const View3 &amp;dst, F fun)" -->
template&lt;typename View1, typename View2, typename View3, typename F&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">GIL_FORCEINLINE F&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="g_i_l_0153.html#g1edf36f5d5c954f190235d362002e964">transform_pixel_positions</a> (const View1 &amp;src1, const View2 &amp;src2, const View3 &amp;dst, F fun)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">transform_pixel_positions with two sources <br></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 2 13:50:15 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>