<!-- 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: transform_pixel_positions</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="contents">
<h1>transform_pixel_positions<br>
<small>
[<a class="el" href="g_i_l_0143.html">STL-like Algorithms</a>]</small>
</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
adobe::transform_positions for <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> views (passes 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, to the function object) 
<p>

<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2"><a class="anchor" name="gc74f3114086b954dfd1735a918f68389"></a><!-- doxytag: member="ImageViewSTLAlgorithmsTransformPixelPositions::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="ImageViewSTLAlgorithmsTransformPixelPositions::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:16 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>
