<!-- 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: Models</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>Models<br>
<small>
[<a class="el" href="g_i_l_0104.html">ColorBase</a>]</small>
</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
ColorBase models. 
<p>

<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Modules</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0120.html">bit_aligned_pixel_reference</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A heterogeneous color base representing <a class="el" href="g_i_l_0599.html" title="Represents a pixel value (a container of channels). Models: HomogeneousColorBaseValueConcept...">pixel</a> that may not be byte aligned, i.e. it may correspond to a bit range that does not start/end at a byte boundary. Models <a class="el" href="g_i_l_0274.html" title="A color base is a container of color elements (such as channels, channel references...">ColorBaseConcept</a>. <br></td></tr>

<p>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0119.html">detail::homogeneous_color_base</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A homogeneous color base holding one color element. Models <a class="el" href="g_i_l_0296.html" title="Color base whose elements all have the same type.">HomogeneousColorBaseConcept</a> or <a class="el" href="g_i_l_0298.html" title="Homogeneous color base that also has a default constructor. Refines Regular.">HomogeneousColorBaseValueConcept</a> If the element type models <a class="el" href="g_i_l_0376.html">Regular</a>, this class models <a class="el" href="g_i_l_0298.html" title="Homogeneous color base that also has a default constructor. Refines Regular.">HomogeneousColorBaseValueConcept</a>. <br></td></tr>

<p>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0121.html">packed_pixel</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A heterogeneous color base whose elements are reference proxies to channels in a <a class="el" href="g_i_l_0599.html" title="Represents a pixel value (a container of channels). Models: HomogeneousColorBaseValueConcept...">pixel</a>. Models <a class="el" href="g_i_l_0276.html" title="Color base that also has a default-constructor. Refines Regular.">ColorBaseValueConcept</a>. This class is used to model packed pixels, such as 16-bit packed RGB. <br></td></tr>

<p>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0122.html">pixel</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A homogeneous color base whose element is a channel value. Models <a class="el" href="g_i_l_0298.html" title="Homogeneous color base that also has a default constructor. Refines Regular.">HomogeneousColorBaseValueConcept</a>. <br></td></tr>

<p>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0123.html">planar_pixel_iterator</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A homogeneous color base whose element is a channel iterator. Models <a class="el" href="g_i_l_0298.html" title="Homogeneous color base that also has a default constructor. Refines Regular.">HomogeneousColorBaseValueConcept</a> This class is used as an iterator to a planar <a class="el" href="g_i_l_0599.html" title="Represents a pixel value (a container of channels). Models: HomogeneousColorBaseValueConcept...">pixel</a>. <br></td></tr>

<p>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="g_i_l_0124.html">planar_pixel_reference</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A homogeneous color base whose element is a channel reference. Models <a class="el" href="g_i_l_0296.html" title="Color base whose elements all have the same type.">HomogeneousColorBaseConcept</a>, <a class="el" href="g_i_l_0302.html" title="Homogeneous pixel concept.">HomogeneousPixelConcept</a>. This class is used as a reference proxy to a planar <a class="el" href="g_i_l_0599.html" title="Represents a pixel value (a container of channels). Models: HomogeneousColorBaseValueConcept...">pixel</a>. <br></td></tr>

<p>
</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>
