Sophie

Sophie

distrib > Fedora > 18 > x86_64 > by-pkgid > ff187cb994c94c614ecc64c5a8528b1b > files > 1087

qt-doc-4.8.5-10.fc18.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Qt 4.8: pictureflow.cpp Example File (demos/embedded/fluidlauncher/pictureflow.cpp)</title>
  <link rel="stylesheet" type="text/css" href="style/style.css" />
  <script src="scripts/jquery.js" type="text/javascript"></script>
  <script src="scripts/functions.js" type="text/javascript"></script>
  <link rel="stylesheet" type="text/css" href="style/superfish.css" />
  <link rel="stylesheet" type="text/css" href="style/narrow.css" />
  <!--[if IE]>
<meta name="MSSmartTagsPreventParsing" content="true">
<meta http-equiv="imagetoolbar" content="no">
<![endif]-->
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" href="style/style_ie6.css">
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="style/style_ie7.css">
<![endif]-->
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="style/style_ie8.css">
<![endif]-->

<script src="scripts/superfish.js" type="text/javascript"></script>
<script src="scripts/narrow.js" type="text/javascript"></script>

</head>
<body class="" onload="CheckEmptyAndLoadList();">
 <div class="header" id="qtdocheader">
    <div class="content"> 
    <div id="nav-logo">
      <a href="index.html">Home</a></div>
    <a href="index.html" class="qtref"><span>Qt Reference Documentation</span></a>
    <div id="narrowsearch"></div>
    <div id="nav-topright">
      <ul>
        <li class="nav-topright-home"><a href="http://qt.digia.com/">Qt HOME</a></li>
        <li class="nav-topright-dev"><a href="http://qt-project.org/">DEV</a></li>
        <li class="nav-topright-doc nav-topright-doc-active"><a href="http://qt-project.org/doc/">
          DOC</a></li>
        <li class="nav-topright-blog"><a href="http://blog.qt.digia.com/">BLOG</a></li>
      </ul>
    </div>
    <div id="shortCut">
      <ul>
        <li class="shortCut-topleft-inactive"><span><a href="index.html">Qt 4.8</a></span></li>
        <li class="shortCut-topleft-active"><a href="http://qt-project.org/doc/">ALL VERSIONS        </a></li>
      </ul>
     </div>
 <ul class="sf-menu" id="narrowmenu"> 
             <li><a href="#">API Lookup</a> 
                 <ul> 
                     <li><a href="classes.html">Class index</a></li> 
           <li><a href="functions.html">Function index</a></li> 
           <li><a href="modules.html">Modules</a></li> 
           <li><a href="namespaces.html">Namespaces</a></li> 
           <li><a href="qtglobal.html">Global Declarations</a></li> 
           <li><a href="qdeclarativeelements.html">QML elements</a></li> 
             </ul> 
             </li> 
             <li><a href="#">Qt Topics</a> 
                 <ul> 
                        <li><a href="qt-basic-concepts.html">Programming with Qt</a></li>  
                        <li><a href="qtquick.html">Device UIs &amp; Qt Quick</a></li>  
                        <li><a href="qt-gui-concepts.html">UI Design with Qt</a></li>  
                        <li><a href="supported-platforms.html">Supported Platforms</a></li>  
                        <li><a href="technology-apis.html">Qt and Key Technologies</a></li>  
                        <li><a href="best-practices.html">How-To's and Best Practices</a></li>  
              </ul> 
                 </li> 
                 <li><a href="#">Examples</a> 
                     <ul> 
                       <li><a href="all-examples.html">Examples</a></li> 
                       <li><a href="tutorials.html">Tutorials</a></li> 
                       <li><a href="demos.html">Demos</a></li> 
                       <li><a href="qdeclarativeexamples.html">QML Examples</a></li> 
                </ul> 
                     </li> 
                 </ul> 
    </div>
  </div>
  <div class="wrapper">
    <div class="hd">
      <span></span>
    </div>
    <div class="bd group">
      <div class="sidebar">
        <div class="searchlabel">
          Search index:</div>
        <div class="search" id="sidebarsearch">
          <form id="qtdocsearch" action="" onsubmit="return false;">
            <fieldset>
              <input type="text" name="searchstring" id="pageType" value="" />
 <div id="resultdialog"> 
 <a href="#" id="resultclose">Close</a> 
 <p id="resultlinks" class="all"><a href="#" id="showallresults">All</a> | <a href="#" id="showapiresults">API</a> | <a href="#" id="showarticleresults">Articles</a> | <a href="#" id="showexampleresults">Examples</a></p> 
 <p id="searchcount" class="all"><span id="resultcount"></span><span id="apicount"></span><span id="articlecount"></span><span id="examplecount"></span>&nbsp;results:</p> 
 <ul id="resultlist" class="all"> 
 </ul> 
 </div> 
            </fieldset>
          </form>
        </div>
        <div class="box first bottombar" id="lookup">
          <h2 title="API Lookup"><span></span>
            API Lookup</h2>
          <div  id="list001" class="list">
          <ul id="ul001" >
              <li class="defaultLink"><a href="classes.html">Class index</a></li>
              <li class="defaultLink"><a href="functions.html">Function index</a></li>
              <li class="defaultLink"><a href="modules.html">Modules</a></li>
              <li class="defaultLink"><a href="namespaces.html">Namespaces</a></li>
              <li class="defaultLink"><a href="qtglobal.html">Global Declarations</a></li>
              <li class="defaultLink"><a href="qdeclarativeelements.html">QML elements</a></li>
            </ul> 
          </div>
        </div>
        <div class="box bottombar" id="topics">
          <h2 title="Qt Topics"><span></span>
            Qt Topics</h2>
          <div id="list002" class="list">
            <ul id="ul002" >
               <li class="defaultLink"><a href="qt-basic-concepts.html">Programming with Qt</a></li> 
               <li class="defaultLink"><a href="qtquick.html">Device UIs &amp; Qt Quick</a></li> 
               <li class="defaultLink"><a href="qt-gui-concepts.html">UI Design with Qt</a></li> 
               <li class="defaultLink"><a href="supported-platforms.html">Supported Platforms</a></li>  
               <li class="defaultLink"><a href="technology-apis.html">Qt and Key Technologies</a></li> 
               <li class="defaultLink"><a href="best-practices.html">How-To's and Best Practices</a></li> 
            </ul>  
          </div>
        </div>
        <div class="box" id="examples">
          <h2 title="Examples"><span></span>
            Examples</h2>
          <div id="list003" class="list">
        <ul id="ul003">
              <li class="defaultLink"><a href="all-examples.html">Examples</a></li>
              <li class="defaultLink"><a href="tutorials.html">Tutorials</a></li>
              <li class="defaultLink"><a href="demos.html">Demos</a></li>
              <li class="defaultLink"><a href="qdeclarativeexamples.html">QML Examples</a></li>
            </ul> 
          </div>
        </div>
      </div>
      <div class="wrap">
        <div class="toolbar">
          <div class="breadcrumb toolblock">
            <ul>
              <li class="first"><a href="index.html">Home</a></li>
              <!--  Breadcrumbs go here -->
            </ul>
          </div>
          <div class="toolbuttons toolblock">
            <ul>
              <li id="smallA" class="t_button">A</li>
              <li id="medA" class="t_button active">A</li>
              <li id="bigA" class="t_button">A</li>
              <li id="print" class="t_button"><a href="javascript:this.print();">
                <span>Print</span></a></li>
            </ul>
        </div>
        </div>
        <div class="content mainContent">
