<!-- 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: gil_all.hpp Source File</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>gil_all.hpp</h1><a href="gil__all_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment">    Copyright 2005-2007 Adobe Systems Incorporated</span>
<a name="l00003"></a>00003 <span class="comment">   </span>
<a name="l00004"></a>00004 <span class="comment">    Use, modification and distribution are subject to the Boost Software License,</span>
<a name="l00005"></a>00005 <span class="comment">    Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at</span>
<a name="l00006"></a>00006 <span class="comment">    http://www.boost.org/LICENSE_1_0.txt).</span>
<a name="l00007"></a>00007 <span class="comment"></span>
<a name="l00008"></a>00008 <span class="comment">    See http://opensource.adobe.com/gil for most recent version including documentation.</span>
<a name="l00009"></a>00009 <span class="comment">*/</span>
<a name="l00010"></a>00010 
<a name="l00011"></a>00011 <span class="comment">/*************************************************************************************************/</span>
<a name="l00012"></a>00012 
<a name="l00013"></a>00013 <span class="preprocessor">#ifndef GIL_ALL_HPP</span>
<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define GIL_ALL_HPP</span>
<a name="l00015"></a>00015 <span class="preprocessor"></span>
<a name="l00024"></a>00024 
<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="g_i_l_0094.html" title="GIL configuration file.">gil_config.hpp</a>"</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="g_i_l_0016.html" title="Channel algorithms.">channel_algorithm.hpp</a>"</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="algorithm_8hpp.html" title="Some basic STL-style algorithms when applied to image views.">algorithm.hpp</a>"</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="pixel_8hpp.html" title="pixel class and related utilities">pixel.hpp</a>"</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="g_i_l_0240.html" title="A model of a heterogeneous pixel whose channels are bit ranges. For example 16-bit...">packed_pixel.hpp</a>"</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="g_i_l_0249.html" title="planar pixel reference class">planar_pixel_reference.hpp</a>"</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="g_i_l_0247.html" title="planar pixel pointer class">planar_pixel_iterator.hpp</a>"</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="g_i_l_0245.html" title="pixel step iterator, pixel image iterator and pixel dereference iterator">pixel_iterator_adaptor.hpp</a>"</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="g_i_l_0260.html" title="pixel step iterator">step_iterator.hpp</a>"</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="g_i_l_0230.html" title="pixel step iterator, pixel image iterator and pixel dereference iterator">iterator_from_2d.hpp</a>"</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="image_8hpp.html" title="Templated image.">image.hpp</a>"</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="g_i_l_0227.html" title="Methods for constructing image views from raw data or other image views /.">image_view_factory.hpp</a>"</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="typedefs_8hpp.html" title="Useful typedefs.">typedefs.hpp</a>"</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="g_i_l_0238.html" title="metafunctions that construct types or return type properties">metafunctions.hpp</a>"</span>
<a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="g_i_l_0071.html" title="GIL default color space conversions.">color_convert.hpp</a>"</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="device__n_8hpp.html" title="Support for color space of N channels and variants.">device_n.hpp</a>"</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="g_i_l_0645.html" title="Locator for virtual image views.">virtual_locator.hpp</a>"</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="g_i_l_0011.html" title="A model of a heterogeneous pixel that is not byte aligned. Examples are bitmap (1-bit...">bit_aligned_pixel_iterator.hpp</a>"</span>
<a name="l00043"></a>00043 <span class="comment">// Uncomment this line to help in porting your code from an older version of GIL</span>
<a name="l00044"></a>00044 <span class="comment">//#include "deprecated.hpp"</span>
<a name="l00045"></a>00045 
<a name="l00046"></a>00046 <span class="preprocessor">#endif</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 2 13:50:13 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>
