Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / gil / doc / html / reference / structboost_1_1gil_1_1_channel_concept.html
1 <!-- HTML header for doxygen 1.8.13-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4   <head>
5     <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6     <meta http-equiv="X-UA-Compatible" content="IE=9"/>
7     <meta name="generator" content="Doxygen 1.8.15"/>
8     <meta name="viewport" content="width=device-width, initial-scale=1"/>
9     <title>Generic Image Library: ChannelConcept&lt; T &gt; Struct Template Reference</title>
10     <link href="tabs.css" rel="stylesheet" type="text/css"/>
11     <script type="text/javascript" src="jquery.js"></script>
12     <script type="text/javascript" src="dynsections.js"></script>
13     <link href="doxygen.css" rel="stylesheet" type="text/css" />
14     <link href="doxygen-boost.css" rel="stylesheet" type="text/css"/>
15   </head>
16   <body>
17     <div class="boost-header">
18       <table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
19         <tr>
20           <td valign="top" width="300">
21             <h3><a href="../index.html"><img alt="Boost GIL" src="../_static/gil.png" border="0"></a></h3>
22           </td>
23           <td ><h1 align="center"><a href="../index.html"></a></h1></td>
24           <td></td>
25         </tr>
26       </table>
27     </div>
28     <hr/>
29     <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
30 <!-- Generated by Doxygen 1.8.15 -->
31 <script type="text/javascript" src="menudata.js"></script>
32 <script type="text/javascript" src="menu.js"></script>
33 <script type="text/javascript">
34 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
35 $(function() {
36   initMenu('',false,false,'search.php','Search');
37 });
38 /* @license-end */</script>
39 <div id="main-nav"></div>
40 <div id="nav-path" class="navpath">
41   <ul>
42 <li class="navelem"><b>boost</b></li><li class="navelem"><b>gil</b></li><li class="navelem"><a class="el" href="structboost_1_1gil_1_1_channel_concept.html">ChannelConcept</a></li>  </ul>
43 </div>
44 </div><!-- top -->
45 <div class="header">
46   <div class="summary">
47 <a href="#pub-methods">Public Member Functions</a> &#124;
48 <a href="#pub-attribs">Public Attributes</a> &#124;
49 <a href="structboost_1_1gil_1_1_channel_concept-members.html">List of all members</a>  </div>
50   <div class="headertitle">
51 <div class="title">ChannelConcept&lt; T &gt; Struct Template Reference<div class="ingroups"><a class="el" href="group___channel.html">Channel</a> &raquo; <a class="el" href="group___channel_concept.html">Concepts</a></div></div>  </div>
52 </div><!--header-->
53 <div class="contents">
54
55 <p>A channel is the building block of a color. Color is defined as a mixture of primary colors and a channel defines the degree to which each primary color is used in the mixture.  
56  <a href="structboost_1_1gil_1_1_channel_concept.html#details">More...</a></p>
57
58 <p><code>#include &lt;<a class="el" href="concepts_2channel_8hpp_source.html">channel.hpp</a>&gt;</code></p>
59 <table class="memberdecls">
60 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
61 Public Member Functions</h2></td></tr>
62 <tr class="memitem:ab0a0dbf6ca9028bbbb2240cad5882537"><td class="memItemLeft" align="right" valign="top"><a id="ab0a0dbf6ca9028bbbb2240cad5882537"></a>
63 void&#160;</td><td class="memItemRight" valign="bottom"><b>constraints</b> ()</td></tr>
64 <tr class="separator:ab0a0dbf6ca9028bbbb2240cad5882537"><td class="memSeparator" colspan="2">&#160;</td></tr>
65 </table><table class="memberdecls">
66 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
67 Public Attributes</h2></td></tr>
68 <tr class="memitem:a169228264adc1071b8585ae0c7f390cd"><td class="memItemLeft" align="right" valign="top"><a id="a169228264adc1071b8585ae0c7f390cd"></a>
69 T&#160;</td><td class="memItemRight" valign="bottom"><b>c</b></td></tr>
70 <tr class="separator:a169228264adc1071b8585ae0c7f390cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
71 </table>
72 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
73 <div class="textblock"><h3>template&lt;typename T&gt;<br />
74 struct boost::gil::ChannelConcept&lt; T &gt;</h3>
75
76 <p>A channel is the building block of a color. Color is defined as a mixture of primary colors and a channel defines the degree to which each primary color is used in the mixture. </p>
77 <p>For example, in the RGB color space, using 8-bit unsigned channels, the color red is defined as [255 0 0], which means maximum of Red, and no Green and Blue.</p>
78 <p>Built-in scalar types, such as <code>int</code> and <code>float</code>, are valid GIL channels. In more complex scenarios, channels may be represented as bit ranges or even individual bits. In such cases special classes are needed to represent the value and reference to a channel.</p>
79 <p>Channels have a traits class, <code>channel_traits</code>, which defines their associated types as well as their operating ranges.</p>
80 <div class="fragment"><div class="line">concept ChannelConcept&lt;typename T&gt; : EqualityComparable&lt;T&gt;</div><div class="line">{</div><div class="line">    <span class="keyword">typename</span> value_type      = T;        <span class="comment">// use channel_traits&lt;T&gt;::value_type to access it</span></div><div class="line">    <span class="keyword">typename</span> reference       = T&amp;;       <span class="comment">// use channel_traits&lt;T&gt;::reference to access it</span></div><div class="line">    <span class="keyword">typename</span> pointer         = T*;       <span class="comment">// use channel_traits&lt;T&gt;::pointer to access it</span></div><div class="line">    <span class="keyword">typename</span> const_reference = <span class="keyword">const</span> T&amp;; <span class="comment">// use channel_traits&lt;T&gt;::const_reference to access it</span></div><div class="line">    <span class="keyword">typename</span> const_pointer   = <span class="keyword">const</span> T*; <span class="comment">// use channel_traits&lt;T&gt;::const_pointer to access it</span></div><div class="line">    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> is_mutable;        <span class="comment">// use channel_traits&lt;T&gt;::is_mutable to access it</span></div><div class="line"></div><div class="line">    <span class="keyword">static</span> T min_value();                <span class="comment">// use channel_traits&lt;T&gt;::min_value to access it</span></div><div class="line">    <span class="keyword">static</span> T max_value();                <span class="comment">// use channel_traits&lt;T&gt;::min_value to access it</span></div><div class="line">};</div></div><!-- fragment --> </div><hr/>The documentation for this struct was generated from the following file:<ul>
81 <li><a class="el" href="concepts_2channel_8hpp_source.html">concepts/channel.hpp</a></li>
82 </ul>
83 </div><!-- contents -->
84      <!-- HTML footer for doxygen 1.8.13-->
85      <!-- start footer part -->
86      <hr class="footer"/>
87      <address class="footer">
88       <small>
89         Generated by &#160;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.15
90       </small>
91     </address>
92   </body>
93 </html>