<h1 class="title">pictureflow.cpp Example File</h1>
<span class="small-subtitle">demos/embedded/fluidlauncher/pictureflow.cpp</span>
<!-- $$$demos/embedded/fluidlauncher/pictureflow.cpp-description -->
<div class="descr"> <a name="details"></a>
<pre class="cpp"> <span class="comment">/****************************************************************************
 **
 ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
 ** Contact: http://www.qt-project.org/legal
 **
 ** This file is part of the ActiveQt framework of the Qt Toolkit.
 **
 ** $QT_BEGIN_LICENSE:BSD$
 ** You may use this file under the terms of the BSD license as follows:
 **
 ** &quot;Redistribution and use in source and binary forms, with or without
 ** modification, are permitted provided that the following conditions are
 ** met:
 **   * Redistributions of source code must retain the above copyright
 **     notice, this list of conditions and the following disclaimer.
 **   * Redistributions in binary form must reproduce the above copyright
 **     notice, this list of conditions and the following disclaimer in
 **     the documentation and/or other materials provided with the
 **     distribution.
 **   * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
 **     of its contributors may be used to endorse or promote products derived
 **     from this software without specific prior written permission.
 **
 **
 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 ** &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&quot;
 **
 ** $QT_END_LICENSE$
 **
 ****************************************************************************/</span>

 <span class="comment">/*
   ORIGINAL COPYRIGHT HEADER
   PictureFlow - animated image show widget
   http://pictureflow.googlecode.com

   Copyright (C) 2007 Ariya Hidayat (ariya@kde.org)

   Permission is hereby granted, free of charge, to any person obtaining a copy
   of this software and associated documentation files (the &quot;Software&quot;), to deal
   in the Software without restriction, including without limitation the rights
   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   copies of the Software, and to permit persons to whom the Software is
   furnished to do so, subject to the following conditions:

   The above copyright notice and this permission notice shall be included in
   all copies or substantial portions of the Software.

   THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   THE SOFTWARE.
 */</span>

 <span class="preprocessor">#include &quot;pictureflow.h&quot;</span>

 <span class="preprocessor">#include &lt;QBasicTimer&gt;</span>
 <span class="preprocessor">#include &lt;QCache&gt;</span>
 <span class="preprocessor">#include &lt;QImage&gt;</span>
 <span class="preprocessor">#include &lt;QKeyEvent&gt;</span>
 <span class="preprocessor">#include &lt;QPainter&gt;</span>
 <span class="preprocessor">#include &lt;QPixmap&gt;</span>
 <span class="preprocessor">#include &lt;QTimer&gt;</span>
 <span class="preprocessor">#include &lt;QVector&gt;</span>
 <span class="preprocessor">#include &lt;QWidget&gt;</span>
 <span class="preprocessor">#include &lt;QTime&gt;</span>

 <span class="preprocessor">#ifdef Q_WS_QWS</span>
 <span class="preprocessor">#include &lt;QScreen&gt;</span>
 <span class="preprocessor">#endif</span>

 <span class="preprocessor">#include &lt;QDebug&gt;</span>

 <span class="keyword">static</span> <span class="keyword">const</span> <span class="type">int</span> captionFontSize <span class="operator">=</span>
 <span class="preprocessor">#ifdef Q_WS_S60</span>
     <span class="number">8</span>;
 <span class="preprocessor">#else</span>
     <span class="number">14</span>;
 <span class="preprocessor">#endif</span>

 <span class="comment">// uncomment this to enable bilinear filtering for texture mapping</span>
 <span class="comment">// gives much better rendering, at the cost of memory space</span>
 <span class="comment">// #define PICTUREFLOW_BILINEAR_FILTER</span>

 <span class="comment">// for fixed-point arithmetic, we need minimum 32-bit long</span>
 <span class="comment">// long long (64-bit) might be useful for multiplication and division</span>
 <span class="keyword">typedef</span> <span class="type">long</span> PFreal;

 <span class="keyword">typedef</span> <span class="type">unsigned</span> <span class="type">short</span> QRgb565;

 <span class="preprocessor">#define RGB565_RED_MASK 0xF800</span>
 <span class="preprocessor">#define RGB565_GREEN_MASK 0x07E0</span>
 <span class="preprocessor">#define RGB565_BLUE_MASK 0x001F</span>

 <span class="preprocessor">#define RGB565_RED(col) ((col&amp;RGB565_RED_MASK)&gt;&gt;11)</span>
 <span class="preprocessor">#define RGB565_GREEN(col) ((col&amp;RGB565_GREEN_MASK)&gt;&gt;5)</span>
 <span class="preprocessor">#define RGB565_BLUE(col) (col&amp;RGB565_BLUE_MASK)</span>

 <span class="preprocessor">#define PFREAL_SHIFT 10</span>
 <span class="preprocessor">#define PFREAL_FACTOR (1 &lt;&lt; PFREAL_SHIFT)</span>
 <span class="preprocessor">#define PFREAL_ONE (1 &lt;&lt; PFREAL_SHIFT)</span>
 <span class="preprocessor">#define PFREAL_HALF (PFREAL_ONE &gt;&gt; 1)</span>

 <span class="keyword">inline</span> PFreal fmul(PFreal a<span class="operator">,</span> PFreal b)
 {
   <span class="keyword">return</span> ((<span class="type">long</span> <span class="type">long</span>)(a))<span class="operator">*</span>((<span class="type">long</span> <span class="type">long</span>)(b)) <span class="operator">&gt;</span><span class="operator">&gt;</span> PFREAL_SHIFT;
 }

 <span class="keyword">inline</span> PFreal fdiv(PFreal num<span class="operator">,</span> PFreal den)
 {
   <span class="type">long</span> <span class="type">long</span> p <span class="operator">=</span> (<span class="type">long</span> <span class="type">long</span>)(num) <span class="operator">&lt;</span><span class="operator">&lt;</span> (PFREAL_SHIFT<span class="operator">*</span><span class="number">2</span>);
   <span class="type">long</span> <span class="type">long</span> q <span class="operator">=</span> p <span class="operator">/</span> (<span class="type">long</span> <span class="type">long</span>)den;
   <span class="type">long</span> <span class="type">long</span> r <span class="operator">=</span> q <span class="operator">&gt;</span><span class="operator">&gt;</span> PFREAL_SHIFT;

   <span class="keyword">return</span> r;
 }

 <span class="keyword">inline</span> <span class="type">float</span> fixedToFloat(PFreal val)
 {
   <span class="keyword">return</span> ((<span class="type">float</span>)val) <span class="operator">/</span> (<span class="type">float</span>)PFREAL_ONE;
 }

 <span class="keyword">inline</span> PFreal floatToFixed(<span class="type">float</span> val)
 {
   <span class="keyword">return</span> (PFreal)(val<span class="operator">*</span>PFREAL_ONE);
 }

 <span class="preprocessor">#define IANGLE_MAX 1024</span>
 <span class="preprocessor">#define IANGLE_MASK 1023</span>

 <span class="comment">// warning: regenerate the table if IANGLE_MAX and PFREAL_SHIFT are changed!</span>
 <span class="keyword">static</span> <span class="keyword">const</span> PFreal sinTable<span class="operator">[</span>IANGLE_MAX<span class="operator">]</span> <span class="operator">=</span> {
      <span class="number">3</span><span class="operator">,</span>      <span class="number">9</span><span class="operator">,</span>     <span class="number">15</span><span class="operator">,</span>     <span class="number">21</span><span class="operator">,</span>     <span class="number">28</span><span class="operator">,</span>     <span class="number">34</span><span class="operator">,</span>     <span class="number">40</span><span class="operator">,</span>     <span class="number">47</span><span class="operator">,</span>
     <span class="number">53</span><span class="operator">,</span>     <span class="number">59</span><span class="operator">,</span>     <span class="number">65</span><span class="operator">,</span>     <span class="number">72</span><span class="operator">,</span>     <span class="number">78</span><span class="operator">,</span>     <span class="number">84</span><span class="operator">,</span>     <span class="number">90</span><span class="operator">,</span>     <span class="number">97</span><span class="operator">,</span>
    <span class="number">103</span><span class="operator">,</span>    <span class="number">109</span><span class="operator">,</span>    <span class="number">115</span><span class="operator">,</span>    <span class="number">122</span><span class="operator">,</span>    <span class="number">128</span><span class="operator">,</span>    <span class="number">134</span><span class="operator">,</span>    <span class="number">140</span><span class="operator">,</span>    <span class="number">147</span><span class="operator">,</span>
    <span class="number">153</span><span class="operator">,</span>    <span class="number">159</span><span class="operator">,</span>    <span class="number">165</span><span class="operator">,</span>    <span class="number">171</span><span class="operator">,</span>    <span class="number">178</span><span class="operator">,</span>    <span class="number">184</span><span class="operator">,</span>    <span class="number">190</span><span class="operator">,</span>    <span class="number">196</span><span class="operator">,</span>
    <span class="number">202</span><span class="operator">,</span>    <span class="number">209</span><span class="operator">,</span>    <span class="number">215</span><span class="operator">,</span>    <span class="number">221</span><span class="operator">,</span>    <span class="number">227</span><span class="operator">,</span>    <span class="number">233</span><span class="operator">,</span>    <span class="number">239</span><span class="operator">,</span>    <span class="number">245</span><span class="operator">,</span>
    <span class="number">251</span><span class="operator">,</span>    <span class="number">257</span><span class="operator">,</span>    <span class="number">264</span><span class="operator">,</span>    <span class="number">270</span><span class="operator">,</span>    <span class="number">276</span><span class="operator">,</span>    <span class="number">282</span><span class="operator">,</span>    <span class="number">288</span><span class="operator">,</span>    <span class="number">294</span><span class="operator">,</span>
    <span class="number">300</span><span class="operator">,</span>    <span class="number">306</span><span class="operator">,</span>    <span class="number">312</span><span class="operator">,</span>    <span class="number">318</span><span class="operator">,</span>    <span class="number">324</span><span class="operator">,</span>    <span class="number">330</span><span class="operator">,</span>    <span class="number">336</span><span class="operator">,</span>    <span class="number">342</span><span class="operator">,</span>
    <span class="number">347</span><span class="operator">,</span>    <span class="number">353</span><span class="operator">,</span>    <span class="number">359</span><span class="operator">,</span>    <span class="number">365</span><span class="operator">,</span>    <span class="number">371</span><span class="operator">,</span>    <span class="number">377</span><span class="operator">,</span>    <span class="number">383</span><span class="operator">,</span>    <span class="number">388</span><span class="operator">,</span>
    <span class="number">394</span><span class="operator">,</span>    <span class="number">400</span><span class="operator">,</span>    <span class="number">406</span><span class="operator">,</span>    <span class="number">412</span><span class="operator">,</span>    <span class="number">417</span><span class="operator">,</span>    <span class="number">423</span><span class="operator">,</span>    <span class="number">429</span><span class="operator">,</span>    <span class="number">434</span><span class="operator">,</span>
    <span class="number">440</span><span class="operator">,</span>    <span class="number">446</span><span class="operator">,</span>    <span class="number">451</span><span class="operator">,</span>    <span class="number">457</span><span class="operator">,</span>    <span class="number">463</span><span class="operator">,</span>    <span class="number">468</span><span class="operator">,</span>    <span class="number">474</span><span class="operator">,</span>    <span class="number">479</span><span class="operator">,</span>
    <span class="number">485</span><span class="operator">,</span>    <span class="number">491</span><span class="operator">,</span>    <span class="number">496</span><span class="operator">,</span>    <span class="number">501</span><span class="operator">,</span>    <span class="number">507</span><span class="operator">,</span>    <span class="number">512</span><span class="operator">,</span>    <span class="number">518</span><span class="operator">,</span>    <span class="number">523</span><span class="operator">,</span>
    <span class="number">529</span><span class="operator">,</span>    <span class="number">534</span><span class="operator">,</span>    <span class="number">539</span><span class="operator">,</span>    <span class="number">545</span><span class="operator">,</span>    <span class="number">550</span><span class="operator">,</span>    <span class="number">555</span><span class="operator">,</span>    <span class="number">561</span><span class="operator">,</span>    <span class="number">566</span><span class="operator">,</span>
    <span class="number">571</span><span class="operator">,</span>    <span class="number">576</span><span class="operator">,</span>    <span class="number">581</span><span class="operator">,</span>    <span class="number">587</span><span class="operator">,</span>    <span class="number">592</span><span class="operator">,</span>    <span class="number">597</span><span class="operator">,</span>    <span class="number">602</span><span class="operator">,</span>    <span class="number">607</span><span class="operator">,</span>
    <span class="number">612</span><span class="operator">,</span>    <span class="number">617</span><span class="operator">,</span>    <span class="number">622</span><span class="operator">,</span>    <span class="number">627</span><span class="operator">,</span>    <span class="number">632</span><span class="operator">,</span>    <span class="number">637</span><span class="operator">,</span>    <span class="number">642</span><span class="operator">,</span>    <span class="number">647</span><span class="operator">,</span>
    <span class="number">652</span><span class="operator">,</span>    <span class="number">656</span><span class="operator">,</span>    <span class="number">661</span><span class="operator">,</span>    <span class="number">666</span><span class="operator">,</span>    <span class="number">671</span><span class="operator">,</span>    <span class="number">675</span><span class="operator">,</span>    <span class="number">680</span><span class="operator">,</span>    <span class="number">685</span><span class="operator">,</span>
    <span class="number">690</span><span class="operator">,</span>    <span class="number">694</span><span class="operator">,</span>    <span class="number">699</span><span class="operator">,</span>    <span class="number">703</span><span class="operator">,</span>    <span class="number">708</span><span class="operator">,</span>    <span class="number">712</span><span class="operator">,</span>    <span class="number">717</span><span class="operator">,</span>    <span class="number">721</span><span class="operator">,</span>
    <span class="number">726</span><span class="operator">,</span>    <span class="number">730</span><span class="operator">,</span>    <span class="number">735</span><span class="operator">,</span>    <span class="number">739</span><span class="operator">,</span>    <span class="number">743</span><span class="operator">,</span>    <span class="number">748</span><span class="operator">,</span>    <span class="number">752</span><span class="operator">,</span>    <span class="number">756</span><span class="operator">,</span>
    <span class="number">760</span><span class="operator">,</span>    <span class="number">765</span><span class="operator">,</span>    <span class="number">769</span><span class="operator">,</span>    <span class="number">773</span><span class="operator">,</span>    <span class="number">777</span><span class="operator">,</span>    <span class="number">781</span><span class="operator">,</span>    <span class="number">785</span><span class="operator">,</span>    <span class="number">789</span><span class="operator">,</span>
    <span class="number">793</span><span class="operator">,</span>    <span class="number">797</span><span class="operator">,</span>    <span class="number">801</span><span class="operator">,</span>    <span class="number">805</span><span class="operator">,</span>    <span class="number">809</span><span class="operator">,</span>    <span class="number">813</span><span class="operator">,</span>    <span class="number">816</span><span class="operator">,</span>    <span class="number">820</span><span class="operator">,</span>
    <span class="number">824</span><span class="operator">,</span>    <span class="number">828</span><span class="operator">,</span>    <span class="number">831</span><span class="operator">,</span>    <span class="number">835</span><span class="operator">,</span>    <span class="number">839</span><span class="operator">,</span>    <span class="number">842</span><span class="operator">,</span>    <span class="number">846</span><span class="operator">,</span>    <span class="number">849</span><span class="operator">,</span>
    <span class="number">853</span><span class="operator">,</span>    <span class="number">856</span><span class="operator">,</span>    <span class="number">860</span><span class="operator">,</span>    <span class="number">863</span><span class="operator">,</span>    <span class="number">866</span><span class="operator">,</span>    <span class="number">870</span><span class="operator">,</span>    <span class="number">873</span><span class="operator">,</span>    <span class="number">876</span><span class="operator">,</span>
    <span class="number">879</span><span class="operator">,</span>    <span class="number">883</span><span class="operator">,</span>    <span class="number">886</span><span class="operator">,</span>    <span class="number">889</span><span class="operator">,</span>    <span class="number">892</span><span class="operator">,</span>    <span class="number">895</span><span class="operator">,</span>    <span class="number">898</span><span class="operator">,</span>    <span class="number">901</span><span class="operator">,</span>
    <span class="number">904</span><span class="operator">,</span>    <span class="number">907</span><span class="operator">,</span>    <span class="number">910</span><span class="operator">,</span>    <span class="number">913</span><span class="operator">,</span>    <span class="number">916</span><span class="operator">,</span>    <span class="number">918</span><span class="operator">,</span>    <span class="number">921</span><span class="operator">,</span>    <span class="number">924</span><span class="operator">,</span>
    <span class="number">927</span><span class="operator">,</span>    <span class="number">929</span><span class="operator">,</span>    <span class="number">932</span><span class="operator">,</span>    <span class="number">934</span><span class="operator">,</span>    <span class="number">937</span><span class="operator">,</span>    <span class="number">939</span><span class="operator">,</span>    <span class="number">942</span><span class="operator">,</span>    <span class="number">944</span><span class="operator">,</span>
    <span class="number">947</span><span class="operator">,</span>    <span class="number">949</span><span class="operator">,</span>    <span class="number">951</span><span class="operator">,</span>    <span class="number">954</span><span class="operator">,</span>    <span class="number">956</span><span class="operator">,</span>    <span class="number">958</span><span class="operator">,</span>    <span class="number">960</span><span class="operator">,</span>    <span class="number">963</span><span class="operator">,</span>
    <span class="number">965</span><span class="operator">,</span>    <span class="number">967</span><span class="operator">,</span>    <span class="number">969</span><span class="operator">,</span>    <span class="number">971</span><span class="operator">,</span>    <span class="number">973</span><span class="operator">,</span>    <span class="number">975</span><span class="operator">,</span>    <span class="number">977</span><span class="operator">,</span>    <span class="number">978</span><span class="operator">,</span>
    <span class="number">980</span><span class="operator">,</span>    <span class="number">982</span><span class="operator">,</span>    <span class="number">984</span><span class="operator">,</span>    <span class="number">986</span><span class="operator">,</span>    <span class="number">987</span><span class="operator">,</span>    <span class="number">989</span><span class="operator">,</span>    <span class="number">990</span><span class="operator">,</span>    <span class="number">992</span><span class="operator">,</span>
    <span class="number">994</span><span class="operator">,</span>    <span class="number">995</span><span class="operator">,</span>    <span class="number">997</span><span class="operator">,</span>    <span class="number">998</span><span class="operator">,</span>    <span class="number">999</span><span class="operator">,</span>   <span class="number">1001</span><span class="operator">,</span>   <span class="number">1002</span><span class="operator">,</span>   <span class="number">1003</span><span class="operator">,</span>
   <span class="number">1004</span><span class="operator">,</span>   <span class="number">1006</span><span class="operator">,</span>   <span class="number">1007</span><span class="operator">,</span>   <span class="number">1008</span><span class="operator">,</span>   <span class="number">1009</span><span class="operator">,</span>   <span class="number">1010</span><span class="operator">,</span>   <span class="number">1011</span><span class="operator">,</span>   <span class="number">1012</span><span class="operator">,</span>
   <span class="number">1013</span><span class="operator">,</span>   <span class="number">1014</span><span class="operator">,</span>   <span class="number">1015</span><span class="operator">,</span>   <span class="number">1015</span><span class="operator">,</span>   <span class="number">1016</span><span class="operator">,</span>   <span class="number">1017</span><span class="operator">,</span>   <span class="number">1018</span><span class="operator">,</span>   <span class="number">1018</span><span class="operator">,</span>
   <span class="number">1019</span><span class="operator">,</span>   <span class="number">1019</span><span class="operator">,</span>   <span class="number">1020</span><span class="operator">,</span>   <span class="number">1020</span><span class="operator">,</span>   <span class="number">1021</span><span class="operator">,</span>   <span class="number">1021</span><span class="operator">,</span>   <span class="number">1022</span><span class="operator">,</span>   <span class="number">1022</span><span class="operator">,</span>
   <span class="number">1022</span><span class="operator">,</span>   <span class="number">1023</span><span class="operator">,</span>   <span class="number">1023</span><span class="operator">,</span>   <span class="number">1023</span><span class="operator">,</span>   <span class="number">1023</span><span class="operator">,</span>   <span class="number">1023</span><span class="operator">,</span>   <span class="number">1023</span><span class="operator">,</span>   <span class="number">1023</span><span class="operator">,</span>
   <span class="number">1023</span><span class="operator">,</span>   <span class="number">1023</span><span class="operator">,</span>   <span class="number">1023</span><span class="operator">,</span>   <span class="number">1023</span><span class="operator">,</span>   <span class="number">1023</span><span class="operator">,</span>   <span class="number">1023</span><span class="operator">,</span>   <span class="number">1023</span><span class="operator">,</span>   <span class="number">1022</span><span class="operator">,</span>
   <span class="number">1022</span><span class="operator">,</span>   <span class="number">1022</span><span class="operator">,</span>   <span class="number">1021</span><span class="operator">,</span>   <span class="number">1021</span><span class="operator">,</span>   <span class="number">1020</span><span class="operator">,</span>   <span class="number">1020</span><span class="operator">,</span>   <span class="number">1019</span><span class="operator">,</span>   <span class="number">1019</span><span class="operator">,</span>
   <span class="number">1018</span><span class="operator">,</span>   <span class="number">1018</span><span class="operator">,</span>   <span class="number">1017</span><span class="operator">,</span>   <span class="number">1016</span><span class="operator">,</span>   <span class="number">1015</span><span class="operator">,</span>   <span class="number">1015</span><span class="operator">,</span>   <span class="number">1014</span><span class="operator">,</span>   <span class="number">1013</span><span class="operator">,</span>
   <span class="number">1012</span><span class="operator">,</span>   <span class="number">1011</span><span class="operator">,</span>   <span class="number">1010</span><span class="operator">,</span>   <span class="number">1009</span><span class="operator">,</span>   <span class="number">1008</span><span class="operator">,</span>   <span class="number">1007</span><span class="operator">,</span>   <span class="number">1006</span><span class="operator">,</span>   <span class="number">1004</span><span class="operator">,</span>
   <span class="number">1003</span><span class="operator">,</span>   <span class="number">1002</span><span class="operator">,</span>   <span class="number">1001</span><span class="operator">,</span>    <span class="number">999</span><span class="operator">,</span>    <span class="number">998</span><span class="operator">,</span>    <span class="number">997</span><span class="operator">,</span>    <span class="number">995</span><span class="operator">,</span>    <span class="number">994</span><span class="operator">,</span>
    <span class="number">992</span><span class="operator">,</span>    <span class="number">990</span><span class="operator">,</span>    <span class="number">989</span><span class="operator">,</span>    <span class="number">987</span><span class="operator">,</span>    <span class="number">986</span><span class="operator">,</span>    <span class="number">984</span><span class="operator">,</span>    <span class="number">982</span><span class="operator">,</span>    <span class="number">980</span><span class="operator">,</span>
    <span class="number">978</span><span class="operator">,</span>    <span class="number">977</span><span class="operator">,</span>    <span class="number">975</span><span class="operator">,</span>    <span class="number">973</span><span class="operator">,</span>    <span class="number">971</span><span class="operator">,</span>    <span class="number">969</span><span class="operator">,</span>    <span class="number">967</span><span class="operator">,</span>    <span class="number">965</span><span class="operator">,</span>
    <span class="number">963</span><span class="operator">,</span>    <span class="number">960</span><span class="operator">,</span>    <span class="number">958</span><span class="operator">,</span>    <span class="number">956</span><span class="operator">,</span>    <span class="number">954</span><span class="operator">,</span>    <span class="number">951</span><span class="operator">,</span>    <span class="number">949</span><span class="operator">,</span>    <span class="number">947</span><span class="operator">,</span>
    <span class="number">944</span><span class="operator">,</span>    <span class="number">942</span><span class="operator">,</span>    <span class="number">939</span><span class="operator">,</span>    <span class="number">937</span><span class="operator">,</span>    <span class="number">934</span><span class="operator">,</span>    <span class="number">932</span><span class="operator">,</span>    <span class="number">929</span><span class="operator">,</span>    <span class="number">927</span><span class="operator">,</span>
    <span class="number">924</span><span class="operator">,</span>    <span class="number">921</span><span class="operator">,</span>    <span class="number">918</span><span class="operator">,</span>    <span class="number">916</span><span class="operator">,</span>    <span class="number">913</span><span class="operator">,</span>    <span class="number">910</span><span class="operator">,</span>    <span class="number">907</span><span class="operator">,</span>    <span class="number">904</span><span class="operator">,</span>
    <span class="number">901</span><span class="operator">,</span>    <span class="number">898</span><span class="operator">,</span>    <span class="number">895</span><span class="operator">,</span>    <span class="number">892</span><span class="operator">,</span>    <span class="number">889</span><span class="operator">,</span>    <span class="number">886</span><span class="operator">,</span>    <span class="number">883</span><span class="operator">,</span>    <span class="number">879</span><span class="operator">,</span>
    <span class="number">876</span><span class="operator">,</span>    <span class="number">873</span><span class="operator">,</span>    <span class="number">870</span><span class="operator">,</span>    <span class="number">866</span><span class="operator">,</span>    <span class="number">863</span><span class="operator">,</span>    <span class="number">860</span><span class="operator">,</span>    <span class="number">856</span><span class="operator">,</span>    <span class="number">853</span><span class="operator">,</span>
    <span class="number">849</span><span class="operator">,</span>    <span class="number">846</span><span class="operator">,</span>    <span class="number">842</span><span class="operator">,</span>    <span class="number">839</span><span class="operator">,</span>    <span class="number">835</span><span class="operator">,</span>    <span class="number">831</span><span class="operator">,</span>    <span class="number">828</span><span class="operator">,</span>    <span class="number">824</span><span class="operator">,</span>
    <span class="number">820</span><span class="operator">,</span>    <span class="number">816</span><span class="operator">,</span>    <span class="number">813</span><span class="operator">,</span>    <span class="number">809</span><span class="operator">,</span>    <span class="number">805</span><span class="operator">,</span>    <span class="number">801</span><span class="operator">,</span>    <span class="number">797</span><span class="operator">,</span>    <span class="number">793</span><span class="operator">,</span>
    <span class="number">789</span><span class="operator">,</span>    <span class="number">785</span><span class="operator">,</span>    <span class="number">781</span><span class="operator">,</span>    <span class="number">777</span><span class="operator">,</span>    <span class="number">773</span><span class="operator">,</span>    <span class="number">769</span><span class="operator">,</span>    <span class="number">765</span><span class="operator">,</span>    <span class="number">760</span><span class="operator">,</span>
    <span class="number">756</span><span class="operator">,</span>    <span class="number">752</span><span class="operator">,</span>    <span class="number">748</span><span class="operator">,</span>    <span class="number">743</span><span class="operator">,</span>    <span class="number">739</span><span class="operator">,</span>    <span class="number">735</span><span class="operator">,</span>    <span class="number">730</span><span class="operator">,</span>    <span class="number">726</span><span class="operator">,</span>
    <span class="number">721</span><span class="operator">,</span>    <span class="number">717</span><span class="operator">,</span>    <span class="number">712</span><span class="operator">,</span>    <span class="number">708</span><span class="operator">,</span>    <span class="number">703</span><span class="operator">,</span>    <span class="number">699</span><span class="operator">,</span>    <span class="number">694</span><span class="operator">,</span>    <span class="number">690</span><span class="operator">,</span>
    <span class="number">685</span><span class="operator">,</span>    <span class="number">680</span><span class="operator">,</span>    <span class="number">675</span><span class="operator">,</span>    <span class="number">671</span><span class="operator">,</span>    <span class="number">666</span><span class="operator">,</span>    <span class="number">661</span><span class="operator">,</span>    <span class="number">656</span><span class="operator">,</span>    <span class="number">652</span><span class="operator">,</span>
    <span class="number">647</span><span class="operator">,</span>    <span class="number">642</span><span class="operator">,</span>    <span class="number">637</span><span class="operator">,</span>    <span class="number">632</span><span class="operator">,</span>    <span class="number">627</span><span class="operator">,</span>    <span class="number">622</span><span class="operator">,</span>    <span class="number">617</span><span class="operator">,</span>    <span class="number">612</span><span class="operator">,</span>
    <span class="number">607</span><span class="operator">,</span>    <span class="number">602</span><span class="operator">,</span>    <span class="number">597</span><span class="operator">,</span>    <span class="number">592</span><span class="operator">,</span>    <span class="number">587</span><span class="operator">,</span>    <span class="number">581</span><span class="operator">,</span>    <span class="number">576</span><span class="operator">,</span>    <span class="number">571</span><span class="operator">,</span>
    <span class="number">566</span><span class="operator">,</span>    <span class="number">561</span><span class="operator">,</span>    <span class="number">555</span><span class="operator">,</span>    <span class="number">550</span><span class="operator">,</span>    <span class="number">545</span><span class="operator">,</span>    <span class="number">539</span><span class="operator">,</span>    <span class="number">534</span><span class="operator">,</span>    <span class="number">529</span><span class="operator">,</span>
    <span class="number">523</span><span class="operator">,</span>    <span class="number">518</span><span class="operator">,</span>    <span class="number">512</span><span class="operator">,</span>    <span class="number">507</span><span class="operator">,</span>    <span class="number">501</span><span class="operator">,</span>    <span class="number">496</span><span class="operator">,</span>    <span class="number">491</span><span class="operator">,</span>    <span class="number">485</span><span class="operator">,</span>
    <span class="number">479</span><span class="operator">,</span>    <span class="number">474</span><span class="operator">,</span>    <span class="number">468</span><span class="operator">,</span>    <span class="number">463</span><span class="operator">,</span>    <span class="number">457</span><span class="operator">,</span>    <span class="number">451</span><span class="operator">,</span>    <span class="number">446</span><span class="operator">,</span>    <span class="number">440</span><span class="operator">,</span>
    <span class="number">434</span><span class="operator">,</span>    <span class="number">429</span><span class="operator">,</span>    <span class="number">423</span><span class="operator">,</span>    <span class="number">417</span><span class="operator">,</span>    <span class="number">412</span><span class="operator">,</span>    <span class="number">406</span><span class="operator">,</span>    <span class="number">400</span><span class="operator">,</span>    <span class="number">394</span><span class="operator">,</span>
    <span class="number">388</span><span class="operator">,</span>    <span class="number">383</span><span class="operator">,</span>    <span class="number">377</span><span class="operator">,</span>    <span class="number">371</span><span class="operator">,</span>    <span class="number">365</span><span class="operator">,</span>    <span class="number">359</span><span class="operator">,</span>    <span class="number">353</span><span class="operator">,</span>    <span class="number">347</span><span class="operator">,</span>
    <span class="number">342</span><span class="operator">,</span>    <span class="number">336</span><span class="operator">,</span>    <span class="number">330</span><span class="operator">,</span>    <span class="number">324</span><span class="operator">,</span>    <span class="number">318</span><span class="operator">,</span>    <span class="number">312</span><span class="operator">,</span>    <span class="number">306</span><span class="operator">,</span>    <span class="number">300</span><span class="operator">,</span>
    <span class="number">294</span><span class="operator">,</span>    <span class="number">288</span><span class="operator">,</span>    <span class="number">282</span><span class="operator">,</span>    <span class="number">276</span><span class="operator">,</span>    <span class="number">270</span><span class="operator">,</span>    <span class="number">264</span><span class="operator">,</span>    <span class="number">257</span><span class="operator">,</span>    <span class="number">251</span><span class="operator">,</span>
    <span class="number">245</span><span class="operator">,</span>    <span class="number">239</span><span class="operator">,</span>    <span class="number">233</span><span class="operator">,</span>    <span class="number">227</span><span class="operator">,</span>    <span class="number">221</span><span class="operator">,</span>    <span class="number">215</span><span class="operator">,</span>    <span class="number">209</span><span class="operator">,</span>    <span class="number">202</span><span class="operator">,</span>
    <span class="number">196</span><span class="operator">,</span>    <span class="number">190</span><span class="operator">,</span>    <span class="number">184</span><span class="operator">,</span>    <span class="number">178</span><span class="operator">,</span>    <span class="number">171</span><span class="operator">,</span>    <span class="number">165</span><span class="operator">,</span>    <span class="number">159</span><span class="operator">,</span>    <span class="number">153</span><span class="operator">,</span>
    <span class="number">147</span><span class="operator">,</span>    <span class="number">140</span><span class="operator">,</span>    <span class="number">134</span><span class="operator">,</span>    <span class="number">128</span><span class="operator">,</span>    <span class="number">122</span><span class="operator">,</span>    <span class="number">115</span><span class="operator">,</span>    <span class="number">109</span><span class="operator">,</span>    <span class="number">103</span><span class="operator">,</span>
     <span class="number">97</span><span class="operator">,</span>     <span class="number">90</span><span class="operator">,</span>     <span class="number">84</span><span class="operator">,</span>     <span class="number">78</span><span class="operator">,</span>     <span class="number">72</span><span class="operator">,</span>     <span class="number">65</span><span class="operator">,</span>     <span class="number">59</span><span class="operator">,</span>     <span class="number">53</span><span class="operator">,</span>
     <span class="number">47</span><span class="operator">,</span>     <span class="number">40</span><span class="operator">,</span>     <span class="number">34</span><span class="operator">,</span>     <span class="number">28</span><span class="operator">,</span>     <span class="number">21</span><span class="operator">,</span>     <span class="number">15</span><span class="operator">,</span>      <span class="number">9</span><span class="operator">,</span>      <span class="number">3</span><span class="operator">,</span>
     <span class="operator">-</span><span class="number">4</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">10</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">16</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">22</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">29</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">35</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">41</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">48</span><span class="operator">,</span>
    <span class="operator">-</span><span class="number">54</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">60</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">66</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">73</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">79</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">85</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">91</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">98</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">104</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">110</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">116</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">123</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">129</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">135</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">141</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">148</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">154</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">160</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">166</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">172</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">179</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">185</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">191</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">197</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">203</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">210</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">216</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">222</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">228</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">234</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">240</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">246</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">252</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">258</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">265</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">271</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">277</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">283</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">289</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">295</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">301</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">307</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">313</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">319</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">325</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">331</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">337</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">343</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">348</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">354</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">360</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">366</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">372</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">378</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">384</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">389</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">395</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">401</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">407</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">413</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">418</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">424</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">430</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">435</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">441</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">447</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">452</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">458</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">464</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">469</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">475</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">480</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">486</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">492</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">497</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">502</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">508</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">513</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">519</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">524</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">530</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">535</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">540</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">546</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">551</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">556</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">562</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">567</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">572</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">577</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">582</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">588</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">593</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">598</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">603</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">608</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">613</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">618</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">623</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">628</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">633</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">638</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">643</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">648</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">653</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">657</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">662</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">667</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">672</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">676</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">681</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">686</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">691</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">695</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">700</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">704</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">709</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">713</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">718</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">722</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">727</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">731</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">736</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">740</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">744</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">749</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">753</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">757</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">761</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">766</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">770</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">774</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">778</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">782</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">786</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">790</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">794</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">798</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">802</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">806</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">810</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">814</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">817</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">821</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">825</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">829</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">832</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">836</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">840</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">843</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">847</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">850</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">854</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">857</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">861</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">864</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">867</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">871</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">874</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">877</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">880</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">884</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">887</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">890</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">893</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">896</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">899</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">902</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">905</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">908</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">911</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">914</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">917</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">919</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">922</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">925</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">928</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">930</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">933</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">935</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">938</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">940</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">943</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">945</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">948</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">950</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">952</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">955</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">957</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">959</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">961</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">964</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">966</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">968</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">970</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">972</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">974</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">976</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">978</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">979</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">981</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">983</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">985</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">987</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">988</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">990</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">991</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">993</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">995</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">996</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">998</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">999</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1000</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1002</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1003</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1004</span><span class="operator">,</span>
  <span class="operator">-</span><span class="number">1005</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1007</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1008</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1009</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1010</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1011</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1012</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1013</span><span class="operator">,</span>
  <span class="operator">-</span><span class="number">1014</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1015</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1016</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1016</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1017</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1018</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1019</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1019</span><span class="operator">,</span>
  <span class="operator">-</span><span class="number">1020</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1020</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1021</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1021</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1022</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1022</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1023</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1023</span><span class="operator">,</span>
  <span class="operator">-</span><span class="number">1023</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1024</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1024</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1024</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1024</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1024</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1024</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1024</span><span class="operator">,</span>
  <span class="operator">-</span><span class="number">1024</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1024</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1024</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1024</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1024</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1024</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1024</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1023</span><span class="operator">,</span>
  <span class="operator">-</span><span class="number">1023</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1023</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1022</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1022</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1021</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1021</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1020</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1020</span><span class="operator">,</span>
  <span class="operator">-</span><span class="number">1019</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1019</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1018</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1017</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1016</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1016</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1015</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1014</span><span class="operator">,</span>
  <span class="operator">-</span><span class="number">1013</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1012</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1011</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1010</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1009</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1008</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1007</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1005</span><span class="operator">,</span>
  <span class="operator">-</span><span class="number">1004</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1003</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1002</span><span class="operator">,</span>  <span class="operator">-</span><span class="number">1000</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">999</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">998</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">996</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">995</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">993</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">991</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">990</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">988</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">987</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">985</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">983</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">981</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">979</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">978</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">976</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">974</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">972</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">970</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">968</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">966</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">964</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">961</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">959</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">957</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">955</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">952</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">950</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">948</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">945</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">943</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">940</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">938</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">935</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">933</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">930</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">928</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">925</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">922</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">919</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">917</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">914</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">911</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">908</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">905</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">902</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">899</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">896</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">893</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">890</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">887</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">884</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">880</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">877</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">874</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">871</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">867</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">864</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">861</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">857</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">854</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">850</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">847</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">843</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">840</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">836</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">832</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">829</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">825</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">821</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">817</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">814</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">810</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">806</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">802</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">798</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">794</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">790</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">786</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">782</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">778</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">774</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">770</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">766</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">761</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">757</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">753</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">749</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">744</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">740</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">736</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">731</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">727</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">722</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">718</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">713</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">709</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">704</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">700</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">695</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">691</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">686</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">681</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">676</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">672</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">667</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">662</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">657</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">653</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">648</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">643</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">638</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">633</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">628</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">623</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">618</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">613</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">608</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">603</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">598</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">593</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">588</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">582</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">577</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">572</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">567</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">562</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">556</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">551</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">546</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">540</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">535</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">530</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">524</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">519</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">513</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">508</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">502</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">497</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">492</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">486</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">480</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">475</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">469</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">464</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">458</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">452</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">447</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">441</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">435</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">430</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">424</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">418</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">413</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">407</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">401</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">395</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">389</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">384</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">378</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">372</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">366</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">360</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">354</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">348</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">343</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">337</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">331</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">325</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">319</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">313</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">307</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">301</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">295</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">289</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">283</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">277</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">271</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">265</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">258</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">252</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">246</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">240</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">234</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">228</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">222</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">216</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">210</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">203</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">197</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">191</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">185</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">179</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">172</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">166</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">160</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">154</span><span class="operator">,</span>
   <span class="operator">-</span><span class="number">148</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">141</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">135</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">129</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">123</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">116</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">110</span><span class="operator">,</span>   <span class="operator">-</span><span class="number">104</span><span class="operator">,</span>
    <span class="operator">-</span><span class="number">98</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">91</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">85</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">79</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">73</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">66</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">60</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">54</span><span class="operator">,</span>
    <span class="operator">-</span><span class="number">48</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">41</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">35</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">29</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">22</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">16</span><span class="operator">,</span>    <span class="operator">-</span><span class="number">10</span><span class="operator">,</span>     <span class="operator">-</span><span class="number">4</span>
 };

 <span class="comment">// this is the program the generate the above table</span>
 <span class="preprocessor">#if 0</span>
 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
 <span class="preprocessor">#include &lt;math.h&gt;</span>

 <span class="preprocessor">#ifndef M_PI</span>
 <span class="preprocessor">#define M_PI 3.14159265358979323846</span>
 <span class="preprocessor">#endif</span>

 <span class="preprocessor">#define PFREAL_ONE 1024</span>
 <span class="preprocessor">#define IANGLE_MAX 1024</span>

 <span class="type">int</span> main(<span class="type">int</span><span class="operator">,</span> <span class="type">char</span><span class="operator">*</span><span class="operator">*</span>)
 {
   FILE<span class="operator">*</span>f <span class="operator">=</span> fopen(<span class="string">&quot;table.c&quot;</span><span class="operator">,</span><span class="string">&quot;wt&quot;</span>);
   fprintf(f<span class="operator">,</span><span class="string">&quot;PFreal sinTable[] = {\n&quot;</span>);
   <span class="keyword">for</span>(<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">128</span>; i<span class="operator">+</span><span class="operator">+</span>)
   {
     <span class="keyword">for</span>(<span class="type">int</span> j <span class="operator">=</span> <span class="number">0</span>; j <span class="operator">&lt;</span> <span class="number">8</span>; j<span class="operator">+</span><span class="operator">+</span>)
     {
       <span class="type">int</span> iang <span class="operator">=</span> j<span class="operator">+</span>i<span class="operator">*</span><span class="number">8</span>;
       <span class="type">double</span> ii <span class="operator">=</span> (<span class="type">double</span>)iang <span class="operator">+</span> <span class="number">0.5</span>;
       <span class="type">double</span> angle <span class="operator">=</span> ii <span class="operator">*</span> <span class="number">2</span> <span class="operator">*</span> M_PI <span class="operator">/</span> IANGLE_MAX;
       <span class="type">double</span> sinAngle <span class="operator">=</span> sin(angle);
       fprintf(f<span class="operator">,</span><span class="string">&quot;%6d, &quot;</span><span class="operator">,</span> (<span class="type">int</span>)(floor(PFREAL_ONE<span class="operator">*</span>sinAngle)));
     }
     fprintf(f<span class="operator">,</span><span class="string">&quot;\n&quot;</span>);
   }
   fprintf(f<span class="operator">,</span><span class="string">&quot;};\n&quot;</span>);
   fclose(f);

   <span class="keyword">return</span> <span class="number">0</span>;
 }
 <span class="preprocessor">#endif</span>

 <span class="keyword">inline</span> PFreal fsin(<span class="type">int</span> iangle)
 {
   <span class="keyword">while</span>(iangle <span class="operator">&lt;</span> <span class="number">0</span>)
     iangle <span class="operator">+</span><span class="operator">=</span> IANGLE_MAX;
   <span class="keyword">return</span> sinTable<span class="operator">[</span>iangle <span class="operator">&amp;</span> IANGLE_MASK<span class="operator">]</span>;
 }

 <span class="keyword">inline</span> PFreal fcos(<span class="type">int</span> iangle)
 {
   <span class="comment">// quarter phase shift</span>
   <span class="keyword">return</span> fsin(iangle <span class="operator">+</span> (IANGLE_MAX <span class="operator">&gt;</span><span class="operator">&gt;</span> <span class="number">2</span>));
 }

 <span class="keyword">struct</span> SlideInfo
 {
   <span class="type">int</span> slideIndex;
   <span class="type">int</span> angle;
   PFreal cx;
   PFreal cy;
 };

 <span class="keyword">class</span> PictureFlowPrivate
 {
 <span class="keyword">public</span>:
   PictureFlowPrivate(PictureFlow<span class="operator">*</span> widget);

   <span class="type">int</span> slideCount() <span class="keyword">const</span>;
   <span class="type">void</span> setSlideCount(<span class="type">int</span> count);

   <span class="type"><a href="qsize.html">QSize</a></span> slideSize() <span class="keyword">const</span>;
   <span class="type">void</span> setSlideSize(<span class="type"><a href="qsize.html">QSize</a></span> size);

   <span class="type">int</span> zoomFactor() <span class="keyword">const</span>;
   <span class="type">void</span> setZoomFactor(<span class="type">int</span> z);

   <span class="type"><a href="qimage.html">QImage</a></span> slide(<span class="type">int</span> index) <span class="keyword">const</span>;
   <span class="type">void</span> setSlide(<span class="type">int</span> index<span class="operator">,</span> <span class="keyword">const</span> <span class="type"><a href="qimage.html">QImage</a></span><span class="operator">&amp;</span> image);

   <span class="type">int</span> currentSlide() <span class="keyword">const</span>;
   <span class="type">void</span> setCurrentSlide(<span class="type">int</span> index);

   <span class="type">int</span> getTarget() <span class="keyword">const</span>;

   <span class="type">void</span> showPrevious();
   <span class="type">void</span> showNext();
   <span class="type">void</span> showSlide(<span class="type">int</span> index);

   <span class="type">void</span> resize(<span class="type">int</span> w<span class="operator">,</span> <span class="type">int</span> h);

   <span class="type">void</span> render();
   <span class="type">void</span> startAnimation();
   <span class="type">void</span> updateAnimation();

   <span class="type">void</span> clearSurfaceCache();

   <span class="type"><a href="qimage.html">QImage</a></span> buffer;
   <span class="type"><a href="qbasictimer.html">QBasicTimer</a></span> animateTimer;

   <span class="type">bool</span>   singlePress;
   <span class="type">int</span>    singlePressThreshold;
   <span class="type"><a href="qpoint.html">QPoint</a></span> firstPress;
   <span class="type"><a href="qpoint.html">QPoint</a></span> previousPos;
   <span class="type"><a href="qtime.html">QTime</a></span>  previousPosTimestamp;
   <span class="type">int</span>    pixelDistanceMoved;
   <span class="type">int</span>    pixelsToMovePerSlide;

   <span class="type"><a href="qvector.html">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="qstring.html">QString</a></span><span class="operator">&gt;</span> captions;

 <span class="keyword">private</span>:
   PictureFlow<span class="operator">*</span> widget;

   <span class="type">int</span> slideWidth;
   <span class="type">int</span> slideHeight;
   <span class="type">int</span> zoom;

   <span class="type"><a href="qvector.html">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="qimage.html">QImage</a></span><span class="operator">&gt;</span> slideImages;
   <span class="type">int</span> centerIndex;
   SlideInfo centerSlide;
   <span class="type"><a href="qvector.html">QVector</a></span><span class="operator">&lt;</span>SlideInfo<span class="operator">&gt;</span> leftSlides;
   <span class="type"><a href="qvector.html">QVector</a></span><span class="operator">&lt;</span>SlideInfo<span class="operator">&gt;</span> rightSlides;

   <span class="type"><a href="qvector.html">QVector</a></span><span class="operator">&lt;</span>PFreal<span class="operator">&gt;</span> rays;
   <span class="type">int</span> itilt;
   <span class="type">int</span> spacing;
   PFreal offsetX;
   PFreal offsetY;

   <span class="type"><a href="qimage.html">QImage</a></span> blankSurface;
   <span class="type"><a href="qcache.html">QCache</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">,</span> <span class="type"><a href="qimage.html">QImage</a></span><span class="operator">&gt;</span> surfaceCache;
   <span class="type"><a href="qtimer.html">QTimer</a></span> triggerTimer;

   <span class="type">int</span> slideFrame;
   <span class="type">int</span> step;
   <span class="type">int</span> target;
   <span class="type">int</span> fade;

   <span class="type">void</span> recalc(<span class="type">int</span> w<span class="operator">,</span> <span class="type">int</span> h);
   <span class="type"><a href="qrect.html">QRect</a></span> renderSlide(<span class="keyword">const</span> SlideInfo <span class="operator">&amp;</span>slide<span class="operator">,</span> <span class="type">int</span> alpha<span class="operator">=</span><span class="number">256</span><span class="operator">,</span> <span class="type">int</span> col1<span class="operator">=</span><span class="operator">-</span><span class="number">1</span><span class="operator">,</span> <span class="type">int</span> col<span class="operator">=</span><span class="operator">-</span><span class="number">1</span>);
   <span class="type"><a href="qimage.html">QImage</a></span><span class="operator">*</span> surface(<span class="type">int</span> slideIndex);
   <span class="type">void</span> triggerRender();
   <span class="type">void</span> resetSlides();
 };

 PictureFlowPrivate<span class="operator">::</span>PictureFlowPrivate(PictureFlow<span class="operator">*</span> w)
 {
   widget <span class="operator">=</span> w;

   slideWidth <span class="operator">=</span> <span class="number">200</span>;
   slideHeight <span class="operator">=</span> <span class="number">200</span>;
   zoom <span class="operator">=</span> <span class="number">100</span>;

   centerIndex <span class="operator">=</span> <span class="number">0</span>;

   slideFrame <span class="operator">=</span> <span class="number">0</span>;
   step <span class="operator">=</span> <span class="number">0</span>;
   target <span class="operator">=</span> <span class="number">0</span>;
   fade <span class="operator">=</span> <span class="number">256</span>;

   triggerTimer<span class="operator">.</span>setSingleShot(<span class="keyword">true</span>);
   triggerTimer<span class="operator">.</span>setInterval(<span class="number">0</span>);
   <span class="type"><a href="qobject.html">QObject</a></span><span class="operator">::</span>connect(<span class="operator">&amp;</span>triggerTimer<span class="operator">,</span> SIGNAL(timeout())<span class="operator">,</span> widget<span class="operator">,</span> SLOT(render()));

   recalc(<span class="number">200</span><span class="operator">,</span> <span class="number">200</span>);
   resetSlides();
 }

 <span class="type">int</span> PictureFlowPrivate<span class="operator">::</span>slideCount() <span class="keyword">const</span>
 {
   <span class="keyword">return</span> slideImages<span class="operator">.</span>count();
 }

 <span class="type">void</span> PictureFlowPrivate<span class="operator">::</span>setSlideCount(<span class="type">int</span> count)
 {
   slideImages<span class="operator">.</span>resize(count);
   captions<span class="operator">.</span>resize(count);
   surfaceCache<span class="operator">.</span>clear();
   resetSlides();
   triggerRender();
 }

 <span class="type"><a href="qsize.html">QSize</a></span> PictureFlowPrivate<span class="operator">::</span>slideSize() <span class="keyword">const</span>
 {
   <span class="keyword">return</span> <span class="type"><a href="qsize.html">QSize</a></span>(slideWidth<span class="operator">,</span> slideHeight);
 }

 <span class="type">void</span> PictureFlowPrivate<span class="operator">::</span>setSlideSize(<span class="type"><a href="qsize.html">QSize</a></span> size)
 {
   slideWidth <span class="operator">=</span> size<span class="operator">.</span>width();
   slideHeight <span class="operator">=</span> size<span class="operator">.</span>height();
   recalc(buffer<span class="operator">.</span>width()<span class="operator">,</span> buffer<span class="operator">.</span>height());
   triggerRender();
 }

 <span class="type">int</span> PictureFlowPrivate<span class="operator">::</span>zoomFactor() <span class="keyword">const</span>
 {
   <span class="keyword">return</span> zoom;
 }

 <span class="type">void</span> PictureFlowPrivate<span class="operator">::</span>setZoomFactor(<span class="type">int</span> z)
 {
   <span class="keyword">if</span>(z <span class="operator">&lt;</span><span class="operator">=</span> <span class="number">0</span>)
     <span class="keyword">return</span>;

   zoom <span class="operator">=</span> z;
   recalc(buffer<span class="operator">.</span>width()<span class="operator">,</span> buffer<span class="operator">.</span>height());
   triggerRender();
 }

 <span class="type"><a href="qimage.html">QImage</a></span> PictureFlowPrivate<span class="operator">::</span>slide(<span class="type">int</span> index) <span class="keyword">const</span>
 {
   <span class="keyword">return</span> slideImages<span class="operator">[</span>index<span class="operator">]</span>;
 }

 <span class="type">void</span> PictureFlowPrivate<span class="operator">::</span>setSlide(<span class="type">int</span> index<span class="operator">,</span> <span class="keyword">const</span> <span class="type"><a href="qimage.html">QImage</a></span><span class="operator">&amp;</span> image)
 {
   <span class="keyword">if</span>((index <span class="operator">&gt;</span><span class="operator">=</span> <span class="number">0</span>) <span class="operator">&amp;</span><span class="operator">&amp;</span> (index <span class="operator">&lt;</span> slideImages<span class="operator">.</span>count()))
   {
     slideImages<span class="operator">[</span>index<span class="operator">]</span> <span class="operator">=</span> image;
     surfaceCache<span class="operator">.</span>remove(index);
     triggerRender();
   }
 }

 <span class="type">int</span> PictureFlowPrivate<span class="operator">::</span>getTarget() <span class="keyword">const</span>
 {
   <span class="keyword">return</span> target;
 }

 <span class="type">int</span> PictureFlowPrivate<span class="operator">::</span>currentSlide() <span class="keyword">const</span>
 {
   <span class="keyword">return</span> centerIndex;
 }

 <span class="type">void</span> PictureFlowPrivate<span class="operator">::</span>setCurrentSlide(<span class="type">int</span> index)
 {
   step <span class="operator">=</span> <span class="number">0</span>;
   centerIndex <span class="operator">=</span> <a href="qtglobal.html#qBound">qBound</a>(index<span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> slideImages<span class="operator">.</span>count()<span class="operator">-</span><span class="number">1</span>);
   target <span class="operator">=</span> centerIndex;
   slideFrame <span class="operator">=</span> index <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">16</span>;
   resetSlides();
   triggerRender();
 }

 <span class="type">void</span> PictureFlowPrivate<span class="operator">::</span>showPrevious()
 {
   <span class="keyword">if</span>(step <span class="operator">&gt;</span><span class="operator">=</span> <span class="number">0</span>)
   {
     <span class="keyword">if</span>(centerIndex <span class="operator">&gt;</span> <span class="number">0</span>)
     {
       target<span class="operator">-</span><span class="operator">-</span>;
       startAnimation();
     }
   }
   <span class="keyword">else</span>
   {
     target <span class="operator">=</span> <a href="qtglobal.html#qMax">qMax</a>(<span class="number">0</span><span class="operator">,</span> centerIndex <span class="operator">-</span> <span class="number">2</span>);
   }
 }

 <span class="type">void</span> PictureFlowPrivate<span class="operator">::</span>showNext()
 {
   <span class="keyword">if</span>(step <span class="operator">&lt;</span><span class="operator">=</span> <span class="number">0</span>)
   {
     <span class="keyword">if</span>(centerIndex <span class="operator">&lt;</span> slideImages<span class="operator">.</span>count()<span class="operator">-</span><span class="number">1</span>)
     {
       target<span class="operator">+</span><span class="operator">+</span>;
       startAnimation();
     }
   }
   <span class="keyword">else</span>
   {
     target <span class="operator">=</span> <a href="qtglobal.html#qMin">qMin</a>(centerIndex <span class="operator">+</span> <span class="number">2</span><span class="operator">,</span> slideImages<span class="operator">.</span>count()<span class="operator">-</span><span class="number">1</span>);
   }
 }

 <span class="type">void</span> PictureFlowPrivate<span class="operator">::</span>showSlide(<span class="type">int</span> index)
 {
   index <span class="operator">=</span> <a href="qtglobal.html#qMax">qMax</a>(index<span class="operator">,</span> <span class="number">0</span>);
   index <span class="operator">=</span> <a href="qtglobal.html#qMin">qMin</a>(slideImages<span class="operator">.</span>count()<span class="operator">-</span><span class="number">1</span><span class="operator">,</span> index);
   <span class="keyword">if</span>(index <span class="operator">=</span><span class="operator">=</span> centerSlide<span class="operator">.</span>slideIndex)
     <span class="keyword">return</span>;

   target <span class="operator">=</span> index;
   startAnimation();
 }

 <span class="type">void</span> PictureFlowPrivate<span class="operator">::</span>resize(<span class="type">int</span> w<span class="operator">,</span> <span class="type">int</span> h)
 {
   recalc(w<span class="operator">,</span> h);
   resetSlides();
   triggerRender();
 }

 <span class="comment">// adjust slides so that they are in &quot;steady state&quot; position</span>
 <span class="type">void</span> PictureFlowPrivate<span class="operator">::</span>resetSlides()
 {
   centerSlide<span class="operator">.</span>angle <span class="operator">=</span> <span class="number">0</span>;
   centerSlide<span class="operator">.</span>cx <span class="operator">=</span> <span class="number">0</span>;
   centerSlide<span class="operator">.</span>cy <span class="operator">=</span> <span class="number">0</span>;
   centerSlide<span class="operator">.</span>slideIndex <span class="operator">=</span> centerIndex;

   leftSlides<span class="operator">.</span>clear();
   leftSlides<span class="operator">.</span>resize(<span class="number">3</span>);
   <span class="keyword">for</span>(<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> leftSlides<span class="operator">.</span>count(); i<span class="operator">+</span><span class="operator">+</span>)
   {
     SlideInfo<span class="operator">&amp;</span> si <span class="operator">=</span> leftSlides<span class="operator">[</span>i<span class="operator">]</span>;
     si<span class="operator">.</span>angle <span class="operator">=</span> itilt;
     si<span class="operator">.</span>cx <span class="operator">=</span> <span class="operator">-</span>(offsetX <span class="operator">+</span> spacing<span class="operator">*</span>i<span class="operator">*</span>PFREAL_ONE);
     si<span class="operator">.</span>cy <span class="operator">=</span> offsetY;
     si<span class="operator">.</span>slideIndex <span class="operator">=</span> centerIndex<span class="operator">-</span><span class="number">1</span><span class="operator">-</span>i;
     <span class="comment">//qDebug() &lt;&lt; &quot;Left[&quot; &lt;&lt; i &lt;&lt; &quot;] x=&quot; &lt;&lt; fixedToFloat(si.cx) &lt;&lt; &quot;, y=&quot; &lt;&lt; fixedToFloat(si.cy) ;</span>
   }

   rightSlides<span class="operator">.</span>clear();
   rightSlides<span class="operator">.</span>resize(<span class="number">3</span>);
   <span class="keyword">for</span>(<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> rightSlides<span class="operator">.</span>count(); i<span class="operator">+</span><span class="operator">+</span>)
   {
     SlideInfo<span class="operator">&amp;</span> si <span class="operator">=</span> rightSlides<span class="operator">[</span>i<span class="operator">]</span>;
     si<span class="operator">.</span>angle <span class="operator">=</span> <span class="operator">-</span>itilt;
     si<span class="operator">.</span>cx <span class="operator">=</span> offsetX <span class="operator">+</span> spacing<span class="operator">*</span>i<span class="operator">*</span>PFREAL_ONE;
     si<span class="operator">.</span>cy <span class="operator">=</span> offsetY;
     si<span class="operator">.</span>slideIndex <span class="operator">=</span> centerIndex<span class="operator">+</span><span class="number">1</span><span class="operator">+</span>i;
     <span class="comment">//qDebug() &lt;&lt; &quot;Right[&quot; &lt;&lt; i &lt;&lt; &quot;] x=&quot; &lt;&lt; fixedToFloat(si.cx) &lt;&lt; &quot;, y=&quot; &lt;&lt; fixedToFloat(si.cy) ;</span>
   }
 }

 <span class="preprocessor">#define BILINEAR_STRETCH_HOR 4</span>
 <span class="preprocessor">#define BILINEAR_STRETCH_VER 4</span>

 <span class="keyword">static</span> <span class="type"><a href="qimage.html">QImage</a></span> prepareSurface(<span class="type"><a href="qimage.html">QImage</a></span> img<span class="operator">,</span> <span class="type">int</span> w<span class="operator">,</span> <span class="type">int</span> h)
 {
   <span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>TransformationMode mode <span class="operator">=</span> <span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>SmoothTransformation;
   img <span class="operator">=</span> img<span class="operator">.</span>scaled(w<span class="operator">,</span> h<span class="operator">,</span> <span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>IgnoreAspectRatio<span class="operator">,</span> mode);

   <span class="comment">// slightly larger, to accommodate for the reflection</span>
   <span class="type">int</span> hs <span class="operator">=</span> h <span class="operator">*</span> <span class="number">2</span>;
   <span class="type">int</span> hofs <span class="operator">=</span> h <span class="operator">/</span> <span class="number">3</span>;

   <span class="comment">// offscreen buffer: black is sweet</span>
   <span class="type"><a href="qimage.html">QImage</a></span> result(hs<span class="operator">,</span> w<span class="operator">,</span> <span class="type"><a href="qimage.html">QImage</a></span><span class="operator">::</span>Format_RGB16);
   result<span class="operator">.</span>fill(<span class="number">0</span>);

   <span class="comment">// transpose the image, this is to speed-up the rendering</span>
   <span class="comment">// because we process one column at a time</span>
   <span class="comment">// (and much better and faster to work row-wise, i.e in one scanline)</span>
   <span class="keyword">for</span>(<span class="type">int</span> x <span class="operator">=</span> <span class="number">0</span>; x <span class="operator">&lt;</span> w; x<span class="operator">+</span><span class="operator">+</span>)
     <span class="keyword">for</span>(<span class="type">int</span> y <span class="operator">=</span> <span class="number">0</span>; y <span class="operator">&lt;</span> h; y<span class="operator">+</span><span class="operator">+</span>)
       result<span class="operator">.</span>setPixel(hofs <span class="operator">+</span> y<span class="operator">,</span> x<span class="operator">,</span> img<span class="operator">.</span>pixel(x<span class="operator">,</span> y));

   <span class="comment">// create the reflection</span>
   <span class="type">int</span> ht <span class="operator">=</span> hs <span class="operator">-</span> h <span class="operator">-</span> hofs;
   <span class="type">int</span> hte <span class="operator">=</span> ht;
   <span class="keyword">for</span>(<span class="type">int</span> x <span class="operator">=</span> <span class="number">0</span>; x <span class="operator">&lt;</span> w; x<span class="operator">+</span><span class="operator">+</span>)
     <span class="keyword">for</span>(<span class="type">int</span> y <span class="operator">=</span> <span class="number">0</span>; y <span class="operator">&lt;</span> ht; y<span class="operator">+</span><span class="operator">+</span>)
     {
       <span class="type"><a href="qcolor.html#QRgb-typedef">QRgb</a></span> color <span class="operator">=</span> img<span class="operator">.</span>pixel(x<span class="operator">,</span> img<span class="operator">.</span>height()<span class="operator">-</span>y<span class="operator">-</span><span class="number">1</span>);
       <span class="comment">//QRgb565 color = img.scanLine(img.height()-y-1) + x*sizeof(QRgb565); //img.pixel(x, img.height()-y-1);</span>
       <span class="type">int</span> a <span class="operator">=</span> <a href="qcolor.html#qAlpha">qAlpha</a>(color);
       <span class="type">int</span> r <span class="operator">=</span> <a href="qcolor.html#qRed">qRed</a>(color)   <span class="operator">*</span> a <span class="operator">/</span> <span class="number">256</span> <span class="operator">*</span> (hte <span class="operator">-</span> y) <span class="operator">/</span> hte <span class="operator">*</span> <span class="number">3</span><span class="operator">/</span><span class="number">5</span>;
       <span class="type">int</span> g <span class="operator">=</span> <a href="qcolor.html#qGreen">qGreen</a>(color) <span class="operator">*</span> a <span class="operator">/</span> <span class="number">256</span> <span class="operator">*</span> (hte <span class="operator">-</span> y) <span class="operator">/</span> hte <span class="operator">*</span> <span class="number">3</span><span class="operator">/</span><span class="number">5</span>;
       <span class="type">int</span> b <span class="operator">=</span> <a href="qcolor.html#qBlue">qBlue</a>(color)  <span class="operator">*</span> a <span class="operator">/</span> <span class="number">256</span> <span class="operator">*</span> (hte <span class="operator">-</span> y) <span class="operator">/</span> hte <span class="operator">*</span> <span class="number">3</span><span class="operator">/</span><span class="number">5</span>;
       result<span class="operator">.</span>setPixel(h<span class="operator">+</span>hofs<span class="operator">+</span>y<span class="operator">,</span> x<span class="operator">,</span> <a href="qcolor.html#qRgb">qRgb</a>(r<span class="operator">,</span> g<span class="operator">,</span> b));
     }

 <span class="preprocessor">#ifdef PICTUREFLOW_BILINEAR_FILTER</span>
   <span class="type">int</span> hh <span class="operator">=</span> BILINEAR_STRETCH_VER<span class="operator">*</span>hs;
   <span class="type">int</span> ww <span class="operator">=</span> BILINEAR_STRETCH_HOR<span class="operator">*</span>w;
   result <span class="operator">=</span> result<span class="operator">.</span>scaled(hh<span class="operator">,</span> ww<span class="operator">,</span> <span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>IgnoreAspectRatio<span class="operator">,</span> <span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>SmoothTransformation);
 <span class="preprocessor">#endif</span>

   <span class="keyword">return</span> result;
 }

 <span class="comment">// get transformed image for specified slide</span>
 <span class="comment">// if it does not exist, create it and place it in the cache</span>
 <span class="type"><a href="qimage.html">QImage</a></span><span class="operator">*</span> PictureFlowPrivate<span class="operator">::</span>surface(<span class="type">int</span> slideIndex)
 {
   <span class="keyword">if</span>(slideIndex <span class="operator">&lt;</span> <span class="number">0</span>)
     <span class="keyword">return</span> <span class="number">0</span>;
   <span class="keyword">if</span>(slideIndex <span class="operator">&gt;</span><span class="operator">=</span> slideImages<span class="operator">.</span>count())
     <span class="keyword">return</span> <span class="number">0</span>;

   <span class="keyword">if</span>(surfaceCache<span class="operator">.</span>contains(slideIndex))
     <span class="keyword">return</span> surfaceCache<span class="operator">[</span>slideIndex<span class="operator">]</span>;

   <span class="type"><a href="qimage.html">QImage</a></span> img <span class="operator">=</span> widget<span class="operator">-</span><span class="operator">&gt;</span>slide(slideIndex);
   <span class="keyword">if</span>(img<span class="operator">.</span>isNull())
   {
     <span class="keyword">if</span>(blankSurface<span class="operator">.</span>isNull())
     {
       blankSurface <span class="operator">=</span> <span class="type"><a href="qimage.html">QImage</a></span>(slideWidth<span class="operator">,</span> slideHeight<span class="operator">,</span> <span class="type"><a href="qimage.html">QImage</a></span><span class="operator">::</span>Format_RGB16);

       <span class="type"><a href="qpainter.html">QPainter</a></span> painter(<span class="operator">&amp;</span>blankSurface);
       <span class="type"><a href="qpoint.html">QPoint</a></span> p1(slideWidth<span class="operator">*</span><span class="number">4</span><span class="operator">/</span><span class="number">10</span><span class="operator">,</span> <span class="number">0</span>);
       <span class="type"><a href="qpoint.html">QPoint</a></span> p2(slideWidth<span class="operator">*</span><span class="number">6</span><span class="operator">/</span><span class="number">10</span><span class="operator">,</span> slideHeight);
       <span class="type"><a href="qlineargradient.html">QLinearGradient</a></span> linearGrad(p1<span class="operator">,</span> p2);
       linearGrad<span class="operator">.</span>setColorAt(<span class="number">0</span><span class="operator">,</span> <span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>black);
       linearGrad<span class="operator">.</span>setColorAt(<span class="number">1</span><span class="operator">,</span> <span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>white);
       painter<span class="operator">.</span>setBrush(linearGrad);
       painter<span class="operator">.</span>fillRect(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> slideWidth<span class="operator">,</span> slideHeight<span class="operator">,</span> <span class="type"><a href="qbrush.html">QBrush</a></span>(linearGrad));

       painter<span class="operator">.</span>setPen(<span class="type"><a href="qpen.html">QPen</a></span>(<span class="type"><a href="qcolor.html">QColor</a></span>(<span class="number">64</span><span class="operator">,</span><span class="number">64</span><span class="operator">,</span><span class="number">64</span>)<span class="operator">,</span> <span class="number">4</span>));
       painter<span class="operator">.</span>setBrush(<span class="type"><a href="qbrush.html">QBrush</a></span>());
       painter<span class="operator">.</span>drawRect(<span class="number">2</span><span class="operator">,</span> <span class="number">2</span><span class="operator">,</span> slideWidth<span class="operator">-</span><span class="number">3</span><span class="operator">,</span> slideHeight<span class="operator">-</span><span class="number">3</span>);
       painter<span class="operator">.</span>end();
       blankSurface <span class="operator">=</span> prepareSurface(blankSurface<span class="operator">,</span> slideWidth<span class="operator">,</span> slideHeight);
     }
     <span class="keyword">return</span> <span class="operator">&amp;</span>blankSurface;
   }

   surfaceCache<span class="operator">.</span>insert(slideIndex<span class="operator">,</span> <span class="keyword">new</span> <span class="type"><a href="qimage.html">QImage</a></span>(prepareSurface(img<span class="operator">,</span> slideWidth<span class="operator">,</span> slideHeight)));
   <span class="keyword">return</span> surfaceCache<span class="operator">[</span>slideIndex<span class="operator">]</span>;
 }

 <span class="comment">// Schedules rendering the slides. Call this function to avoid immediate</span>
 <span class="comment">// render and thus cause less flicker.</span>
 <span class="type">void</span> PictureFlowPrivate<span class="operator">::</span>triggerRender()
 {
   triggerTimer<span class="operator">.</span>start();
 }

 <span class="comment">// Render the slides. Updates only the offscreen buffer.</span>
 <span class="type">void</span> PictureFlowPrivate<span class="operator">::</span>render()
 {
   buffer<span class="operator">.</span>fill(<span class="number">0</span>);

   <span class="type">int</span> nleft <span class="operator">=</span> leftSlides<span class="operator">.</span>count();
   <span class="type">int</span> nright <span class="operator">=</span> rightSlides<span class="operator">.</span>count();

   <span class="type"><a href="qrect.html">QRect</a></span> r <span class="operator">=</span> renderSlide(centerSlide);
   <span class="type">int</span> c1 <span class="operator">=</span> r<span class="operator">.</span>left();
   <span class="type">int</span> c2 <span class="operator">=</span> r<span class="operator">.</span>right();

   <span class="keyword">if</span>(step <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>)
   {
     <span class="comment">// no animation, boring plain rendering</span>
     <span class="keyword">for</span>(<span class="type">int</span> index <span class="operator">=</span> <span class="number">0</span>; index <span class="operator">&lt;</span> nleft<span class="operator">-</span><span class="number">1</span>; index<span class="operator">+</span><span class="operator">+</span>)
     {
       <span class="type">int</span> alpha <span class="operator">=</span> (index <span class="operator">&lt;</span> nleft<span class="operator">-</span><span class="number">2</span>) <span class="operator">?</span> <span class="number">256</span> : <span class="number">128</span>;
       <span class="type"><a href="qrect.html">QRect</a></span> rs <span class="operator">=</span> renderSlide(leftSlides<span class="operator">[</span>index<span class="operator">]</span><span class="operator">,</span> alpha<span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> c1<span class="operator">-</span><span class="number">1</span>);
       <span class="keyword">if</span>(<span class="operator">!</span>rs<span class="operator">.</span>isEmpty())
         c1 <span class="operator">=</span> rs<span class="operator">.</span>left();
     }
     <span class="keyword">for</span>(<span class="type">int</span> index <span class="operator">=</span> <span class="number">0</span>; index <span class="operator">&lt;</span> nright<span class="operator">-</span><span class="number">1</span>; index<span class="operator">+</span><span class="operator">+</span>)
     {
       <span class="type">int</span> alpha <span class="operator">=</span> (index <span class="operator">&lt;</span> nright<span class="operator">-</span><span class="number">2</span>) <span class="operator">?</span> <span class="number">256</span> : <span class="number">128</span>;
       <span class="type"><a href="qrect.html">QRect</a></span> rs <span class="operator">=</span> renderSlide(rightSlides<span class="operator">[</span>index<span class="operator">]</span><span class="operator">,</span> alpha<span class="operator">,</span> c2<span class="operator">+</span><span class="number">1</span><span class="operator">,</span> buffer<span class="operator">.</span>width());
       <span class="keyword">if</span>(<span class="operator">!</span>rs<span class="operator">.</span>isEmpty())
         c2 <span class="operator">=</span> rs<span class="operator">.</span>right();
     }

     <span class="type"><a href="qpainter.html">QPainter</a></span> painter;
     painter<span class="operator">.</span>begin(<span class="operator">&amp;</span>buffer);

     <span class="type"><a href="qfont.html">QFont</a></span> font(<span class="string">&quot;Arial&quot;</span><span class="operator">,</span> captionFontSize);
     font<span class="operator">.</span>setBold(<span class="keyword">true</span>);
     painter<span class="operator">.</span>setFont(font);
     painter<span class="operator">.</span>setPen(<span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>white);
     <span class="comment">//painter.setPen(QColor(255,255,255,127));</span>

     <span class="keyword">if</span> (<span class="operator">!</span>captions<span class="operator">.</span>isEmpty())
         painter<span class="operator">.</span>drawText( <span class="type"><a href="qrect.html">QRect</a></span>(<span class="number">0</span><span class="operator">,</span><span class="number">0</span><span class="operator">,</span> buffer<span class="operator">.</span>width()<span class="operator">,</span> (buffer<span class="operator">.</span>height() <span class="operator">-</span> slideSize()<span class="operator">.</span>height())<span class="operator">/</span><span class="number">4</span>)<span class="operator">,</span>
         <span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>AlignCenter<span class="operator">,</span> captions<span class="operator">[</span>centerIndex<span class="operator">]</span>);

     painter<span class="operator">.</span>end();

   }
   <span class="keyword">else</span>
   {
     <span class="comment">// the first and last slide must fade in/fade out</span>
     <span class="keyword">for</span>(<span class="type">int</span> index <span class="operator">=</span> <span class="number">0</span>; index <span class="operator">&lt;</span> nleft; index<span class="operator">+</span><span class="operator">+</span>)
     {
       <span class="type">int</span> alpha <span class="operator">=</span> <span class="number">256</span>;
       <span class="keyword">if</span>(index <span class="operator">=</span><span class="operator">=</span> nleft<span class="operator">-</span><span class="number">1</span>)
         alpha <span class="operator">=</span> (step <span class="operator">&gt;</span> <span class="number">0</span>) <span class="operator">?</span> <span class="number">0</span> : <span class="number">128</span><span class="operator">-</span>fade<span class="operator">/</span><span class="number">2</span>;
       <span class="keyword">if</span>(index <span class="operator">=</span><span class="operator">=</span> nleft<span class="operator">-</span><span class="number">2</span>)
         alpha <span class="operator">=</span> (step <span class="operator">&gt;</span> <span class="number">0</span>) <span class="operator">?</span> <span class="number">128</span><span class="operator">-</span>fade<span class="operator">/</span><span class="number">2</span> : <span class="number">256</span><span class="operator">-</span>fade<span class="operator">/</span><span class="number">2</span>;
       <span class="keyword">if</span>(index <span class="operator">=</span><span class="operator">=</span> nleft<span class="operator">-</span><span class="number">3</span>)
         alpha <span class="operator">=</span> (step <span class="operator">&gt;</span> <span class="number">0</span>) <span class="operator">?</span> <span class="number">256</span><span class="operator">-</span>fade<span class="operator">/</span><span class="number">2</span> : <span class="number">256</span>;
       <span class="type"><a href="qrect.html">QRect</a></span> rs <span class="operator">=</span> renderSlide(leftSlides<span class="operator">[</span>index<span class="operator">]</span><span class="operator">,</span> alpha<span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> c1<span class="operator">-</span><span class="number">1</span>);
       <span class="keyword">if</span>(<span class="operator">!</span>rs<span class="operator">.</span>isEmpty())
         c1 <span class="operator">=</span> rs<span class="operator">.</span>left();

       alpha <span class="operator">=</span> (step <span class="operator">&gt;</span> <span class="number">0</span>) <span class="operator">?</span> <span class="number">256</span><span class="operator">-</span>fade<span class="operator">/</span><span class="number">2</span> : <span class="number">256</span>;
     }
     <span class="keyword">for</span>(<span class="type">int</span> index <span class="operator">=</span> <span class="number">0</span>; index <span class="operator">&lt;</span> nright; index<span class="operator">+</span><span class="operator">+</span>)
     {
       <span class="type">int</span> alpha <span class="operator">=</span> (index <span class="operator">&lt;</span> nright<span class="operator">-</span><span class="number">2</span>) <span class="operator">?</span> <span class="number">256</span> : <span class="number">128</span>;
       <span class="keyword">if</span>(index <span class="operator">=</span><span class="operator">=</span> nright<span class="operator">-</span><span class="number">1</span>)
         alpha <span class="operator">=</span> (step <span class="operator">&gt;</span> <span class="number">0</span>) <span class="operator">?</span> fade<span class="operator">/</span><span class="number">2</span> : <span class="number">0</span>;
       <span class="keyword">if</span>(index <span class="operator">=</span><span class="operator">=</span> nright<span class="operator">-</span><span class="number">2</span>)
         alpha <span class="operator">=</span> (step <span class="operator">&gt;</span> <span class="number">0</span>) <span class="operator">?</span> <span class="number">128</span><span class="operator">+</span>fade<span class="operator">/</span><span class="number">2</span> : fade<span class="operator">/</span><span class="number">2</span>;
       <span class="keyword">if</span>(index <span class="operator">=</span><span class="operator">=</span> nright<span class="operator">-</span><span class="number">3</span>)
         alpha <span class="operator">=</span> (step <span class="operator">&gt;</span> <span class="number">0</span>) <span class="operator">?</span> <span class="number">256</span> : <span class="number">128</span><span class="operator">+</span>fade<span class="operator">/</span><span class="number">2</span>;
       <span class="type"><a href="qrect.html">QRect</a></span> rs <span class="operator">=</span> renderSlide(rightSlides<span class="operator">[</span>index<span class="operator">]</span><span class="operator">,</span> alpha<span class="operator">,</span> c2<span class="operator">+</span><span class="number">1</span><span class="operator">,</span> buffer<span class="operator">.</span>width());
       <span class="keyword">if</span>(<span class="operator">!</span>rs<span class="operator">.</span>isEmpty())
         c2 <span class="operator">=</span> rs<span class="operator">.</span>right();
     }

     <span class="type"><a href="qpainter.html">QPainter</a></span> painter;
     painter<span class="operator">.</span>begin(<span class="operator">&amp;</span>buffer);

     <span class="type"><a href="qfont.html">QFont</a></span> font(<span class="string">&quot;Arial&quot;</span><span class="operator">,</span> captionFontSize);
     font<span class="operator">.</span>setBold(<span class="keyword">true</span>);
     painter<span class="operator">.</span>setFont(font);

     <span class="type">int</span> leftTextIndex <span class="operator">=</span> (step<span class="operator">&gt;</span><span class="number">0</span>) <span class="operator">?</span> centerIndex : centerIndex<span class="operator">-</span><span class="number">1</span>;

     painter<span class="operator">.</span>setPen(<span class="type"><a href="qcolor.html">QColor</a></span>(<span class="number">255</span><span class="operator">,</span><span class="number">255</span><span class="operator">,</span><span class="number">255</span><span class="operator">,</span> (<span class="number">255</span><span class="operator">-</span>fade) ));
     painter<span class="operator">.</span>drawText( <span class="type"><a href="qrect.html">QRect</a></span>(<span class="number">0</span><span class="operator">,</span><span class="number">0</span><span class="operator">,</span> buffer<span class="operator">.</span>width()<span class="operator">,</span> (buffer<span class="operator">.</span>height() <span class="operator">-</span> slideSize()<span class="operator">.</span>height())<span class="operator">/</span><span class="number">4</span>)<span class="operator">,</span>
                       <span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>AlignCenter<span class="operator">,</span> captions<span class="operator">[</span>leftTextIndex<span class="operator">]</span>);

     painter<span class="operator">.</span>setPen(<span class="type"><a href="qcolor.html">QColor</a></span>(<span class="number">255</span><span class="operator">,</span><span class="number">255</span><span class="operator">,</span><span class="number">255</span><span class="operator">,</span> fade));
     painter<span class="operator">.</span>drawText( <span class="type"><a href="qrect.html">QRect</a></span>(<span class="number">0</span><span class="operator">,</span><span class="number">0</span><span class="operator">,</span> buffer<span class="operator">.</span>width()<span class="operator">,</span> (buffer<span class="operator">.</span>height() <span class="operator">-</span> slideSize()<span class="operator">.</span>height())<span class="operator">/</span><span class="number">4</span>)<span class="operator">,</span>
                       <span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>AlignCenter<span class="operator">,</span> captions<span class="operator">[</span>leftTextIndex<span class="operator">+</span><span class="number">1</span><span class="operator">]</span>);

     painter<span class="operator">.</span>end();
   }
 }

 <span class="keyword">static</span> <span class="keyword">inline</span> <span class="type"><a href="qtglobal.html#uint-typedef">uint</a></span> BYTE_MUL_RGB16(<span class="type"><a href="qtglobal.html#uint-typedef">uint</a></span> x<span class="operator">,</span> <span class="type"><a href="qtglobal.html#uint-typedef">uint</a></span> a) {
     a <span class="operator">+</span><span class="operator">=</span> <span class="number">1</span>;
     <span class="type"><a href="qtglobal.html#uint-typedef">uint</a></span> t <span class="operator">=</span> (((x <span class="operator">&amp;</span> <span class="number">0x07e0</span>)<span class="operator">*</span>a) <span class="operator">&gt;</span><span class="operator">&gt;</span> <span class="number">8</span>) <span class="operator">&amp;</span> <span class="number">0x07e0</span>;
     t <span class="operator">|</span><span class="operator">=</span> (((x <span class="operator">&amp;</span> <span class="number">0xf81f</span>)<span class="operator">*</span>(a<span class="operator">&gt;</span><span class="operator">&gt;</span><span class="number">2</span>)) <span class="operator">&gt;</span><span class="operator">&gt;</span> <span class="number">6</span>) <span class="operator">&amp;</span> <span class="number">0xf81f</span>;
     <span class="keyword">return</span> t;
 }

 <span class="keyword">static</span> <span class="keyword">inline</span> <span class="type"><a href="qtglobal.html#uint-typedef">uint</a></span> BYTE_MUL_RGB16_32(<span class="type"><a href="qtglobal.html#uint-typedef">uint</a></span> x<span class="operator">,</span> <span class="type"><a href="qtglobal.html#uint-typedef">uint</a></span> a) {
     <span class="type"><a href="qtglobal.html#uint-typedef">uint</a></span> t <span class="operator">=</span> (((x <span class="operator">&amp;</span> <span class="number">0xf81f07e0</span>) <span class="operator">&gt;</span><span class="operator">&gt;</span> <span class="number">5</span>)<span class="operator">*</span>a) <span class="operator">&amp;</span> <span class="number">0xf81f07e0</span>;
     t <span class="operator">|</span><span class="operator">=</span> (((x <span class="operator">&amp;</span> <span class="number">0x07e0f81f</span>)<span class="operator">*</span>a) <span class="operator">&gt;</span><span class="operator">&gt;</span> <span class="number">5</span>) <span class="operator">&amp;</span> <span class="number">0x07e0f81f</span>;
     <span class="keyword">return</span> t;
 }

 <span class="comment">// Renders a slide to offscreen buffer. Returns a rect of the rendered area.</span>
 <span class="comment">// alpha=256 means normal, alpha=0 is fully black, alpha=128 half transparent</span>
 <span class="comment">// col1 and col2 limit the column for rendering.</span>
 <span class="type"><a href="qrect.html">QRect</a></span> PictureFlowPrivate<span class="operator">::</span>renderSlide(<span class="keyword">const</span> SlideInfo <span class="operator">&amp;</span>slide<span class="operator">,</span> <span class="type">int</span> alpha<span class="operator">,</span>
 <span class="type">int</span> col1<span class="operator">,</span> <span class="type">int</span> col2)
 {
   <span class="type"><a href="qimage.html">QImage</a></span><span class="operator">*</span> src <span class="operator">=</span> surface(slide<span class="operator">.</span>slideIndex);
   <span class="keyword">if</span>(<span class="operator">!</span>src)
     <span class="keyword">return</span> <span class="type"><a href="qrect.html">QRect</a></span>();

   <span class="type"><a href="qrect.html">QRect</a></span> rect(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">0</span>);

 <span class="preprocessor">#ifdef PICTUREFLOW_BILINEAR_FILTER</span>
   <span class="type">int</span> sw <span class="operator">=</span> src<span class="operator">-</span><span class="operator">&gt;</span>height() <span class="operator">/</span> BILINEAR_STRETCH_HOR;
   <span class="type">int</span> sh <span class="operator">=</span> src<span class="operator">-</span><span class="operator">&gt;</span>width() <span class="operator">/</span> BILINEAR_STRETCH_VER;
 <span class="preprocessor">#else</span>
   <span class="type">int</span> sw <span class="operator">=</span> src<span class="operator">-</span><span class="operator">&gt;</span>height();
   <span class="type">int</span> sh <span class="operator">=</span> src<span class="operator">-</span><span class="operator">&gt;</span>width();
 <span class="preprocessor">#endif</span>
   <span class="type">int</span> h <span class="operator">=</span> buffer<span class="operator">.</span>height();
   <span class="type">int</span> w <span class="operator">=</span> buffer<span class="operator">.</span>width();

   <span class="keyword">if</span>(col1 <span class="operator">&gt;</span> col2)
   {
     <span class="type">int</span> c <span class="operator">=</span> col2;
     col2 <span class="operator">=</span> col1;
     col1 <span class="operator">=</span> c;
   }

   col1 <span class="operator">=</span> (col1 <span class="operator">&gt;</span><span class="operator">=</span> <span class="number">0</span>) <span class="operator">?</span> col1 : <span class="number">0</span>;
   col2 <span class="operator">=</span> (col2 <span class="operator">&gt;</span><span class="operator">=</span> <span class="number">0</span>) <span class="operator">?</span> col2 : w<span class="operator">-</span><span class="number">1</span>;
   col1 <span class="operator">=</span> <a href="qtglobal.html#qMin">qMin</a>(col1<span class="operator">,</span> w<span class="operator">-</span><span class="number">1</span>);
   col2 <span class="operator">=</span> <a href="qtglobal.html#qMin">qMin</a>(col2<span class="operator">,</span> w<span class="operator">-</span><span class="number">1</span>);

   <span class="type">int</span> distance <span class="operator">=</span> h <span class="operator">*</span> <span class="number">100</span> <span class="operator">/</span> zoom;
   PFreal sdx <span class="operator">=</span> fcos(slide<span class="operator">.</span>angle);
   PFreal sdy <span class="operator">=</span> fsin(slide<span class="operator">.</span>angle);
   PFreal xs <span class="operator">=</span> slide<span class="operator">.</span>cx <span class="operator">-</span> slideWidth <span class="operator">*</span> sdx<span class="operator">/</span><span class="number">2</span>;
   PFreal ys <span class="operator">=</span> slide<span class="operator">.</span>cy <span class="operator">-</span> slideWidth <span class="operator">*</span> sdy<span class="operator">/</span><span class="number">2</span>;
   PFreal dist <span class="operator">=</span> distance <span class="operator">*</span> PFREAL_ONE;

   <span class="type">int</span> xi <span class="operator">=</span> <a href="qtglobal.html#qMax">qMax</a>((PFreal)<span class="number">0</span><span class="operator">,</span> ((w<span class="operator">*</span>PFREAL_ONE<span class="operator">/</span><span class="number">2</span>) <span class="operator">+</span> fdiv(xs<span class="operator">*</span>h<span class="operator">,</span> dist<span class="operator">+</span>ys)) <span class="operator">&gt;</span><span class="operator">&gt;</span> PFREAL_SHIFT);
   <span class="keyword">if</span>(xi <span class="operator">&gt;</span><span class="operator">=</span> w)
     <span class="keyword">return</span> rect;

   <span class="type">bool</span> flag <span class="operator">=</span> <span class="keyword">false</span>;
   rect<span class="operator">.</span>setLeft(xi);
   <span class="keyword">for</span>(<span class="type">int</span> x <span class="operator">=</span> <a href="qtglobal.html#qMax">qMax</a>(xi<span class="operator">,</span> col1); x <span class="operator">&lt;</span><span class="operator">=</span> col2; x<span class="operator">+</span><span class="operator">+</span>)
   {
     PFreal hity <span class="operator">=</span> <span class="number">0</span>;
     PFreal fk <span class="operator">=</span> rays<span class="operator">[</span>x<span class="operator">]</span>;
     <span class="keyword">if</span>(sdy)
     {
       fk <span class="operator">=</span> fk <span class="operator">-</span> fdiv(sdx<span class="operator">,</span>sdy);
       hity <span class="operator">=</span> <span class="operator">-</span>fdiv((rays<span class="operator">[</span>x<span class="operator">]</span><span class="operator">*</span>distance <span class="operator">-</span> slide<span class="operator">.</span>cx <span class="operator">+</span> slide<span class="operator">.</span>cy<span class="operator">*</span>sdx<span class="operator">/</span>sdy)<span class="operator">,</span> fk);
     }

     dist <span class="operator">=</span> distance<span class="operator">*</span>PFREAL_ONE <span class="operator">+</span> hity;
     <span class="keyword">if</span>(dist <span class="operator">&lt;</span> <span class="number">0</span>)
       <span class="keyword">continue</span>;

     PFreal hitx <span class="operator">=</span> fmul(dist<span class="operator">,</span> rays<span class="operator">[</span>x<span class="operator">]</span>);
     PFreal hitdist <span class="operator">=</span> fdiv(hitx <span class="operator">-</span> slide<span class="operator">.</span>cx<span class="operator">,</span> sdx);

 <span class="preprocessor">#ifdef PICTUREFLOW_BILINEAR_FILTER</span>
     <span class="type">int</span> column <span class="operator">=</span> sw<span class="operator">*</span>BILINEAR_STRETCH_HOR<span class="operator">/</span><span class="number">2</span> <span class="operator">+</span> (hitdist<span class="operator">*</span>BILINEAR_STRETCH_HOR <span class="operator">&gt;</span><span class="operator">&gt;</span> PFREAL_SHIFT);
     <span class="keyword">if</span>(column <span class="operator">&gt;</span><span class="operator">=</span> sw<span class="operator">*</span>BILINEAR_STRETCH_HOR)
       <span class="keyword">break</span>;
 <span class="preprocessor">#else</span>
     <span class="type">int</span> column <span class="operator">=</span> sw<span class="operator">/</span><span class="number">2</span> <span class="operator">+</span> (hitdist <span class="operator">&gt;</span><span class="operator">&gt;</span> PFREAL_SHIFT);
     <span class="keyword">if</span>(column <span class="operator">&gt;</span><span class="operator">=</span> sw)
       <span class="keyword">break</span>;
 <span class="preprocessor">#endif</span>
     <span class="keyword">if</span>(column <span class="operator">&lt;</span> <span class="number">0</span>)
       <span class="keyword">continue</span>;

     rect<span class="operator">.</span>setRight(x);
     <span class="keyword">if</span>(<span class="operator">!</span>flag)
       rect<span class="operator">.</span>setLeft(x);
     flag <span class="operator">=</span> <span class="keyword">true</span>;

     <span class="type">int</span> y1 <span class="operator">=</span> h<span class="operator">/</span><span class="number">2</span>;
     <span class="type">int</span> y2 <span class="operator">=</span> y1<span class="operator">+</span> <span class="number">1</span>;
     QRgb565<span class="operator">*</span> pixel1 <span class="operator">=</span> (QRgb565<span class="operator">*</span>)(buffer<span class="operator">.</span>scanLine(y1)) <span class="operator">+</span> x;
     QRgb565<span class="operator">*</span> pixel2 <span class="operator">=</span> (QRgb565<span class="operator">*</span>)(buffer<span class="operator">.</span>scanLine(y2)) <span class="operator">+</span> x;
     <span class="type">int</span> pixelstep <span class="operator">=</span> pixel2 <span class="operator">-</span> pixel1;

 <span class="preprocessor">#ifdef PICTUREFLOW_BILINEAR_FILTER</span>
     <span class="type">int</span> center <span class="operator">=</span> (sh<span class="operator">*</span>BILINEAR_STRETCH_VER<span class="operator">/</span><span class="number">2</span>);
     <span class="type">int</span> dy <span class="operator">=</span> dist<span class="operator">*</span>BILINEAR_STRETCH_VER <span class="operator">/</span> h;
 <span class="preprocessor">#else</span>
     <span class="type">int</span> center <span class="operator">=</span> (sh<span class="operator">/</span><span class="number">2</span>);
     <span class="type">int</span> dy <span class="operator">=</span> dist <span class="operator">/</span> h;
 <span class="preprocessor">#endif</span>
     <span class="type">int</span> p1 <span class="operator">=</span> center<span class="operator">*</span>PFREAL_ONE <span class="operator">-</span> dy<span class="operator">/</span><span class="number">2</span>;
     <span class="type">int</span> p2 <span class="operator">=</span> center<span class="operator">*</span>PFREAL_ONE <span class="operator">+</span> dy<span class="operator">/</span><span class="number">2</span>;

     <span class="keyword">const</span> QRgb565 <span class="operator">*</span>ptr <span class="operator">=</span> (<span class="keyword">const</span> QRgb565<span class="operator">*</span>)(src<span class="operator">-</span><span class="operator">&gt;</span>scanLine(column));
     <span class="keyword">if</span>(alpha <span class="operator">=</span><span class="operator">=</span> <span class="number">256</span>)
       <span class="keyword">while</span>((y1 <span class="operator">&gt;</span><span class="operator">=</span> <span class="number">0</span>) <span class="operator">&amp;</span><span class="operator">&amp;</span> (y2 <span class="operator">&lt;</span> h) <span class="operator">&amp;</span><span class="operator">&amp;</span> (p1 <span class="operator">&gt;</span><span class="operator">=</span> <span class="number">0</span>))
       {
         <span class="operator">*</span>pixel1 <span class="operator">=</span> ptr<span class="operator">[</span>p1 <span class="operator">&gt;</span><span class="operator">&gt;</span> PFREAL_SHIFT<span class="operator">]</span>;
         <span class="operator">*</span>pixel2 <span class="operator">=</span> ptr<span class="operator">[</span>p2 <span class="operator">&gt;</span><span class="operator">&gt;</span> PFREAL_SHIFT<span class="operator">]</span>;
         p1 <span class="operator">-</span><span class="operator">=</span> dy;
         p2 <span class="operator">+</span><span class="operator">=</span> dy;
         y1<span class="operator">-</span><span class="operator">-</span>;
         y2<span class="operator">+</span><span class="operator">+</span>;
         pixel1 <span class="operator">-</span><span class="operator">=</span> pixelstep;
         pixel2 <span class="operator">+</span><span class="operator">=</span> pixelstep;
       }
     <span class="keyword">else</span>
       <span class="keyword">while</span>((y1 <span class="operator">&gt;</span><span class="operator">=</span> <span class="number">0</span>) <span class="operator">&amp;</span><span class="operator">&amp;</span> (y2 <span class="operator">&lt;</span> h) <span class="operator">&amp;</span><span class="operator">&amp;</span> (p1 <span class="operator">&gt;</span><span class="operator">=</span> <span class="number">0</span>))
       {
         QRgb565 c1 <span class="operator">=</span> ptr<span class="operator">[</span>p1 <span class="operator">&gt;</span><span class="operator">&gt;</span> PFREAL_SHIFT<span class="operator">]</span>;
         QRgb565 c2 <span class="operator">=</span> ptr<span class="operator">[</span>p2 <span class="operator">&gt;</span><span class="operator">&gt;</span> PFREAL_SHIFT<span class="operator">]</span>;

         <span class="operator">*</span>pixel1 <span class="operator">=</span> BYTE_MUL_RGB16(c1<span class="operator">,</span> alpha);
         <span class="operator">*</span>pixel2 <span class="operator">=</span> BYTE_MUL_RGB16(c2<span class="operator">,</span> alpha);

 <span class="comment">/*
         int r1 = qRed(c1) * alpha/256;
         int g1 = qGreen(c1) * alpha/256;
         int b1 = qBlue(c1) * alpha/256;
         int r2 = qRed(c2) * alpha/256;
         int g2 = qGreen(c2) * alpha/256;
         int b2 = qBlue(c2) * alpha/256;
         *pixel1 = qRgb(r1, g1, b1);
         *pixel2 = qRgb(r2, g2, b2);
 */</span>
         p1 <span class="operator">-</span><span class="operator">=</span> dy;
         p2 <span class="operator">+</span><span class="operator">=</span> dy;
         y1<span class="operator">-</span><span class="operator">-</span>;
         y2<span class="operator">+</span><span class="operator">+</span>;
         pixel1 <span class="operator">-</span><span class="operator">=</span> pixelstep;
         pixel2 <span class="operator">+</span><span class="operator">=</span> pixelstep;
      }
    }

    rect<span class="operator">.</span>setTop(<span class="number">0</span>);
    rect<span class="operator">.</span>setBottom(h<span class="operator">-</span><span class="number">1</span>);
    <span class="keyword">return</span> rect;
 }

 <span class="comment">// Updates look-up table and other stuff necessary for the rendering.</span>
 <span class="comment">// Call this when the viewport size or slide dimension is changed.</span>
 <span class="type">void</span> PictureFlowPrivate<span class="operator">::</span>recalc(<span class="type">int</span> ww<span class="operator">,</span> <span class="type">int</span> wh)
 {
   <span class="type">int</span> w <span class="operator">=</span> (ww<span class="operator">+</span><span class="number">1</span>)<span class="operator">/</span><span class="number">2</span>;
   <span class="type">int</span> h <span class="operator">=</span> (wh<span class="operator">+</span><span class="number">1</span>)<span class="operator">/</span><span class="number">2</span>;
   buffer <span class="operator">=</span> <span class="type"><a href="qimage.html">QImage</a></span>(ww<span class="operator">,</span> wh<span class="operator">,</span> <span class="type"><a href="qimage.html">QImage</a></span><span class="operator">::</span>Format_RGB16);
   buffer<span class="operator">.</span>fill(<span class="number">0</span>);

   rays<span class="operator">.</span>resize(w<span class="operator">*</span><span class="number">2</span>);

   <span class="keyword">for</span>(<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> w; i<span class="operator">+</span><span class="operator">+</span>)
   {
     PFreal gg <span class="operator">=</span> (PFREAL_HALF <span class="operator">+</span> i <span class="operator">*</span> PFREAL_ONE) <span class="operator">/</span> (<span class="number">2</span><span class="operator">*</span>h);
     rays<span class="operator">[</span>w<span class="operator">-</span>i<span class="operator">-</span><span class="number">1</span><span class="operator">]</span> <span class="operator">=</span> <span class="operator">-</span>gg;
     rays<span class="operator">[</span>w<span class="operator">+</span>i<span class="operator">]</span> <span class="operator">=</span> gg;
   }

   <span class="comment">// pointer must move more than 1/15 of the window to enter drag mode</span>
   singlePressThreshold <span class="operator">=</span> ww <span class="operator">/</span> <span class="number">15</span>;
 <span class="comment">//  qDebug() &lt;&lt; &quot;singlePressThreshold now set to &quot; &lt;&lt; singlePressThreshold;</span>

   pixelsToMovePerSlide <span class="operator">=</span> ww <span class="operator">/</span> <span class="number">3</span>;
 <span class="comment">//  qDebug() &lt;&lt; &quot;pixelsToMovePerSlide now set to &quot; &lt;&lt; pixelsToMovePerSlide;</span>

   itilt <span class="operator">=</span> <span class="number">80</span> <span class="operator">*</span> IANGLE_MAX <span class="operator">/</span> <span class="number">360</span>;  <span class="comment">// approx. 80 degrees tilted</span>

   offsetY <span class="operator">=</span> slideWidth<span class="operator">/</span><span class="number">2</span> <span class="operator">*</span> fsin(itilt);
   offsetY <span class="operator">+</span><span class="operator">=</span> slideWidth <span class="operator">*</span> PFREAL_ONE <span class="operator">/</span> <span class="number">4</span>;

 <span class="comment">//  offsetX = slideWidth/2 * (PFREAL_ONE-fcos(itilt));</span>
 <span class="comment">//  offsetX += slideWidth * PFREAL_ONE;</span>

   <span class="comment">//         center slide             +         side slide</span>
   offsetX <span class="operator">=</span> slideWidth<span class="operator">*</span>PFREAL_ONE;
 <span class="comment">//  offsetX = 150*PFREAL_ONE;//(slideWidth/2)*PFREAL_ONE + ( slideWidth*fcos(itilt) )/2;</span>
 <span class="comment">//  qDebug() &lt;&lt; &quot;center width = &quot; &lt;&lt; slideWidth;</span>
 <span class="comment">//  qDebug() &lt;&lt; &quot;side width = &quot; &lt;&lt; fixedToFloat(slideWidth/2 * (PFREAL_ONE-fcos(itilt)));</span>
 <span class="comment">//  qDebug() &lt;&lt; &quot;offsetX now &quot; &lt;&lt; fixedToFloat(offsetX);</span>

   spacing <span class="operator">=</span> slideWidth<span class="operator">/</span><span class="number">5</span>;

   surfaceCache<span class="operator">.</span>clear();
   blankSurface <span class="operator">=</span> <span class="type"><a href="qimage.html">QImage</a></span>();
 }

 <span class="type">void</span> PictureFlowPrivate<span class="operator">::</span>startAnimation()
 {
   <span class="keyword">if</span>(<span class="operator">!</span>animateTimer<span class="operator">.</span>isActive())
   {
     step <span class="operator">=</span> (target <span class="operator">&lt;</span> centerSlide<span class="operator">.</span>slideIndex) <span class="operator">?</span> <span class="operator">-</span><span class="number">1</span> : <span class="number">1</span>;
     animateTimer<span class="operator">.</span>start(<span class="number">30</span><span class="operator">,</span> widget);
   }
 }

 <span class="comment">// Updates the animation effect. Call this periodically from a timer.</span>
 <span class="type">void</span> PictureFlowPrivate<span class="operator">::</span>updateAnimation()
 {
   <span class="keyword">if</span>(<span class="operator">!</span>animateTimer<span class="operator">.</span>isActive())
     <span class="keyword">return</span>;
   <span class="keyword">if</span>(step <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>)
     <span class="keyword">return</span>;

   <span class="type">int</span> speed <span class="operator">=</span> <span class="number">16384</span>;

   <span class="comment">// deaccelerate when approaching the target</span>
   <span class="keyword">if</span>(<span class="keyword">true</span>)
   {
     <span class="keyword">const</span> <span class="type">int</span> max <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> <span class="number">65536</span>;

     <span class="type">int</span> fi <span class="operator">=</span> slideFrame;
     fi <span class="operator">-</span><span class="operator">=</span> (target <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">16</span>);
     <span class="keyword">if</span>(fi <span class="operator">&lt;</span> <span class="number">0</span>)
       fi <span class="operator">=</span> <span class="operator">-</span>fi;
     fi <span class="operator">=</span> <a href="qtglobal.html#qMin">qMin</a>(fi<span class="operator">,</span> max);

     <span class="type">int</span> ia <span class="operator">=</span> IANGLE_MAX <span class="operator">*</span> (fi<span class="operator">-</span>max<span class="operator">/</span><span class="number">2</span>) <span class="operator">/</span> (max<span class="operator">*</span><span class="number">2</span>);
     speed <span class="operator">=</span> <span class="number">512</span> <span class="operator">+</span> <span class="number">16384</span> <span class="operator">*</span> (PFREAL_ONE<span class="operator">+</span>fsin(ia))<span class="operator">/</span>PFREAL_ONE;
   }

   slideFrame <span class="operator">+</span><span class="operator">=</span> speed<span class="operator">*</span>step;

   <span class="type">int</span> index <span class="operator">=</span> slideFrame <span class="operator">&gt;</span><span class="operator">&gt;</span> <span class="number">16</span>;
   <span class="type">int</span> pos <span class="operator">=</span> slideFrame <span class="operator">&amp;</span> <span class="number">0xffff</span>;
   <span class="type">int</span> neg <span class="operator">=</span> <span class="number">65536</span> <span class="operator">-</span> pos;
   <span class="type">int</span> tick <span class="operator">=</span> (step <span class="operator">&lt;</span> <span class="number">0</span>) <span class="operator">?</span> neg : pos;
   PFreal ftick <span class="operator">=</span> (tick <span class="operator">*</span> PFREAL_ONE) <span class="operator">&gt;</span><span class="operator">&gt;</span> <span class="number">16</span>;

   <span class="comment">// the leftmost and rightmost slide must fade away</span>
   fade <span class="operator">=</span> pos <span class="operator">/</span> <span class="number">256</span>;

   <span class="keyword">if</span>(step <span class="operator">&lt;</span> <span class="number">0</span>)
     index<span class="operator">+</span><span class="operator">+</span>;
   <span class="keyword">if</span>(centerIndex <span class="operator">!</span><span class="operator">=</span> index)
   {
     centerIndex <span class="operator">=</span> index;
     slideFrame <span class="operator">=</span> index <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">16</span>;
     centerSlide<span class="operator">.</span>slideIndex <span class="operator">=</span> centerIndex;
     <span class="keyword">for</span>(<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> leftSlides<span class="operator">.</span>count(); i<span class="operator">+</span><span class="operator">+</span>)
       leftSlides<span class="operator">[</span>i<span class="operator">]</span><span class="operator">.</span>slideIndex <span class="operator">=</span> centerIndex<span class="operator">-</span><span class="number">1</span><span class="operator">-</span>i;
     <span class="keyword">for</span>(<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> rightSlides<span class="operator">.</span>count(); i<span class="operator">+</span><span class="operator">+</span>)
       rightSlides<span class="operator">[</span>i<span class="operator">]</span><span class="operator">.</span>slideIndex <span class="operator">=</span> centerIndex<span class="operator">+</span><span class="number">1</span><span class="operator">+</span>i;
   }

   centerSlide<span class="operator">.</span>angle <span class="operator">=</span> (step <span class="operator">*</span> tick <span class="operator">*</span> itilt) <span class="operator">&gt;</span><span class="operator">&gt;</span> <span class="number">16</span>;
   centerSlide<span class="operator">.</span>cx <span class="operator">=</span> <span class="operator">-</span>step <span class="operator">*</span> fmul(offsetX<span class="operator">,</span> ftick);
   centerSlide<span class="operator">.</span>cy <span class="operator">=</span> fmul(offsetY<span class="operator">,</span> ftick);

   <span class="keyword">if</span>(centerIndex <span class="operator">=</span><span class="operator">=</span> target)
   {
     resetSlides();
     animateTimer<span class="operator">.</span>stop();
     triggerRender();
     step <span class="operator">=</span> <span class="number">0</span>;
     fade <span class="operator">=</span> <span class="number">256</span>;
     <span class="keyword">return</span>;
   }

   <span class="keyword">for</span>(<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> leftSlides<span class="operator">.</span>count(); i<span class="operator">+</span><span class="operator">+</span>)
   {
     SlideInfo<span class="operator">&amp;</span> si <span class="operator">=</span> leftSlides<span class="operator">[</span>i<span class="operator">]</span>;
     si<span class="operator">.</span>angle <span class="operator">=</span> itilt;
     si<span class="operator">.</span>cx <span class="operator">=</span> <span class="operator">-</span>(offsetX <span class="operator">+</span> spacing<span class="operator">*</span>i<span class="operator">*</span>PFREAL_ONE <span class="operator">+</span> step<span class="operator">*</span>spacing<span class="operator">*</span>ftick);
     si<span class="operator">.</span>cy <span class="operator">=</span> offsetY;
   }

   <span class="keyword">for</span>(<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> rightSlides<span class="operator">.</span>count(); i<span class="operator">+</span><span class="operator">+</span>)
   {
     SlideInfo<span class="operator">&amp;</span> si <span class="operator">=</span> rightSlides<span class="operator">[</span>i<span class="operator">]</span>;
     si<span class="operator">.</span>angle <span class="operator">=</span> <span class="operator">-</span>itilt;
     si<span class="operator">.</span>cx <span class="operator">=</span> offsetX <span class="operator">+</span> spacing<span class="operator">*</span>i<span class="operator">*</span>PFREAL_ONE <span class="operator">-</span> step<span class="operator">*</span>spacing<span class="operator">*</span>ftick;
     si<span class="operator">.</span>cy <span class="operator">=</span> offsetY;
   }

   <span class="keyword">if</span>(step <span class="operator">&gt;</span> <span class="number">0</span>)
   {
     PFreal ftick <span class="operator">=</span> (neg <span class="operator">*</span> PFREAL_ONE) <span class="operator">&gt;</span><span class="operator">&gt;</span> <span class="number">16</span>;
     rightSlides<span class="operator">[</span><span class="number">0</span><span class="operator">]</span><span class="operator">.</span>angle <span class="operator">=</span> <span class="operator">-</span>(neg <span class="operator">*</span> itilt) <span class="operator">&gt;</span><span class="operator">&gt;</span> <span class="number">16</span>;
     rightSlides<span class="operator">[</span><span class="number">0</span><span class="operator">]</span><span class="operator">.</span>cx <span class="operator">=</span> fmul(offsetX<span class="operator">,</span> ftick);
     rightSlides<span class="operator">[</span><span class="number">0</span><span class="operator">]</span><span class="operator">.</span>cy <span class="operator">=</span> fmul(offsetY<span class="operator">,</span> ftick);
   }
   <span class="keyword">else</span>
   {
     PFreal ftick <span class="operator">=</span> (pos <span class="operator">*</span> PFREAL_ONE) <span class="operator">&gt;</span><span class="operator">&gt;</span> <span class="number">16</span>;
     leftSlides<span class="operator">[</span><span class="number">0</span><span class="operator">]</span><span class="operator">.</span>angle <span class="operator">=</span> (pos <span class="operator">*</span> itilt) <span class="operator">&gt;</span><span class="operator">&gt;</span> <span class="number">16</span>;
     leftSlides<span class="operator">[</span><span class="number">0</span><span class="operator">]</span><span class="operator">.</span>cx <span class="operator">=</span> <span class="operator">-</span>fmul(offsetX<span class="operator">,</span> ftick);
     leftSlides<span class="operator">[</span><span class="number">0</span><span class="operator">]</span><span class="operator">.</span>cy <span class="operator">=</span> fmul(offsetY<span class="operator">,</span> ftick);
   }

   <span class="comment">// must change direction ?</span>
   <span class="keyword">if</span>(target <span class="operator">&lt;</span> index) <span class="keyword">if</span>(step <span class="operator">&gt;</span> <span class="number">0</span>)
     step <span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>;
   <span class="keyword">if</span>(target <span class="operator">&gt;</span> index) <span class="keyword">if</span>(step <span class="operator">&lt;</span> <span class="number">0</span>)
     step <span class="operator">=</span> <span class="number">1</span>;

   triggerRender();
 }

 <span class="type">void</span> PictureFlowPrivate<span class="operator">::</span>clearSurfaceCache()
 {
   surfaceCache<span class="operator">.</span>clear();
 }

 <span class="comment">// -----------------------------------------</span>

 PictureFlow<span class="operator">::</span>PictureFlow(<span class="type"><a href="qwidget.html">QWidget</a></span><span class="operator">*</span> parent): <span class="type"><a href="qwidget.html">QWidget</a></span>(parent)
 {
   d <span class="operator">=</span> <span class="keyword">new</span> PictureFlowPrivate(<span class="keyword">this</span>);

   setAttribute(<span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>WA_StaticContents<span class="operator">,</span> <span class="keyword">true</span>);
   setAttribute(<span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>WA_OpaquePaintEvent<span class="operator">,</span> <span class="keyword">true</span>);
   setAttribute(<span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>WA_NoSystemBackground<span class="operator">,</span> <span class="keyword">true</span>);

 <span class="preprocessor">#ifdef Q_WS_QWS</span>
   <span class="keyword">if</span> (<span class="type"><a href="qscreen.html">QScreen</a></span><span class="operator">::</span>instance()<span class="operator">-</span><span class="operator">&gt;</span>pixelFormat() <span class="operator">!</span><span class="operator">=</span> <span class="type"><a href="qimage.html">QImage</a></span><span class="operator">::</span>Format_Invalid)
     setAttribute(<span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>WA_PaintOnScreen<span class="operator">,</span> <span class="keyword">true</span>);
 <span class="preprocessor">#endif</span>
 }

 PictureFlow<span class="operator">::</span><span class="operator">~</span>PictureFlow()
 {
   <span class="keyword">delete</span> d;
 }

 <span class="type">int</span> PictureFlow<span class="operator">::</span>slideCount() <span class="keyword">const</span>
 {
   <span class="keyword">return</span> d<span class="operator">-</span><span class="operator">&gt;</span>slideCount();
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>setSlideCount(<span class="type">int</span> count)
 {
   d<span class="operator">-</span><span class="operator">&gt;</span>setSlideCount(count);
 }

 <span class="type"><a href="qsize.html">QSize</a></span> PictureFlow<span class="operator">::</span>slideSize() <span class="keyword">const</span>
 {
   <span class="keyword">return</span> d<span class="operator">-</span><span class="operator">&gt;</span>slideSize();
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>setSlideSize(<span class="type"><a href="qsize.html">QSize</a></span> size)
 {
   d<span class="operator">-</span><span class="operator">&gt;</span>setSlideSize(size);
 }

 <span class="type">int</span> PictureFlow<span class="operator">::</span>zoomFactor() <span class="keyword">const</span>
 {
   <span class="keyword">return</span> d<span class="operator">-</span><span class="operator">&gt;</span>zoomFactor();
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>setZoomFactor(<span class="type">int</span> z)
 {
   d<span class="operator">-</span><span class="operator">&gt;</span>setZoomFactor(z);
 }

 <span class="type"><a href="qimage.html">QImage</a></span> PictureFlow<span class="operator">::</span>slide(<span class="type">int</span> index) <span class="keyword">const</span>
 {
   <span class="keyword">return</span> d<span class="operator">-</span><span class="operator">&gt;</span>slide(index);
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>setSlide(<span class="type">int</span> index<span class="operator">,</span> <span class="keyword">const</span> <span class="type"><a href="qimage.html">QImage</a></span><span class="operator">&amp;</span> image)
 {
   d<span class="operator">-</span><span class="operator">&gt;</span>setSlide(index<span class="operator">,</span> image);
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>setSlide(<span class="type">int</span> index<span class="operator">,</span> <span class="keyword">const</span> <span class="type"><a href="qpixmap.html">QPixmap</a></span><span class="operator">&amp;</span> pixmap)
 {
   d<span class="operator">-</span><span class="operator">&gt;</span>setSlide(index<span class="operator">,</span> pixmap<span class="operator">.</span>toImage());
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>setSlideCaption(<span class="type">int</span> index<span class="operator">,</span> <span class="type"><a href="qstring.html">QString</a></span> caption)
 {
   d<span class="operator">-</span><span class="operator">&gt;</span>captions<span class="operator">[</span>index<span class="operator">]</span> <span class="operator">=</span> caption;
 }

 <span class="type">int</span> PictureFlow<span class="operator">::</span>currentSlide() <span class="keyword">const</span>
 {
   <span class="keyword">return</span> d<span class="operator">-</span><span class="operator">&gt;</span>currentSlide();
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>setCurrentSlide(<span class="type">int</span> index)
 {
   d<span class="operator">-</span><span class="operator">&gt;</span>setCurrentSlide(index);
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>clear()
 {
   d<span class="operator">-</span><span class="operator">&gt;</span>setSlideCount(<span class="number">0</span>);
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>clearCaches()
 {
   d<span class="operator">-</span><span class="operator">&gt;</span>clearSurfaceCache();
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>render()
 {
   d<span class="operator">-</span><span class="operator">&gt;</span>render();
   update();
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>showPrevious()
 {
   d<span class="operator">-</span><span class="operator">&gt;</span>showPrevious();
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>showNext()
 {
   d<span class="operator">-</span><span class="operator">&gt;</span>showNext();
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>showSlide(<span class="type">int</span> index)
 {
   d<span class="operator">-</span><span class="operator">&gt;</span>showSlide(index);
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>keyPressEvent(<span class="type"><a href="qkeyevent.html">QKeyEvent</a></span><span class="operator">*</span> event)
 {
   <span class="keyword">if</span>(event<span class="operator">-</span><span class="operator">&gt;</span>key() <span class="operator">=</span><span class="operator">=</span> <span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>Key_Left)
   {
     <span class="keyword">if</span>(event<span class="operator">-</span><span class="operator">&gt;</span>modifiers() <span class="operator">=</span><span class="operator">=</span> <span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>ControlModifier)
       showSlide(currentSlide()<span class="operator">-</span><span class="number">10</span>);
     <span class="keyword">else</span>
       showPrevious();
     event<span class="operator">-</span><span class="operator">&gt;</span>accept();
     <span class="keyword">return</span>;
   }

   <span class="keyword">if</span>(event<span class="operator">-</span><span class="operator">&gt;</span>key() <span class="operator">=</span><span class="operator">=</span> <span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>Key_Right)
   {
     <span class="keyword">if</span>(event<span class="operator">-</span><span class="operator">&gt;</span>modifiers() <span class="operator">=</span><span class="operator">=</span> <span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>ControlModifier)
       showSlide(currentSlide()<span class="operator">+</span><span class="number">10</span>);
     <span class="keyword">else</span>
       showNext();
     event<span class="operator">-</span><span class="operator">&gt;</span>accept();
     <span class="keyword">return</span>;
   }

   <span class="keyword">if</span> (event<span class="operator">-</span><span class="operator">&gt;</span>key() <span class="operator">=</span><span class="operator">=</span> <span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>Key_Enter <span class="operator">|</span><span class="operator">|</span> event<span class="operator">-</span><span class="operator">&gt;</span>key() <span class="operator">=</span><span class="operator">=</span> <span class="type"><a href="qt.html">Qt</a></span><span class="operator">::</span>Key_Select) {
     <span class="keyword">emit</span> itemActivated(d<span class="operator">-</span><span class="operator">&gt;</span>getTarget());
     event<span class="operator">-</span><span class="operator">&gt;</span>accept();
     <span class="keyword">return</span>;
   }

   event<span class="operator">-</span><span class="operator">&gt;</span>ignore();
 }

 <span class="preprocessor">#define SPEED_LOWER_THRESHOLD 10</span>
 <span class="preprocessor">#define SPEED_UPPER_LIMIT 40</span>

 <span class="type">void</span> PictureFlow<span class="operator">::</span>mouseMoveEvent(<span class="type"><a href="qmouseevent.html">QMouseEvent</a></span><span class="operator">*</span> event)
 {
   <span class="type">int</span> distanceMovedSinceLastEvent <span class="operator">=</span> event<span class="operator">-</span><span class="operator">&gt;</span>pos()<span class="operator">.</span>x() <span class="operator">-</span> d<span class="operator">-</span><span class="operator">&gt;</span>previousPos<span class="operator">.</span>x();

   <span class="comment">// Check to see if we need to switch from single press mode to a drag mode</span>
   <span class="keyword">if</span> (d<span class="operator">-</span><span class="operator">&gt;</span>singlePress)
   {
     <span class="comment">// Increment the distance moved for this event</span>
     d<span class="operator">-</span><span class="operator">&gt;</span>pixelDistanceMoved <span class="operator">+</span><span class="operator">=</span> distanceMovedSinceLastEvent;

     <span class="comment">// Check against threshold</span>
     <span class="keyword">if</span> (<a href="qtglobal.html#qAbs">qAbs</a>(d<span class="operator">-</span><span class="operator">&gt;</span>pixelDistanceMoved) <span class="operator">&gt;</span> d<span class="operator">-</span><span class="operator">&gt;</span>singlePressThreshold)
     {
       d<span class="operator">-</span><span class="operator">&gt;</span>singlePress <span class="operator">=</span> <span class="keyword">false</span>;
 <span class="comment">//      qDebug() &lt;&lt; &quot;DRAG MODE ON&quot;;</span>
     }
   }

   <span class="keyword">if</span> (<span class="operator">!</span>d<span class="operator">-</span><span class="operator">&gt;</span>singlePress)
   {
     <span class="type">int</span> speed;
     <span class="comment">// Calculate velocity in a 10th of a window width per second</span>
     <span class="keyword">if</span> (d<span class="operator">-</span><span class="operator">&gt;</span>previousPosTimestamp<span class="operator">.</span>elapsed() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>)
       speed <span class="operator">=</span> SPEED_LOWER_THRESHOLD;
     <span class="keyword">else</span>
     {
       speed <span class="operator">=</span> ((<a href="qtglobal.html#qAbs">qAbs</a>(event<span class="operator">-</span><span class="operator">&gt;</span>pos()<span class="operator">.</span>x()<span class="operator">-</span>d<span class="operator">-</span><span class="operator">&gt;</span>previousPos<span class="operator">.</span>x())<span class="operator">*</span><span class="number">1000</span>) <span class="operator">/</span> d<span class="operator">-</span><span class="operator">&gt;</span>previousPosTimestamp<span class="operator">.</span>elapsed())
                     <span class="operator">/</span> (d<span class="operator">-</span><span class="operator">&gt;</span>buffer<span class="operator">.</span>width() <span class="operator">/</span> <span class="number">10</span>);

       <span class="keyword">if</span> (speed <span class="operator">&lt;</span> SPEED_LOWER_THRESHOLD)
         speed <span class="operator">=</span> SPEED_LOWER_THRESHOLD;
       <span class="keyword">else</span> <span class="keyword">if</span> (speed <span class="operator">&gt;</span> SPEED_UPPER_LIMIT)
         speed <span class="operator">=</span> SPEED_UPPER_LIMIT;
       <span class="keyword">else</span> {
         speed <span class="operator">=</span> SPEED_LOWER_THRESHOLD <span class="operator">+</span> (speed <span class="operator">/</span> <span class="number">3</span>);
 <span class="comment">//        qDebug() &lt;&lt; &quot;ACCELERATION ENABLED Speed = &quot; &lt;&lt; speed &lt;&lt; &quot;, Distance = &quot; &lt;&lt; distanceMovedSinceLastEvent;</span>
       }
     }

 <span class="comment">//    qDebug() &lt;&lt; &quot;Speed = &quot; &lt;&lt; speed;</span>

 <span class="comment">//    int incr = ((event-&gt;pos().x() - d-&gt;previousPos.x())/10) * speed;</span>

 <span class="comment">//    qDebug() &lt;&lt; &quot;Incremented by &quot; &lt;&lt; incr;</span>

     <span class="type">int</span> incr <span class="operator">=</span> (distanceMovedSinceLastEvent <span class="operator">*</span> speed);

     <span class="comment">//qDebug() &lt;&lt; &quot;(distanceMovedSinceLastEvent * speed) = &quot; &lt;&lt; incr;</span>

     <span class="keyword">if</span> (incr <span class="operator">&gt;</span> d<span class="operator">-</span><span class="operator">&gt;</span>pixelsToMovePerSlide<span class="operator">*</span><span class="number">2</span>) {
       incr <span class="operator">=</span> d<span class="operator">-</span><span class="operator">&gt;</span>pixelsToMovePerSlide<span class="operator">*</span><span class="number">2</span>;
       <span class="comment">//qDebug() &lt;&lt; &quot;Limiting incr to &quot; &lt;&lt; incr;</span>
     }

     d<span class="operator">-</span><span class="operator">&gt;</span>pixelDistanceMoved <span class="operator">+</span><span class="operator">=</span> (distanceMovedSinceLastEvent <span class="operator">*</span> speed);
  <span class="comment">//   qDebug() &lt;&lt; &quot;distance: &quot; &lt;&lt; d-&gt;pixelDistanceMoved;</span>

     <span class="type">int</span> slideInc;

     slideInc <span class="operator">=</span> d<span class="operator">-</span><span class="operator">&gt;</span>pixelDistanceMoved <span class="operator">/</span> (d<span class="operator">-</span><span class="operator">&gt;</span>pixelsToMovePerSlide <span class="operator">*</span> <span class="number">10</span>);

     <span class="keyword">if</span> (slideInc <span class="operator">!</span><span class="operator">=</span> <span class="number">0</span>) {
       <span class="type">int</span> targetSlide <span class="operator">=</span> d<span class="operator">-</span><span class="operator">&gt;</span>getTarget() <span class="operator">-</span> slideInc;
       showSlide(targetSlide);
 <span class="comment">//      qDebug() &lt;&lt; &quot;TargetSlide = &quot; &lt;&lt; targetSlide;</span>

       <span class="comment">//qDebug() &lt;&lt; &quot;Decrementing pixelDistanceMoved by &quot; &lt;&lt; (d-&gt;pixelsToMovePerSlide *10) * slideInc;</span>

       d<span class="operator">-</span><span class="operator">&gt;</span>pixelDistanceMoved <span class="operator">-</span><span class="operator">=</span> (d<span class="operator">-</span><span class="operator">&gt;</span>pixelsToMovePerSlide <span class="operator">*</span><span class="number">10</span>) <span class="operator">*</span> slideInc;

 <span class="comment">/*
       if ( (targetSlide &lt;= 0) || (targetSlide &gt;= d-&gt;slideCount()-1) )
         d-&gt;pixelDistanceMoved = 0;
 */</span>
     }
   }

   d<span class="operator">-</span><span class="operator">&gt;</span>previousPos <span class="operator">=</span> event<span class="operator">-</span><span class="operator">&gt;</span>pos();
   d<span class="operator">-</span><span class="operator">&gt;</span>previousPosTimestamp<span class="operator">.</span>restart();

   <span class="keyword">emit</span> inputReceived();
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>mousePressEvent(<span class="type"><a href="qmouseevent.html">QMouseEvent</a></span><span class="operator">*</span> event)
 {
   d<span class="operator">-</span><span class="operator">&gt;</span>firstPress <span class="operator">=</span> event<span class="operator">-</span><span class="operator">&gt;</span>pos();
   d<span class="operator">-</span><span class="operator">&gt;</span>previousPos <span class="operator">=</span> event<span class="operator">-</span><span class="operator">&gt;</span>pos();
   d<span class="operator">-</span><span class="operator">&gt;</span>previousPosTimestamp<span class="operator">.</span>start();
   d<span class="operator">-</span><span class="operator">&gt;</span>singlePress <span class="operator">=</span> <span class="keyword">true</span>; <span class="comment">// Initially assume a single press</span>
 <span class="comment">//  d-&gt;dragStartSlide = d-&gt;getTarget();</span>
   d<span class="operator">-</span><span class="operator">&gt;</span>pixelDistanceMoved <span class="operator">=</span> <span class="number">0</span>;

   <span class="keyword">emit</span> inputReceived();
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>mouseReleaseEvent(<span class="type"><a href="qmouseevent.html">QMouseEvent</a></span><span class="operator">*</span> event)
 {
   <span class="type">int</span> sideWidth <span class="operator">=</span> (d<span class="operator">-</span><span class="operator">&gt;</span>buffer<span class="operator">.</span>width() <span class="operator">-</span> slideSize()<span class="operator">.</span>width()) <span class="operator">/</span><span class="number">2</span>;

   <span class="keyword">if</span> (d<span class="operator">-</span><span class="operator">&gt;</span>singlePress)
   {
     <span class="keyword">if</span> (event<span class="operator">-</span><span class="operator">&gt;</span>x() <span class="operator">&lt;</span> sideWidth )
     {
       showPrevious();
     } <span class="keyword">else</span> <span class="keyword">if</span> ( event<span class="operator">-</span><span class="operator">&gt;</span>x() <span class="operator">&gt;</span> sideWidth <span class="operator">+</span> slideSize()<span class="operator">.</span>width() ) {
       showNext();
     } <span class="keyword">else</span> {
       <span class="keyword">emit</span> itemActivated(d<span class="operator">-</span><span class="operator">&gt;</span>getTarget());
     }

     event<span class="operator">-</span><span class="operator">&gt;</span>accept();
   }

   <span class="keyword">emit</span> inputReceived();
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>paintEvent(<span class="type"><a href="qpaintevent.html">QPaintEvent</a></span><span class="operator">*</span> event)
 {
   Q_UNUSED(event);
   <span class="type"><a href="qpainter.html">QPainter</a></span> painter(<span class="keyword">this</span>);
   painter<span class="operator">.</span>setRenderHint(<span class="type"><a href="qpainter.html">QPainter</a></span><span class="operator">::</span>Antialiasing<span class="operator">,</span> <span class="keyword">false</span>);
   painter<span class="operator">.</span>drawImage(<span class="type"><a href="qpoint.html">QPoint</a></span>(<span class="number">0</span><span class="operator">,</span><span class="number">0</span>)<span class="operator">,</span> d<span class="operator">-</span><span class="operator">&gt;</span>buffer);
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>resizeEvent(<span class="type"><a href="qresizeevent.html">QResizeEvent</a></span><span class="operator">*</span> event)
 {
   d<span class="operator">-</span><span class="operator">&gt;</span>resize(width()<span class="operator">,</span> height());
   <span class="type"><a href="qwidget.html">QWidget</a></span><span class="operator">::</span>resizeEvent(event);
 }

 <span class="type">void</span> PictureFlow<span class="operator">::</span>timerEvent(<span class="type"><a href="qtimerevent.html">QTimerEvent</a></span><span class="operator">*</span> event)
 {
   <span class="keyword">if</span>(event<span class="operator">-</span><span class="operator">&gt;</span>timerId() <span class="operator">=</span><span class="operator">=</span> d<span class="operator">-</span><span class="operator">&gt;</span>animateTimer<span class="operator">.</span>timerId())
   {
 <span class="comment">//    QTime now = QTime::currentTime();</span>
     d<span class="operator">-</span><span class="operator">&gt;</span>updateAnimation();
 <span class="comment">//    d-&gt;animateTimer.start(qMax(0, 30-now.elapsed() ), this);</span>
   }
   <span class="keyword">else</span>
     <span class="type"><a href="qwidget.html">QWidget</a></span><span class="operator">::</span>timerEvent(event);
 }</pre>
</div>
<!-- @@@demos/embedded/fluidlauncher/pictureflow.cpp -->
      </div>
    </div>
    </div> 
    <div class="ft">
      <span></span>
    </div>
  </div> 
  <div class="footer">
    <p>
      <acronym title="Copyright">&copy;</acronym> 2013 Digia Plc and/or its
      subsidiaries. Documentation contributions included herein are the copyrights of
      their respective owners.</p>
    <br />
    <p>
      The documentation provided herein is licensed under the terms of the
      <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation
      License version 1.3</a> as published by the Free Software Foundation.</p>
    <p>
      Documentation sources may be obtained from <a href="http://www.qt-project.org">
      www.qt-project.org</a>.</p>
    <br />
    <p>
      Digia, Qt and their respective logos are trademarks of Digia Plc 
      in Finland and/or other countries worldwide. All other trademarks are property
      of their respective owners. <a title="Privacy Policy"
      href="http://en.gitorious.org/privacy_policy/">Privacy Policy</a></p>
  </div>

  <script src="scripts/functions.js" type="text/javascript"></script>
</body>
</html>