]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/gil/doc/html/g_i_l_0143.html
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / gil / doc / html / g_i_l_0143.html
CommitLineData
7c673cae
FG
1<!-- Copyright 2008 Lubomir Bourdev and Hailin Jin
2
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)
6 -->
7
8<!--
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)
12
13 Some files are held under additional license.
14 Please see "http://stlab.adobe.com/licenses.html" for more information.
15-->
16
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">
20
21<head>
22 <TITLE>Generic Image Library: STL-like Algorithms</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"/>
25</head>
26<body>
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>
35</div>
36<!-- End Header -->
37<!-- Generated by Doxygen 1.5.6 -->
38<div class="contents">
39<h1>STL-like Algorithms<br>
40<small>
41[<a class="el" href="g_i_l_0138.html">Algorithms and Utility Functions</a>]</small>
42</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
43Image view-equivalents of STL algorithms.
44<p>
45Image views provide 1D iteration of their pixels via <code>begin()</code> and <code>end()</code> methods, which makes it possible to use STL algorithms with them. However, using nested loops over X and Y is in many cases more efficient. The algorithms in this section resemble STL algorithms, but they abstract away the nested loops and take views (as opposed to ranges) as input.<p>
46Most algorithms check whether the <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> views are 1D-traversable. A 1D-traversable <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> view has no gaps at the end of the rows. In other words, if an x_iterator of that view is advanced past the last <a class="el" href="g_i_l_0599.html" title="Represents a pixel value (a container of channels). Models: HomogeneousColorBaseValueConcept...">pixel</a> in a row it will move to the first <a class="el" href="g_i_l_0599.html" title="Represents a pixel value (a container of channels). Models: HomogeneousColorBaseValueConcept...">pixel</a> of the next row. When <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> views are 1D-traversable, the algorithms use a single loop and run more efficiently. If one or more of the input views are not 1D-traversable, the algorithms fall-back to an X-loop nested inside a Y-loop.<p>
47The algorithms typically delegate the work to their corresponding STL algorithms. For example, <code>copy_pixels</code> calls <code>std::copy</code> either for each row, or, when the images are 1D-traversable, once for all pixels.<p>
48In addition, overloads are sometimes provided for the STL algorithms. For example, std::copy for planar iterators is overloaded to perform <code>std::copy</code> for each of the planes. <code>std::copy</code> over bitwise-copiable pixels results in std::copy over unsigned char, which STL typically implements via <code>memmove</code>.<p>
49As a result <code>copy_pixels</code> may result in a single call to <code>memmove</code> for interleaved 1D-traversable views, or one per each plane of planar 1D-traversable views, or one per each row of interleaved non-1D-traversable images, etc.
50<p>
51<table border="0" cellpadding="0" cellspacing="0">
52<tr><td></td></tr>
53<tr><td colspan="2"><br><h2>Modules</h2></td></tr>
54<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0145.html">copy_pixels</a></td></tr>
55
56<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::copy for image views <br></td></tr>
57
58<p>
59<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0144.html">copy_and_convert_pixels</a></td></tr>
60
61<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">copies src view into dst view, color converting if necessary. <br></td></tr>
62
63<p>
64<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0149.html">fill_pixels</a></td></tr>
65
66<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::fill for image views <br></td></tr>
67
68<p>
69<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0147.html">destruct_pixels</a></td></tr>
70
71<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">invokes the 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 an <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> view <br></td></tr>
72
73<p>
74<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0156.html">uninitialized_fill_pixels</a></td></tr>
75
76<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 <br></td></tr>
77
78<p>
79<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0146.html">default_construct_pixels</a></td></tr>
80
81<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">invokes the 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 an <a class="el" href="g_i_l_0038.html" title="container interface over image view. Models ImageConcept, PixelBasedConcept">image</a> view <br></td></tr>
82
83<p>
84<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0155.html">uninitialized_copy_pixels</a></td></tr>
85
86<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 <br></td></tr>
87
88<p>
89<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0150.html">for_each_pixel</a></td></tr>
90
91<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">std::for_each 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>
92
93<p>
94<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0151.html">for_each_pixel_position</a></td></tr>
95
96<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">adobe::for_each_position 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) <br></td></tr>
97
98<p>
99<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0152.html">generate_pixels</a></td></tr>
100
101<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>
102
103<p>
104<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0148.html">equal_pixels</a></td></tr>
105
106<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>
107
108<p>
109<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0154.html">transform_pixels</a></td></tr>
110
111<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>
112
113<p>
114<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0153.html">transform_pixel_positions</a></td></tr>
115
116<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">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) <br></td></tr>
117
118<p>
119<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
120<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>
121
122<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A generic binary operation on views<p>
123Use 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>
124</table>
125</div>
126<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 2 13:50:16 2009 for Generic Image Library by&nbsp;
127<a href="http://www.doxygen.org/index.html">
128<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
129</body>
130</html>