aboutsummaryrefslogblamecommitdiffstats
path: root/doc/html/YUV__Space_8h_source.html
blob: 18b29dfe233fd372d610cf9200034f4c56dfb5ed (plain) (tree)

























































































































































































                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
<!-- HTML header for doxygen 1.8.3.1-->
<!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">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3.1"/>
<title>Templates -- Meow: meowpp/colors/YUV_Space.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="stylesheet.css" rel="stylesheet" type="text/css" />
<link href="custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">Templates -- Meow
   &#160;<span id="projectnumber">1.1.2</span>
   </div>
   <div id="projectbrief">不能,也不應該先編譯成obj-file的templates</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('YUV__Space_8h_source.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">YUV_Space.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="YUV__Space_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef   colors_YUV_Space_H__</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define   colors_YUV_Space_H__</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Color3__Space_8h.html">Color3_Space.h</a>&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;../geo/Vectors.h&quot;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;</div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="RGB__Space_8h.html">RGB_Space.h</a>&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &quot;../math/utility.h&quot;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;cstdlib&gt;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="keyword">namespace </span>meow {</div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html">   21</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmeow_1_1YUVf__Space.html" title="以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間">YUVf_Space</a>: <span class="keyword">public</span> <a class="code" href="classmeow_1_1Color3__Space.html" title="以三個channel所組成的色彩空間">Color3_Space</a>&lt;double&gt; {</div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#a9b3807a627b89e9484eda3fa40120a24">   23</a></span>&#160;  <a class="code" href="classmeow_1_1YUVf__Space.html#a9b3807a627b89e9484eda3fa40120a24">YUVf_Space</a>(): <a class="code" href="classmeow_1_1Color3__Space.html" title="以三個channel所組成的色彩空間">Color3_Space</a>&lt;<a class="code" href="classdouble.html">double</a>&gt;(<a class="code" href="classmeow_1_1Vector3D.html" title="3D&#39;s vector">Vector3D</a>&lt;<a class="code" href="classdouble.html">double</a>&gt;(0.0, 0.0, 0.0),</div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;                                     <a class="code" href="classmeow_1_1Vector3D.html" title="3D&#39;s vector">Vector3D</a>&lt;<a class="code" href="classdouble.html">double</a>&gt;(1.0, 1.0, 1.0),</div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;                                     <a class="code" href="classmeow_1_1Vector3D.html" title="3D&#39;s vector">Vector3D</a>&lt;<a class="code" href="classdouble.html">double</a>&gt;(0.0, 0.0, 0.0)) {</div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;  }</div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#a2e9ddbeaae07e35c4c2adb254d5e4ca0">   27</a></span>&#160;  <a class="code" href="classmeow_1_1YUVf__Space.html#a9b3807a627b89e9484eda3fa40120a24">YUVf_Space</a>(<span class="keywordtype">double</span> c): <a class="code" href="classmeow_1_1Color3__Space.html" title="以三個channel所組成的色彩空間">Color3_Space</a>&lt;<a class="code" href="classdouble.html">double</a>&gt;(<a class="code" href="classmeow_1_1Vector3D.html" title="3D&#39;s vector">Vector3D</a>&lt;<a class="code" href="classdouble.html">double</a>&gt;(0.0, 0.0, 0.0),</div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                                             <a class="code" href="classmeow_1_1Vector3D.html" title="3D&#39;s vector">Vector3D</a>&lt;<a class="code" href="classdouble.html">double</a>&gt;(1.0, 1.0, 1.0),</div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                                             <a class="code" href="classmeow_1_1Vector3D.html" title="3D&#39;s vector">Vector3D</a>&lt;<a class="code" href="classdouble.html">double</a>&gt;(  c,   c,   c)) {</div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;  }</div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#a5694afcf7bf1962ea9e0abc7b8801358">   31</a></span>&#160;  <a class="code" href="classmeow_1_1YUVf__Space.html#a9b3807a627b89e9484eda3fa40120a24">YUVf_Space</a>(<a class="code" href="classmeow_1_1Vector3D.html">Vector3D&lt;double&gt;</a> <span class="keyword">const</span>&amp; <a class="code" href="classmeow_1_1YUVf__Space.html#a25715d75897bd4ede9898edfc932ffd5">v</a>):</div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;  <a class="code" href="classmeow_1_1Color3__Space.html" title="以三個channel所組成的色彩空間">Color3_Space</a>&lt;<a class="code" href="classdouble.html">double</a>&gt;(<a class="code" href="classmeow_1_1Vector3D.html" title="3D&#39;s vector">Vector3D</a>&lt;<a class="code" href="classdouble.html">double</a>&gt;(0.0, 0.0, 0.0),</div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;                       <a class="code" href="classmeow_1_1Vector3D.html" title="3D&#39;s vector">Vector3D</a>&lt;<a class="code" href="classdouble.html">double</a>&gt;(1.0, 1.0, 1.0),</div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;                       <a class="code" href="classmeow_1_1Vector3D.html" title="3D&#39;s vector">Vector3D</a>&lt;<a class="code" href="classdouble.html">double</a>&gt;(v)) {</div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;  }</div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#a0b34feef9db731dbc7228c0bc3554415">   36</a></span>&#160;  <a class="code" href="classmeow_1_1YUVf__Space.html#a0b34feef9db731dbc7228c0bc3554415">YUVf_Space</a>(YUV_Space <span class="keyword">const</span>&amp; b): <a class="code" href="classmeow_1_1Color3__Space.html" title="以三個channel所組成的色彩空間">Color3_Space</a>&lt;<a class="code" href="classdouble.html">double</a>&gt;(b) {</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;  }</div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#a4ffd3340f73d108e4641de0eab155262">   38</a></span>&#160;  <a class="code" href="classmeow_1_1YUVf__Space.html#a4ffd3340f73d108e4641de0eab155262">~YUVf_Space</a>() {</div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;  }</div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#a99f55740ad5a8b57f4edf68a69e2b720">   40</a></span>&#160;  <span class="keywordtype">double</span> <span class="keyword">const</span>&amp; <a class="code" href="classmeow_1_1YUVf__Space.html#a99f55740ad5a8b57f4edf68a69e2b720">yuvMin</a>(<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1Color3__Space.html#a3351aea64c4ca1596694d6b95dce56df">min</a>(i); }</div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#adb397aff53a9c0ede746bd734a519dd6">   41</a></span>&#160;  <span class="keywordtype">double</span> <span class="keyword">const</span>&amp;   <a class="code" href="classmeow_1_1YUVf__Space.html#adb397aff53a9c0ede746bd734a519dd6">yMin</a>(        )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1Color3__Space.html#a3351aea64c4ca1596694d6b95dce56df">min</a>(0); }</div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#ae799cfca7c0d3b4a817d33a6ebac5239">   42</a></span>&#160;  <span class="keywordtype">double</span> <span class="keyword">const</span>&amp;   <a class="code" href="classmeow_1_1YUVf__Space.html#ae799cfca7c0d3b4a817d33a6ebac5239">uMin</a>(        )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1Color3__Space.html#a3351aea64c4ca1596694d6b95dce56df">min</a>(1); }</div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#aba01d6b8d0d8840d0132ccd6b43d8c0c">   43</a></span>&#160;  <span class="keywordtype">double</span> <span class="keyword">const</span>&amp;   <a class="code" href="classmeow_1_1YUVf__Space.html#aba01d6b8d0d8840d0132ccd6b43d8c0c">vMin</a>(        )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1Color3__Space.html#a3351aea64c4ca1596694d6b95dce56df">min</a>(2); }</div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#afe90af43e91f5134419a2ca7624cff66">   44</a></span>&#160;  <span class="keywordtype">double</span> <span class="keyword">const</span>&amp; <a class="code" href="classmeow_1_1YUVf__Space.html#afe90af43e91f5134419a2ca7624cff66">yuvMax</a>(<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1Color3__Space.html#aa6661a1aaaf985a4b2d68db88ec93d2f">max</a>(i); }</div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#adf7029d33a94df084c4ec0142a35d323">   45</a></span>&#160;  <span class="keywordtype">double</span> <span class="keyword">const</span>&amp;   <a class="code" href="classmeow_1_1YUVf__Space.html#adf7029d33a94df084c4ec0142a35d323">yMax</a>(        )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1Color3__Space.html#aa6661a1aaaf985a4b2d68db88ec93d2f">max</a>(0); }</div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#aaf9cb97273b96475641a372fbbe86949">   46</a></span>&#160;  <span class="keywordtype">double</span> <span class="keyword">const</span>&amp;   <a class="code" href="classmeow_1_1YUVf__Space.html#aaf9cb97273b96475641a372fbbe86949">uMax</a>(        )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1Color3__Space.html#aa6661a1aaaf985a4b2d68db88ec93d2f">max</a>(1); }</div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#a3b168dd8186710b014f2e1d1b5ee1c63">   47</a></span>&#160;  <span class="keywordtype">double</span> <span class="keyword">const</span>&amp;   <a class="code" href="classmeow_1_1YUVf__Space.html#a3b168dd8186710b014f2e1d1b5ee1c63">vMax</a>(        )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1Color3__Space.html#aa6661a1aaaf985a4b2d68db88ec93d2f">max</a>(2); }</div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#a9f4740de51da44bb8397c90f24975c19">   48</a></span>&#160;  <span class="keywordtype">double</span> <span class="keyword">const</span>&amp; <a class="code" href="classmeow_1_1YUVf__Space.html#a9f4740de51da44bb8397c90f24975c19">yuv</a>(<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1Color3__Space.html#af08839264f6ea6dc50cf6175d26afa6e">val</a>(i); }</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#ab09964887a8e6049fb9eaefd4fdd872c">   49</a></span>&#160;  <span class="keywordtype">double</span> <span class="keyword">const</span>&amp;   <a class="code" href="classmeow_1_1YUVf__Space.html#ab09964887a8e6049fb9eaefd4fdd872c">y</a>(        )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1YUVf__Space.html#a9f4740de51da44bb8397c90f24975c19">yuv</a>(0); }</div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#ab7a1880a397a5fff594ac18c0d569bd6">   50</a></span>&#160;  <span class="keywordtype">double</span> <span class="keyword">const</span>&amp;   <a class="code" href="classmeow_1_1YUVf__Space.html#ab7a1880a397a5fff594ac18c0d569bd6">u</a>(        )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1YUVf__Space.html#a9f4740de51da44bb8397c90f24975c19">yuv</a>(1); }</div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#a25715d75897bd4ede9898edfc932ffd5">   51</a></span>&#160;  <span class="keywordtype">double</span> <span class="keyword">const</span>&amp;   <a class="code" href="classmeow_1_1YUVf__Space.html#a25715d75897bd4ede9898edfc932ffd5">v</a>(        )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1YUVf__Space.html#a9f4740de51da44bb8397c90f24975c19">yuv</a>(2); }</div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#afc4e9f52a8e75753772d99a077e5b4ea">   52</a></span>&#160;  <span class="keywordtype">double</span> <span class="keyword">const</span>&amp; <a class="code" href="classmeow_1_1YUVf__Space.html#afc4e9f52a8e75753772d99a077e5b4ea">yuv</a>(<span class="keywordtype">size_t</span> i, <span class="keywordtype">double</span> c) { <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1Color3__Space.html#af08839264f6ea6dc50cf6175d26afa6e">val</a>(i, c); }</div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#a92f015c9545102445d1163c7eab67e79">   53</a></span>&#160;  <span class="keywordtype">double</span> <span class="keyword">const</span>&amp;   <a class="code" href="classmeow_1_1YUVf__Space.html#a92f015c9545102445d1163c7eab67e79">y</a>(          <span class="keywordtype">double</span> c) { <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1YUVf__Space.html#a9f4740de51da44bb8397c90f24975c19">yuv</a>(0, c); }</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#afaf24781d6b28a9615c807dfc70e4f7b">   54</a></span>&#160;  <span class="keywordtype">double</span> <span class="keyword">const</span>&amp;   <a class="code" href="classmeow_1_1YUVf__Space.html#afaf24781d6b28a9615c807dfc70e4f7b">u</a>(          <span class="keywordtype">double</span> c) { <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1YUVf__Space.html#a9f4740de51da44bb8397c90f24975c19">yuv</a>(1, c); }</div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#af2f8d6a8a4913de6ad17f2da86d949fa">   55</a></span>&#160;  <span class="keywordtype">double</span> <span class="keyword">const</span>&amp;   <a class="code" href="classmeow_1_1YUVf__Space.html#af2f8d6a8a4913de6ad17f2da86d949fa">v</a>(          <span class="keywordtype">double</span> c) { <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1YUVf__Space.html#a9f4740de51da44bb8397c90f24975c19">yuv</a>(2, c); }</div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#a47a65edcd356f3754f6aca45483cae06">   56</a></span>&#160;  <span class="keywordtype">double</span>&amp; <a class="code" href="classmeow_1_1YUVf__Space.html#a47a65edcd356f3754f6aca45483cae06">yuvGet</a>(<span class="keywordtype">size_t</span> i) { <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1Color3__Space.html#ac2efb0be959fc60f786bdcdc8a1fd8b2">valGet</a>(i); }</div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#a31c9176faad460be84a0255bc3173226">   57</a></span>&#160;  <span class="keywordtype">double</span>&amp;   <a class="code" href="classmeow_1_1YUVf__Space.html#a31c9176faad460be84a0255bc3173226">yGet</a>(        ) { <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1YUVf__Space.html#a47a65edcd356f3754f6aca45483cae06">yuvGet</a>(0); }</div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#ad377534486a9d1d1bea38d4c04ea0267">   58</a></span>&#160;  <span class="keywordtype">double</span>&amp;   <a class="code" href="classmeow_1_1YUVf__Space.html#ad377534486a9d1d1bea38d4c04ea0267">uGet</a>(        ) { <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1YUVf__Space.html#a47a65edcd356f3754f6aca45483cae06">yuvGet</a>(1); }</div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#a99e8bb42edb254ed1415f55ef1558ab0">   59</a></span>&#160;  <span class="keywordtype">double</span>&amp;   <a class="code" href="classmeow_1_1YUVf__Space.html#a99e8bb42edb254ed1415f55ef1558ab0">vGet</a>(        ) { <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1YUVf__Space.html#a47a65edcd356f3754f6aca45483cae06">yuvGet</a>(2); }</div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#acd8f8d7472bfa816669e601243c0c2df">   60</a></span>&#160;  <a class="code" href="classmeow_1_1YUVf__Space.html" title="以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間">YUVf_Space</a>&amp; <a class="code" href="classmeow_1_1YUVf__Space.html#acd8f8d7472bfa816669e601243c0c2df">operator=</a>(<a class="code" href="classmeow_1_1YUVf__Space.html" title="以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間">YUVf_Space</a> <span class="keyword">const</span>&amp; b) {</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <a class="code" href="classmeow_1_1Color3__Space.html#aa5c43cb67d674223a0a2361ac8de55c1">copyFrom</a>(b);</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;  }</div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#a06cf23bd6493ce0c1e69cca45b3b9f96">   64</a></span>&#160;  <a class="code" href="classmeow_1_1YUVf__Space.html" title="以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間">YUVf_Space</a> <a class="code" href="classmeow_1_1YUVf__Space.html#a06cf23bd6493ce0c1e69cca45b3b9f96">operator+</a>(<a class="code" href="classmeow_1_1YUVf__Space.html" title="以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間">YUVf_Space</a> <span class="keyword">const</span>&amp; b)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1YUVf__Space.html#a9b3807a627b89e9484eda3fa40120a24">YUVf_Space</a>(<a class="code" href="classmeow_1_1Color3__Space.html#aa134d705ea25b1f64db8bef07d1757ae">val_</a> + b.<a class="code" href="classmeow_1_1Color3__Space.html#aa134d705ea25b1f64db8bef07d1757ae">val_</a>);</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;  }</div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#adf527a2801ec37a42edf1b1964007547">   67</a></span>&#160;  <a class="code" href="classmeow_1_1YUVf__Space.html" title="以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間">YUVf_Space</a> <a class="code" href="classmeow_1_1YUVf__Space.html#adf527a2801ec37a42edf1b1964007547">operator-</a>(<a class="code" href="classmeow_1_1YUVf__Space.html" title="以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間">YUVf_Space</a> <span class="keyword">const</span>&amp; b)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1YUVf__Space.html#a9b3807a627b89e9484eda3fa40120a24">YUVf_Space</a>(<a class="code" href="classmeow_1_1Color3__Space.html#aa134d705ea25b1f64db8bef07d1757ae">val_</a> - b.<a class="code" href="classmeow_1_1Color3__Space.html#aa134d705ea25b1f64db8bef07d1757ae">val_</a>);</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;  }</div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#ad4e4990fd6dbaaa3bdbb8c4706830588">   70</a></span>&#160;  <a class="code" href="classmeow_1_1YUVf__Space.html" title="以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間">YUVf_Space</a> <a class="code" href="classmeow_1_1YUVf__Space.html#ad4e4990fd6dbaaa3bdbb8c4706830588">operator*</a>(<span class="keywordtype">double</span> <span class="keyword">const</span>&amp; c)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1YUVf__Space.html#a9b3807a627b89e9484eda3fa40120a24">YUVf_Space</a>(<a class="code" href="classmeow_1_1Color3__Space.html#aa134d705ea25b1f64db8bef07d1757ae">val_</a> * c);</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;  }</div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#a056acc13f596f9d488eeb8540aa93a2d">   73</a></span>&#160;  <a class="code" href="classmeow_1_1YUVf__Space.html" title="以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間">YUVf_Space</a> <a class="code" href="classmeow_1_1YUVf__Space.html#a056acc13f596f9d488eeb8540aa93a2d">operator/</a>(<span class="keywordtype">double</span> <span class="keyword">const</span>&amp; c)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1YUVf__Space.html#a9b3807a627b89e9484eda3fa40120a24">YUVf_Space</a>(<a class="code" href="classmeow_1_1Color3__Space.html#aa134d705ea25b1f64db8bef07d1757ae">val_</a> / c);</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;  }</div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="code" href="classmeow_1_1YUVf__Space.html#a0a38aa9230be765cdb7e1fd5ace9315b">   76</a></span>&#160;  <span class="keywordtype">double</span> <a class="code" href="classmeow_1_1YUVf__Space.html#a0a38aa9230be765cdb7e1fd5ace9315b">operator*</a>(<a class="code" href="classmeow_1_1YUVf__Space.html" title="以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間">YUVf_Space</a> <span class="keyword">const</span>&amp; b)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classmeow_1_1Color3__Space.html#aa134d705ea25b1f64db8bef07d1757ae">val_</a> * b.<a class="code" href="classmeow_1_1Color3__Space.html#aa134d705ea25b1f64db8bef07d1757ae">val_</a>;</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;  }</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;};</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="namespacemeow.html#a6ebfe120c658a6320de42c449e485e54">   84</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacemeow.html#af9ab85cd87a9f843e710657188f4c601" title="RGBf_Space to HSLf_Space ">colorTransformate</a>(<a class="code" href="classmeow_1_1RGBf__Space.html" title="以浮點數Red, Green, Blue 三個值所組成的色彩空間">RGBf_Space</a> <span class="keyword">const</span>&amp; rgb, <a class="code" href="classmeow_1_1YUVf__Space.html" title="以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間">YUVf_Space</a>* yuv) {</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;  <span class="keywordtype">double</span> r = <a class="code" href="namespacemeow.html#aebe1ad335556790c578c4cf7836fd9ca" title="(value-lower)/(upper-lower)">normalize</a>(rgb.<a class="code" href="classmeow_1_1RGBf__Space.html#aee2f300ff0ae724890d3d80d0cb7cbc3">rMin</a>(), rgb.<a class="code" href="classmeow_1_1RGBf__Space.html#af473ccd4b8202097640ba9f19428caef">rMax</a>(), rgb.<a class="code" href="classmeow_1_1RGBf__Space.html#a2e158eb7f0a94047b23872b7b346e7b9">r</a>());</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;  <span class="keywordtype">double</span> g = <a class="code" href="namespacemeow.html#aebe1ad335556790c578c4cf7836fd9ca" title="(value-lower)/(upper-lower)">normalize</a>(rgb.<a class="code" href="classmeow_1_1RGBf__Space.html#aeb0cd2d681af6a70861ff371bf596e17">gMin</a>(), rgb.<a class="code" href="classmeow_1_1RGBf__Space.html#a65d8088fb8b755f0b3f173dcda552789">gMax</a>(), rgb.<a class="code" href="classmeow_1_1RGBf__Space.html#ad25036799ca38983cdb74ed6b4245d51">g</a>());</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;  <span class="keywordtype">double</span> b = <a class="code" href="namespacemeow.html#aebe1ad335556790c578c4cf7836fd9ca" title="(value-lower)/(upper-lower)">normalize</a>(rgb.<a class="code" href="classmeow_1_1RGBf__Space.html#a130bbee98fdd279a415e18aa0ca2f13c">bMin</a>(), rgb.<a class="code" href="classmeow_1_1RGBf__Space.html#a029c3bd52ae818462558742dc2be0904">bMax</a>(), rgb.<a class="code" href="classmeow_1_1RGBf__Space.html#a8a0a6daacecfbd1769cbdb321988ab88">b</a>());</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;  <span class="keywordtype">double</span> y =  0.299 * r + 0.587 * g + 0.114 * b;</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;  <span class="keywordtype">double</span> u = -0.169 * r - 0.331 * g + 0.500 * b + 0.5;</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;  <span class="keywordtype">double</span> v =  0.500 * r - 0.419 * g - 0.081 * b + 0.5;</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;  yuv-&gt;<a class="code" href="classmeow_1_1YUVf__Space.html#ab09964887a8e6049fb9eaefd4fdd872c">y</a>(<a class="code" href="namespacemeow.html#af95cfca15ad7a51ed4d07b06e1296080" title="(lower+_ratio*(upper-lower))">denormalize</a>(yuv-&gt;<a class="code" href="classmeow_1_1YUVf__Space.html#adb397aff53a9c0ede746bd734a519dd6">yMin</a>(), yuv-&gt;<a class="code" href="classmeow_1_1YUVf__Space.html#adf7029d33a94df084c4ec0142a35d323">yMax</a>(), y));</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;  yuv-&gt;<a class="code" href="classmeow_1_1YUVf__Space.html#ab7a1880a397a5fff594ac18c0d569bd6">u</a>(<a class="code" href="namespacemeow.html#af95cfca15ad7a51ed4d07b06e1296080" title="(lower+_ratio*(upper-lower))">denormalize</a>(yuv-&gt;<a class="code" href="classmeow_1_1YUVf__Space.html#ae799cfca7c0d3b4a817d33a6ebac5239">uMin</a>(), yuv-&gt;<a class="code" href="classmeow_1_1YUVf__Space.html#aaf9cb97273b96475641a372fbbe86949">uMax</a>(), u));</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;  yuv-&gt;<a class="code" href="classmeow_1_1YUVf__Space.html#a25715d75897bd4ede9898edfc932ffd5">v</a>(<a class="code" href="namespacemeow.html#af95cfca15ad7a51ed4d07b06e1296080" title="(lower+_ratio*(upper-lower))">denormalize</a>(yuv-&gt;<a class="code" href="classmeow_1_1YUVf__Space.html#aba01d6b8d0d8840d0132ccd6b43d8c0c">vMin</a>(), yuv-&gt;<a class="code" href="classmeow_1_1YUVf__Space.html#a3b168dd8186710b014f2e1d1b5ee1c63">vMax</a>(), v));</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;}</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="namespacemeow.html#ab4756ef949554840f60a762661acc103">   99</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacemeow.html#af9ab85cd87a9f843e710657188f4c601" title="RGBf_Space to HSLf_Space ">colorTransformate</a>(<a class="code" href="classmeow_1_1YUVf__Space.html" title="以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間">YUVf_Space</a> <span class="keyword">const</span>&amp; yuv, <a class="code" href="classmeow_1_1RGBf__Space.html" title="以浮點數Red, Green, Blue 三個值所組成的色彩空間">RGBf_Space</a>* rgb) {</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;  <span class="keywordtype">double</span> y = <a class="code" href="namespacemeow.html#aebe1ad335556790c578c4cf7836fd9ca" title="(value-lower)/(upper-lower)">normalize</a>(yuv.<a class="code" href="classmeow_1_1YUVf__Space.html#adb397aff53a9c0ede746bd734a519dd6">yMin</a>(),yuv.<a class="code" href="classmeow_1_1YUVf__Space.html#adf7029d33a94df084c4ec0142a35d323">yMax</a>(),yuv.<a class="code" href="classmeow_1_1YUVf__Space.html#ab09964887a8e6049fb9eaefd4fdd872c">y</a>());</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;  <span class="keywordtype">double</span> u = <a class="code" href="namespacemeow.html#aebe1ad335556790c578c4cf7836fd9ca" title="(value-lower)/(upper-lower)">normalize</a>(yuv.<a class="code" href="classmeow_1_1YUVf__Space.html#ae799cfca7c0d3b4a817d33a6ebac5239">uMin</a>(),yuv.<a class="code" href="classmeow_1_1YUVf__Space.html#aaf9cb97273b96475641a372fbbe86949">uMax</a>(),yuv.<a class="code" href="classmeow_1_1YUVf__Space.html#ab7a1880a397a5fff594ac18c0d569bd6">u</a>());</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;  <span class="keywordtype">double</span> v = <a class="code" href="namespacemeow.html#aebe1ad335556790c578c4cf7836fd9ca" title="(value-lower)/(upper-lower)">normalize</a>(yuv.<a class="code" href="classmeow_1_1YUVf__Space.html#aba01d6b8d0d8840d0132ccd6b43d8c0c">vMin</a>(),yuv.<a class="code" href="classmeow_1_1YUVf__Space.html#a3b168dd8186710b014f2e1d1b5ee1c63">vMax</a>(),yuv.<a class="code" href="classmeow_1_1YUVf__Space.html#a25715d75897bd4ede9898edfc932ffd5">v</a>());</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;  <span class="keywordtype">double</span> r = y - 0.00093 * (u - 0.5) + 1.401687 * (v - 0.5);</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;  <span class="keywordtype">double</span> g = y - 0.34370 * (u - 0.5) - 0.714170 * (v - 0.5);</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;  <span class="keywordtype">double</span> b = y + 1.77216 * (u - 0.5) - 0.000990 * (v - 0.5);</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;  rgb-&gt;<a class="code" href="classmeow_1_1RGBf__Space.html#a2e158eb7f0a94047b23872b7b346e7b9">r</a>(<a class="code" href="namespacemeow.html#af95cfca15ad7a51ed4d07b06e1296080" title="(lower+_ratio*(upper-lower))">denormalize</a>(rgb-&gt;<a class="code" href="classmeow_1_1RGBf__Space.html#aee2f300ff0ae724890d3d80d0cb7cbc3">rMin</a>(), rgb-&gt;<a class="code" href="classmeow_1_1RGBf__Space.html#af473ccd4b8202097640ba9f19428caef">rMax</a>(), r));</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;  rgb-&gt;<a class="code" href="classmeow_1_1RGBf__Space.html#ad25036799ca38983cdb74ed6b4245d51">g</a>(<a class="code" href="namespacemeow.html#af95cfca15ad7a51ed4d07b06e1296080" title="(lower+_ratio*(upper-lower))">denormalize</a>(rgb-&gt;<a class="code" href="classmeow_1_1RGBf__Space.html#aeb0cd2d681af6a70861ff371bf596e17">gMin</a>(), rgb-&gt;<a class="code" href="classmeow_1_1RGBf__Space.html#a65d8088fb8b755f0b3f173dcda552789">gMax</a>(), g));</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;  rgb-&gt;<a class="code" href="classmeow_1_1RGBf__Space.html#a8a0a6daacecfbd1769cbdb321988ab88">b</a>(<a class="code" href="namespacemeow.html#af95cfca15ad7a51ed4d07b06e1296080" title="(lower+_ratio*(upper-lower))">denormalize</a>(rgb-&gt;<a class="code" href="classmeow_1_1RGBf__Space.html#a130bbee98fdd279a415e18aa0ca2f13c">bMin</a>(), rgb-&gt;<a class="code" href="classmeow_1_1RGBf__Space.html#a029c3bd52ae818462558742dc2be0904">bMax</a>(), b));</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;}</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="code" href="namespacemeow.html#a91f42614ccd31fdb9a3d8529f65198fd">  114</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacemeow.html#af9ab85cd87a9f843e710657188f4c601" title="RGBf_Space to HSLf_Space ">colorTransformate</a>(<a class="code" href="classmeow_1_1RGBi__Space.html" title="以整數 Red, Green, Blue 三個值所組成的色彩空間">RGBi_Space</a> <span class="keyword">const</span>&amp; rgb, <a class="code" href="classmeow_1_1YUVf__Space.html" title="以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間">YUVf_Space</a>* yuv) {</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;  <a class="code" href="classmeow_1_1RGBf__Space.html" title="以浮點數Red, Green, Blue 三個值所組成的色彩空間">RGBf_Space</a> tmp;</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;  tmp.<a class="code" href="classmeow_1_1Color3__Space.html#aa5c43cb67d674223a0a2361ac8de55c1">copyFrom</a>(rgb);</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;  <a class="code" href="namespacemeow.html#af9ab85cd87a9f843e710657188f4c601" title="RGBf_Space to HSLf_Space ">colorTransformate</a>(tmp, yuv);</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;}</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="code" href="namespacemeow.html#af4d344590a86168090c2f2322289f080">  123</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacemeow.html#af9ab85cd87a9f843e710657188f4c601" title="RGBf_Space to HSLf_Space ">colorTransformate</a>(<a class="code" href="classmeow_1_1YUVf__Space.html" title="以浮點數Y(亮度), U(色度), V(濃度) 三個值所組成的色彩空間">YUVf_Space</a> <span class="keyword">const</span>&amp; yuv, <a class="code" href="classmeow_1_1RGBi__Space.html" title="以整數 Red, Green, Blue 三個值所組成的色彩空間">RGBi_Space</a>* rgb) {</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;  <a class="code" href="classmeow_1_1RGBf__Space.html" title="以浮點數Red, Green, Blue 三個值所組成的色彩空間">RGBf_Space</a> tmp;</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;  <a class="code" href="namespacemeow.html#af9ab85cd87a9f843e710657188f4c601" title="RGBf_Space to HSLf_Space ">colorTransformate</a>(yuv, &amp;tmp);</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;  rgb-&gt;<a class="code" href="classmeow_1_1Color3__Space.html#aa5c43cb67d674223a0a2361ac8de55c1">copyFrom</a>(tmp);</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;}</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;} <span class="comment">// meow</span></div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="preprocessor">#endif // colors_YUV_H__</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.3.1-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_92fecd8d02dd5e7a67429447fdf0f60f.html">meowpp</a></li><li class="navelem"><a class="el" href="dir_f6840b2fecd08a3779df34f0add0e074.html">colors</a></li><li class="navelem"><a class="el" href="YUV__Space_8h.html">YUV_Space.h</a></li>
    <li class="footer">Generated on Sun Jun 1 2014 13:54:33 for Templates -- Meow by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.3.1 </li>
  </ul>
</div>
</body>
</html>