Files
qwt/doc/html/qwt__spline_8cpp_source.html
2023-10-31 09:22:42 +01:00

1202 lines
185 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Qwt User&#39;s Guide: qwt_spline.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Qwt User&#39;s Guide
&#160;<span id="projectnumber">6.2.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('qwt__spline_8cpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">qwt_spline.cpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/******************************************************************************</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Qwt Widget Library</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 1997 Josef Wilgen</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2002 Uwe Rathmann</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * This library is free software; you can redistribute it and/or</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * modify it under the terms of the Qwt License, Version 1.0</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *****************************************************************************/</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;qwt_spline.h&quot;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;qwt_spline_parametrization.h&quot;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;qwt_spline_polynomial.h&quot;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;qwt_bezier.h&quot;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; </div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &lt;qpainterpath.h&gt;</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">namespace </span>QwtSplineC1P</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;{</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">struct </span>param</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; {</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; param( <span class="keyword">const</span> <a class="code" href="class_qwt_spline_parametrization.html">QwtSplineParametrization</a>* p ):</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; parameter( p )</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; {</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">double</span> operator()( <span class="keyword">const</span> QPointF&amp; p1, <span class="keyword">const</span> QPointF&amp; p2 )<span class="keyword"> const</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">return</span> parameter-&gt;valueIncrement( p1, p2 );</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; }</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">const</span> <a class="code" href="class_qwt_spline_parametrization.html">QwtSplineParametrization</a>* parameter;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; };</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">struct </span>paramY</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; {</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">double</span> operator()( <span class="keyword">const</span> QPointF&amp; p1, <span class="keyword">const</span> QPointF&amp; p2 )<span class="keyword"> const</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline_parametrization.html#ab5014b377c1f5f945cd7062109728d41">QwtSplineParametrization::valueIncrementY</a>( p1, p2 );</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; }</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; };</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">struct </span>paramUniform</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; {</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">double</span> operator()( <span class="keyword">const</span> QPointF&amp; p1, <span class="keyword">const</span> QPointF&amp; p2 )<span class="keyword"> const</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline_parametrization.html#a4ec70cdb3d4c1b53628ef516e93390ec">QwtSplineParametrization::valueIncrementUniform</a>( p1, p2 );</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; };</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">struct </span>paramCentripetal</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">double</span> operator()( <span class="keyword">const</span> QPointF&amp; p1, <span class="keyword">const</span> QPointF&amp; p2 )<span class="keyword"> const</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline_parametrization.html#a141e850c0e8da729dada0870041c265b">QwtSplineParametrization::valueIncrementCentripetal</a>( p1, p2 );</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; };</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">struct </span>paramChordal</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">double</span> operator()( <span class="keyword">const</span> QPointF&amp; p1, <span class="keyword">const</span> QPointF&amp; p2 )<span class="keyword"> const</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline_parametrization.html#a02659178ea5377ec5e13d71858456200">QwtSplineParametrization::valueIncrementChordal</a>( p1, p2 );</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; };</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">struct </span>paramManhattan</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">double</span> operator()( <span class="keyword">const</span> QPointF&amp; p1, <span class="keyword">const</span> QPointF&amp; p2 )<span class="keyword"> const</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline_parametrization.html#aacfc92b2d904b9644e1e0f4fc77fd7a2">QwtSplineParametrization::valueIncrementManhattan</a>( p1, p2 );</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; };</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">class </span>PathStore</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> init( <span class="keywordtype">int</span> size )</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; Q_UNUSED(size);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> start( <span class="keywordtype">double</span> x1, <span class="keywordtype">double</span> y1 )</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; path.moveTo( x1, y1 );</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> addCubic( <span class="keywordtype">double</span> cx1, <span class="keywordtype">double</span> cy1,</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">double</span> cx2, <span class="keywordtype">double</span> cy2, <span class="keywordtype">double</span> x2, <span class="keywordtype">double</span> y2 )</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; path.cubicTo( cx1, cy1, cx2, cy2, x2, y2 );</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> end()</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; path.closeSubpath();</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; QPainterPath path;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; };</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">class </span>ControlPointsStore</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">inline</span> ControlPointsStore():</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; m_cp( NULL )</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; {</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> init( <span class="keywordtype">int</span> size )</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; controlPoints.resize( size );</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; m_cp = controlPoints.data();</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> start( <span class="keywordtype">double</span> x1, <span class="keywordtype">double</span> y1 )</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; Q_UNUSED( x1 );</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; Q_UNUSED( y1 );</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> addCubic( <span class="keywordtype">double</span> cx1, <span class="keywordtype">double</span> cy1,</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">double</span> cx2, <span class="keywordtype">double</span> cy2, <span class="keywordtype">double</span> x2, <span class="keywordtype">double</span> y2 )</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; Q_UNUSED( x2 );</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; Q_UNUSED( y2 );</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; QLineF&amp; l = *m_cp++;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; l.setLine( cx1, cy1, cx2, cy2 );</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> end()</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="class_q_vector.html">QVector&lt; QLineF &gt;</a> controlPoints;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; QLineF* m_cp;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; };</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordtype">double</span> slopeBoundary( <span class="keywordtype">int</span> boundaryCondition, <span class="keywordtype">double</span> boundaryValue,</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">const</span> QPointF&amp; p1, <span class="keyword">const</span> QPointF&amp; p2, <span class="keywordtype">double</span> slope1 )</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> dx = p2.x() - p1.x();</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> dy = p2.y() - p1.y();</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordtype">double</span> m = 0.0;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">switch</span>( boundaryCondition )</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">case</span> <a class="code" href="class_qwt_spline.html#af2195032fa62c2b9fe74dc4d44b636cba94d03f64008ad0ed1e2e92bd96414028">QwtSpline::Clamped1</a>:</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; m = boundaryValue;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">case</span> <a class="code" href="class_qwt_spline.html#af2195032fa62c2b9fe74dc4d44b636cba43442b0f55b141b857d6c2ab56cd9afe">QwtSpline::Clamped2</a>:</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> c2 = 0.5 * boundaryValue;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> c1 = slope1;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m = 0.5 * ( 3.0 * dy / dx - c1 - c2 * dx );</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">case</span> <a class="code" href="class_qwt_spline.html#af2195032fa62c2b9fe74dc4d44b636cba897bc245acbf65ee2f1801c779de15b3">QwtSpline::Clamped3</a>:</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> c3 = boundaryValue / 6.0;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; m = c3 * dx * dx + 2 * dy / dx - slope1;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">case</span> <a class="code" href="class_qwt_spline.html#af2195032fa62c2b9fe74dc4d44b636cba6ad4241cc59f456d77eb70b289e5782a">QwtSpline::LinearRunout</a>:</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> s = dy / dx;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> r = qBound( 0.0, boundaryValue, 1.0 );</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; </div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; m = s - r * ( s - slope1 );</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; m = dy / dx; <span class="comment">// something</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> m;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;}</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; </div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="keyword">template</span>&lt; <span class="keyword">class</span> SplineStore &gt;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> SplineStore qwtSplineC1PathParamX(</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">const</span> <a class="code" href="class_qwt_spline_c1.html">QwtSplineC1</a>* spline, <span class="keyword">const</span> QPolygonF&amp; points )</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;{</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> n = points.size();</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">const</span> <a class="code" href="class_q_vector.html">QVector&lt; double &gt;</a> m = spline-&gt;<a class="code" href="class_qwt_spline_c1.html#a20caae8d9308f92a49da94315cd46537">slopes</a>( points );</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">if</span> ( m.size() != n )</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> SplineStore();</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">const</span> QPointF* pd = points.constData();</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span>* md = m.constData();</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; SplineStore store;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; store.init( m.size() - 1 );</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; store.start( pd[0].x(), pd[0].y() );</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; </div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; n - 1; i++ )</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> dx3 = ( pd[i + 1].x() - pd[i].x() ) / 3.0;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; store.addCubic( pd[i].x() + dx3, pd[i].y() + md[i] * dx3,</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; pd[i + 1].x() - dx3, pd[i + 1].y() - md[i + 1] * dx3,</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; pd[i + 1].x(), pd[i + 1].y() );</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; </div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> store;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;}</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; </div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="keyword">template</span>&lt; <span class="keyword">class</span> SplineStore &gt;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> SplineStore qwtSplineC1PathParamY(</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">const</span> <a class="code" href="class_qwt_spline_c1.html">QwtSplineC1</a>* spline, <span class="keyword">const</span> QPolygonF&amp; points )</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;{</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> n = points.size();</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; QPolygonF pointsFlipped( n );</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; n; i++ )</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; pointsFlipped[i].setX( points[i].y() );</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; pointsFlipped[i].setY( points[i].x() );</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; }</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; </div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">const</span> <a class="code" href="class_q_vector.html">QVector&lt; double &gt;</a> m = spline-&gt;<a class="code" href="class_qwt_spline_c1.html#a20caae8d9308f92a49da94315cd46537">slopes</a>( pointsFlipped );</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span> ( m.size() != n )</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> SplineStore();</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keyword">const</span> QPointF* pd = pointsFlipped.constData();</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span>* md = m.constData();</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; </div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; SplineStore store;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; store.init( m.size() - 1 );</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; store.start( pd[0].y(), pd[0].x() );</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; </div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="class_q_vector.html">QVector&lt; QLineF &gt;</a> lines( n );</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; n - 1; i++ )</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> dx3 = ( pd[i + 1].x() - pd[i].x() ) / 3.0;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; </div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; store.addCubic( pd[i].y() + md[i] * dx3, pd[i].x() + dx3,</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; pd[i + 1].y() - md[i + 1] * dx3, pd[i + 1].x() - dx3,</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; pd[i + 1].y(), pd[i + 1].x() );</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; </div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> store;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;}</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; </div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="keyword">template</span>&lt; <span class="keyword">class</span> SplineStore, <span class="keyword">class</span> Param &gt;</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> SplineStore qwtSplineC1PathParametric(</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">const</span> <a class="code" href="class_qwt_spline_c1.html">QwtSplineC1</a>* spline, <span class="keyword">const</span> QPolygonF&amp; points, Param param )</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;{</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> isClosing = ( spline-&gt;<a class="code" href="class_qwt_spline.html#a7f5f43e9e83fd23210ac528802c0496d">boundaryType</a>() == <a class="code" href="class_qwt_spline.html#ad82b1f33946d2489511f5e697a32b128a63108a1fe17778b7d9c236efc17774b1">QwtSpline::ClosedPolygon</a> );</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> n = points.size();</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; </div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; QPolygonF pointsX, pointsY;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; pointsX.resize( isClosing ? n + 1 : n );</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; pointsY.resize( isClosing ? n + 1 : n );</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; </div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; QPointF* px = pointsX.data();</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; QPointF* py = pointsY.data();</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">const</span> QPointF* p = points.constData();</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; </div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordtype">double</span> t = 0.0;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; px[0].rx() = py[0].rx() = t;</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; px[0].ry() = p[0].x();</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; py[0].ry() = p[0].y();</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; </div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordtype">int</span> numParamPoints = 1;</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 1; i &lt; n; i++ )</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> td = param( points[i - 1], points[i] );</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">if</span> ( td &gt; 0.0 )</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; t += td;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; </div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; px[numParamPoints].rx() = py[numParamPoints].rx() = t;</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; </div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; px[numParamPoints].ry() = p[i].x();</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; py[numParamPoints].ry() = p[i].y();</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; </div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; numParamPoints++;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; </div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">if</span> ( isClosing )</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; {</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> td = param( points[n - 1], points[0] );</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; </div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span> ( td &gt; 0.0 )</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; t += td;</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; </div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; px[numParamPoints].rx() = py[numParamPoints].rx() = t;</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; </div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; px[numParamPoints].ry() = p[0].x();</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; py[numParamPoints].ry() = p[0].y();</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; </div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; numParamPoints++;</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; }</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; </div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">if</span> ( pointsX.size() != numParamPoints )</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; {</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; pointsX.resize( numParamPoints );</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; pointsY.resize( numParamPoints );</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; }</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; </div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">const</span> <a class="code" href="class_q_vector.html">QVector&lt; double &gt;</a> slopesX = spline-&gt;<a class="code" href="class_qwt_spline_c1.html#a20caae8d9308f92a49da94315cd46537">slopes</a>( pointsX );</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keyword">const</span> <a class="code" href="class_q_vector.html">QVector&lt; double &gt;</a> slopesY = spline-&gt;<a class="code" href="class_qwt_spline_c1.html#a20caae8d9308f92a49da94315cd46537">slopes</a>( pointsY );</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; </div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span>* mx = slopesX.constData();</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span>* my = slopesY.constData();</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; </div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="comment">// we don&#39;t need it anymore</span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; pointsX.clear();</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; pointsY.clear();</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; </div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; SplineStore store;</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; store.init( isClosing ? n : n - 1 );</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; store.start( points[0].x(), points[0].y() );</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; </div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordtype">int</span> j = 0;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; </div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; n - 1; i++ )</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; {</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">const</span> QPointF&amp; p1 = p[i];</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">const</span> QPointF&amp; p2 = p[i + 1];</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; </div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> td = param( p1, p2 );</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; </div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">if</span> ( td != 0.0 )</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; {</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> t3 = td / 3.0;</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; </div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> cx1 = p1.x() + mx[j] * t3;</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> cy1 = p1.y() + my[j] * t3;</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; </div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> cx2 = p2.x() - mx[j + 1] * t3;</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> cy2 = p2.y() - my[j + 1] * t3;</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; </div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; store.addCubic( cx1, cy1, cx2, cy2, p2.x(), p2.y() );</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; </div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; j++;</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; }</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; {</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="comment">// setting control points to the ends</span></div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; store.addCubic( p1.x(), p1.y(), p2.x(), p2.y(), p2.x(), p2.y() );</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; </div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">if</span> ( isClosing )</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; {</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keyword">const</span> QPointF&amp; p1 = p[n - 1];</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keyword">const</span> QPointF&amp; p2 = p[0];</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; </div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> td = param( p1, p2 );</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; </div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">if</span> ( td != 0.0 )</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; {</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> t3 = td / 3.0;</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; </div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> cx1 = p1.x() + mx[j] * t3;</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> cy1 = p1.y() + my[j] * t3;</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; </div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> cx2 = p2.x() - mx[0] * t3;</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> cy2 = p2.y() - my[0] * t3;</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; </div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; store.addCubic( cx1, cy1, cx2, cy2, p2.x(), p2.y() );</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; }</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; {</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; store.addCubic( p1.x(), p1.y(), p2.x(), p2.y(), p2.x(), p2.y() );</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; }</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; </div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; store.end();</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; </div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">return</span> store;</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;}</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; </div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="keyword">template</span>&lt; QwtSplinePolynomial toPolynomial( const QPo<span class="keywordtype">int</span>F&amp;, <span class="keywordtype">double</span>, const QPo<span class="keywordtype">int</span>F&amp;, <span class="keywordtype">double</span> ) &gt;</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="keyword">static</span> QPolygonF qwtPolygonParametric( <span class="keywordtype">double</span> distance,</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">const</span> QPolygonF&amp; points, <span class="keyword">const</span> <a class="code" href="class_q_vector.html">QVector&lt; double &gt;</a>&amp; values, <span class="keywordtype">bool</span> withNodes )</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;{</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; QPolygonF fittedPoints;</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; </div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keyword">const</span> QPointF* p = points.constData();</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span>* v = values.constData();</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; </div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; fittedPoints += p[0];</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordtype">double</span> t = distance;</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; </div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> n = points.size();</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; </div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; n - 1; i++ )</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; {</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keyword">const</span> QPointF&amp; p1 = p[i];</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keyword">const</span> QPointF&amp; p2 = p[i + 1];</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; </div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keyword">const</span> <a class="code" href="class_qwt_spline_polynomial.html">QwtSplinePolynomial</a> polynomial = toPolynomial( p1, v[i], p2, v[i + 1] );</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; </div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> l = p2.x() - p1.x();</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; </div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">while</span> ( t &lt; l )</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; {</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; fittedPoints += QPointF( p1.x() + t, p1.y() + polynomial.<a class="code" href="class_qwt_spline_polynomial.html#a31aa00624298eb0f7f0796d6d58ab38e">valueAt</a>( t ) );</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; t += distance;</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; }</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; </div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">if</span> ( withNodes )</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; {</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">if</span> ( qFuzzyCompare( fittedPoints.last().x(), p2.x() ) )</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; fittedPoints.last() = p2;</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; fittedPoints += p2;</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; {</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; t -= l;</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; }</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; </div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span> fittedPoints;</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;}</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; </div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="keyword">class </span>QwtSpline::PrivateData</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;{</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; PrivateData()</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; : <a class="code" href="class_qwt_spline.html#a7f5f43e9e83fd23210ac528802c0496d">boundaryType</a>( <a class="code" href="class_qwt_spline.html">QwtSpline</a>::<a class="code" href="class_qwt_spline.html#ad82b1f33946d2489511f5e697a32b128af5bf38b7f712e69c699458cd6dfef711">ConditionalBoundaries</a> )</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; {</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <a class="code" href="class_qwt_spline.html#a6aa6f2c0b844e6a27284aa474c6bca7b">parametrization</a> = <span class="keyword">new</span> <a class="code" href="class_qwt_spline_parametrization.html">QwtSplineParametrization</a>(</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <a class="code" href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48daf328ec1c9518bc5aaa9f648731f77ffd">QwtSplineParametrization::ParameterChordal</a> );</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; </div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="comment">// parabolic runout at both ends</span></div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; </div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; boundaryConditions[0].type = <a class="code" href="class_qwt_spline.html#af2195032fa62c2b9fe74dc4d44b636cba897bc245acbf65ee2f1801c779de15b3">QwtSpline::Clamped3</a>;</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; boundaryConditions[0].value = 0.0;</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; </div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; boundaryConditions[1].type = <a class="code" href="class_qwt_spline.html#af2195032fa62c2b9fe74dc4d44b636cba897bc245acbf65ee2f1801c779de15b3">QwtSpline::Clamped3</a>;</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; boundaryConditions[1].value = 0.0;</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; }</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; </div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; ~PrivateData()</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; {</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keyword">delete</span> <a class="code" href="class_qwt_spline.html#a6aa6f2c0b844e6a27284aa474c6bca7b">parametrization</a>;</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; </div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <a class="code" href="class_qwt_spline_parametrization.html">QwtSplineParametrization</a>* <a class="code" href="class_qwt_spline.html#a6aa6f2c0b844e6a27284aa474c6bca7b">parametrization</a>;</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <a class="code" href="class_qwt_spline.html#ad82b1f33946d2489511f5e697a32b128">QwtSpline::BoundaryType</a> <a class="code" href="class_qwt_spline.html#a7f5f43e9e83fd23210ac528802c0496d">boundaryType</a>;</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; </div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keyword">struct</span></div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; {</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordtype">int</span> type;</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordtype">double</span> value;</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; </div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; } boundaryConditions[2];</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;};</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; </div>
<div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="class_qwt_spline.html#aa2debc778d58c5f53ab757c87f8ac21d"> 496</a></span>&#160;QPolygonF <a class="code" href="class_qwt_spline.html#aa2debc778d58c5f53ab757c87f8ac21d">QwtSpline::polygon</a>( <span class="keyword">const</span> QPolygonF&amp; points, <span class="keywordtype">double</span> tolerance )<span class="keyword"> const</span></div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">if</span> ( tolerance &lt;= 0.0 )</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">return</span> QPolygonF();</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; </div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keyword">const</span> QPainterPath path = <a class="code" href="class_qwt_spline.html#a34c5ddda039f15ec71de0523d9753b64">painterPath</a>( points );</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> n = path.elementCount();</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">if</span> ( n == 0 )</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">return</span> QPolygonF();</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; </div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keyword">const</span> QPainterPath::Element el = path.elementAt( 0 );</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">if</span> ( el.type != QPainterPath::MoveToElement )</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">return</span> QPolygonF();</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; </div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; QPointF p1( el.x, el.y );</div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; </div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; QPolygonF <a class="code" href="class_qwt_spline.html#aa2debc778d58c5f53ab757c87f8ac21d">polygon</a>;</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <a class="code" href="class_qwt_bezier.html">QwtBezier</a> bezier( tolerance );</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; </div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 1; i &lt; n; i += 3 )</div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; {</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keyword">const</span> QPainterPath::Element el1 = path.elementAt( i );</div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keyword">const</span> QPainterPath::Element el2 = path.elementAt( i + 1 );</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keyword">const</span> QPainterPath::Element el3 = path.elementAt( i + 2 );</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; </div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keyword">const</span> QPointF cp1( el1.x, el1.y );</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keyword">const</span> QPointF cp2( el2.x, el2.y );</div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keyword">const</span> QPointF p2( el3.x, el3.y );</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; </div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; bezier.<a class="code" href="class_qwt_bezier.html#a1e67390b7109a819d29b043418bcb1b5">appendToPolygon</a>( p1, cp1, cp2, p2, <a class="code" href="class_qwt_spline.html#aa2debc778d58c5f53ab757c87f8ac21d">polygon</a> );</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; </div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; p1 = p2;</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; }</div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; </div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline.html#aa2debc778d58c5f53ab757c87f8ac21d">polygon</a>;</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;}</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; </div>
<div class="line"><a name="l00540"></a><span class="lineno"><a class="line" href="class_qwt_spline.html#a5d1e0ba35c637a88c66d9e4cbaf36e93"> 540</a></span>&#160;<a class="code" href="class_qwt_spline.html#a5d1e0ba35c637a88c66d9e4cbaf36e93">QwtSpline::QwtSpline</a>()</div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;{</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; m_data = <span class="keyword">new</span> PrivateData;</div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;}</div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; </div>
<div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="class_qwt_spline.html#a90805882826469c94fdc871f18261bb6"> 546</a></span>&#160;<a class="code" href="class_qwt_spline.html#a90805882826469c94fdc871f18261bb6">QwtSpline::~QwtSpline</a>()</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;{</div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keyword">delete</span> m_data;</div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;}</div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; </div>
<div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="class_qwt_spline.html#a8530fa87bf65a42492014b50614d0595"> 564</a></span>&#160;uint <a class="code" href="class_qwt_spline.html#a8530fa87bf65a42492014b50614d0595">QwtSpline::locality</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;}</div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; </div>
<div class="line"><a name="l00576"></a><span class="lineno"><a class="line" href="class_qwt_spline.html#afb4959b1db04dd021b0a49752b66fac3"> 576</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_qwt_spline.html#afb4959b1db04dd021b0a49752b66fac3">QwtSpline::setParametrization</a>( <span class="keywordtype">int</span> type )</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;{</div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">if</span> ( m_data-&gt;parametrization-&gt;type() != type )</div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; {</div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keyword">delete</span> m_data-&gt;parametrization;</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; m_data-&gt;parametrization = <span class="keyword">new</span> <a class="code" href="class_qwt_spline_parametrization.html">QwtSplineParametrization</a>( type );</div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; }</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;}</div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; </div>
<div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="class_qwt_spline.html#a7d2dd1a36183afc5394ee6b39c09bc8c"> 592</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_qwt_spline.html#afb4959b1db04dd021b0a49752b66fac3">QwtSpline::setParametrization</a>( <a class="code" href="class_qwt_spline_parametrization.html">QwtSplineParametrization</a>* parametrization )</div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;{</div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">if</span> ( ( <a class="code" href="class_qwt_spline.html#a6aa6f2c0b844e6a27284aa474c6bca7b">parametrization</a> != NULL ) &amp;&amp; ( m_data-&gt;parametrization != <a class="code" href="class_qwt_spline.html#a6aa6f2c0b844e6a27284aa474c6bca7b">parametrization</a> ) )</div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; {</div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keyword">delete</span> m_data-&gt;parametrization;</div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; m_data-&gt;parametrization = <a class="code" href="class_qwt_spline.html#a6aa6f2c0b844e6a27284aa474c6bca7b">parametrization</a>;</div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; }</div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;}</div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; </div>
<div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="class_qwt_spline.html#a6aa6f2c0b844e6a27284aa474c6bca7b"> 605</a></span>&#160;<span class="keyword">const</span> <a class="code" href="class_qwt_spline_parametrization.html">QwtSplineParametrization</a>* <a class="code" href="class_qwt_spline.html#a6aa6f2c0b844e6a27284aa474c6bca7b">QwtSpline::parametrization</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">return</span> m_data-&gt;parametrization;</div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;}</div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; </div>
<div class="line"><a name="l00617"></a><span class="lineno"><a class="line" href="class_qwt_spline.html#a48ddb960940cd1bd6d6707dd0ebb8785"> 617</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_qwt_spline.html#a48ddb960940cd1bd6d6707dd0ebb8785">QwtSpline::setBoundaryType</a>( <a class="code" href="class_qwt_spline.html#ad82b1f33946d2489511f5e697a32b128">BoundaryType</a> boundaryType )</div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;{</div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; m_data-&gt;boundaryType = <a class="code" href="class_qwt_spline.html#a7f5f43e9e83fd23210ac528802c0496d">boundaryType</a>;</div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;}</div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; </div>
<div class="line"><a name="l00626"></a><span class="lineno"><a class="line" href="class_qwt_spline.html#a7f5f43e9e83fd23210ac528802c0496d"> 626</a></span>&#160;<a class="code" href="class_qwt_spline.html#ad82b1f33946d2489511f5e697a32b128">QwtSpline::BoundaryType</a> <a class="code" href="class_qwt_spline.html#a7f5f43e9e83fd23210ac528802c0496d">QwtSpline::boundaryType</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">return</span> m_data-&gt;boundaryType;</div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;}</div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; </div>
<div class="line"><a name="l00639"></a><span class="lineno"><a class="line" href="class_qwt_spline.html#a6306d24451d24f16d30880b9114d3052"> 639</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_qwt_spline.html#a6306d24451d24f16d30880b9114d3052">QwtSpline::setBoundaryCondition</a>( <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595a">BoundaryPosition</a> position, <span class="keywordtype">int</span> condition )</div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;{</div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">if</span> ( ( position == <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa0efcdb6fbf1e583097ec297b43f26024">QwtSpline::AtBeginning</a> ) || ( position == <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa633399daff8a04d92e61ca776e878e55">QwtSpline::AtEnd</a> ) )</div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; m_data-&gt;boundaryConditions[position].type = condition;</div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;}</div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; </div>
<div class="line"><a name="l00651"></a><span class="lineno"><a class="line" href="class_qwt_spline.html#a77de5f694c70a7c0b34a02c04093fcee"> 651</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="class_qwt_spline.html#a77de5f694c70a7c0b34a02c04093fcee">QwtSpline::boundaryCondition</a>( <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595a">BoundaryPosition</a> position )<span class="keyword"> const</span></div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="keywordflow">if</span> ( ( position == <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa0efcdb6fbf1e583097ec297b43f26024">QwtSpline::AtBeginning</a> ) || ( position == <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa633399daff8a04d92e61ca776e878e55">QwtSpline::AtEnd</a> ) )</div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keywordflow">return</span> m_data-&gt;boundaryConditions[position].type;</div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; </div>
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keywordflow">return</span> m_data-&gt;boundaryConditions[0].type; <span class="comment">// should never happen</span></div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;}</div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; </div>
<div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="class_qwt_spline.html#ac14c58e4301b85732c97a4daaf7a9b8b"> 670</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_qwt_spline.html#ac14c58e4301b85732c97a4daaf7a9b8b">QwtSpline::setBoundaryValue</a>( <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595a">BoundaryPosition</a> position, <span class="keywordtype">double</span> value )</div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;{</div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="keywordflow">if</span> ( ( position == <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa0efcdb6fbf1e583097ec297b43f26024">QwtSpline::AtBeginning</a> ) || ( position == <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa633399daff8a04d92e61ca776e878e55">QwtSpline::AtEnd</a> ) )</div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; m_data-&gt;boundaryConditions[position].value = value;</div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;}</div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; </div>
<div class="line"><a name="l00682"></a><span class="lineno"><a class="line" href="class_qwt_spline.html#a3a51db25eb5f3e4716fe172ae3ca35ec"> 682</a></span>&#160;<span class="keywordtype">double</span> <a class="code" href="class_qwt_spline.html#a3a51db25eb5f3e4716fe172ae3ca35ec">QwtSpline::boundaryValue</a>( <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595a">BoundaryPosition</a> position )<span class="keyword"> const</span></div>
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keywordflow">if</span> ( ( position == <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa0efcdb6fbf1e583097ec297b43f26024">QwtSpline::AtBeginning</a> ) || ( position == <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa633399daff8a04d92e61ca776e878e55">QwtSpline::AtEnd</a> ) )</div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordflow">return</span> m_data-&gt;boundaryConditions[position].value;</div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; </div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keywordflow">return</span> m_data-&gt;boundaryConditions[0].value; <span class="comment">// should never happen</span></div>
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;}</div>
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; </div>
<div class="line"><a name="l00700"></a><span class="lineno"><a class="line" href="class_qwt_spline.html#aa890bace9e318d1bff4fb03ed7d6e9c3"> 700</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_qwt_spline.html#aa890bace9e318d1bff4fb03ed7d6e9c3">QwtSpline::setBoundaryConditions</a>(</div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordtype">int</span> condition, <span class="keywordtype">double</span> valueBegin, <span class="keywordtype">double</span> valueEnd )</div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;{</div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <a class="code" href="class_qwt_spline.html#a6306d24451d24f16d30880b9114d3052">setBoundaryCondition</a>( <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa0efcdb6fbf1e583097ec297b43f26024">QwtSpline::AtBeginning</a>, condition );</div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <a class="code" href="class_qwt_spline.html#ac14c58e4301b85732c97a4daaf7a9b8b">setBoundaryValue</a>( <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa0efcdb6fbf1e583097ec297b43f26024">QwtSpline::AtBeginning</a>, valueBegin );</div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; </div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <a class="code" href="class_qwt_spline.html#a6306d24451d24f16d30880b9114d3052">setBoundaryCondition</a>( <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa633399daff8a04d92e61ca776e878e55">QwtSpline::AtEnd</a>, condition );</div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <a class="code" href="class_qwt_spline.html#ac14c58e4301b85732c97a4daaf7a9b8b">setBoundaryValue</a>( <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa633399daff8a04d92e61ca776e878e55">QwtSpline::AtEnd</a>, valueEnd );</div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;}</div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; </div>
<div class="line"><a name="l00711"></a><span class="lineno"><a class="line" href="class_qwt_spline_interpolating.html#a9f8a93111263da26788c4ae9034411d5"> 711</a></span>&#160;<a class="code" href="class_qwt_spline_interpolating.html#a9f8a93111263da26788c4ae9034411d5">QwtSplineInterpolating::QwtSplineInterpolating</a>()</div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;{</div>
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;}</div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; </div>
<div class="line"><a name="l00716"></a><span class="lineno"><a class="line" href="class_qwt_spline_interpolating.html#a1a1e39267da1d9d0f8a1c670777163a4"> 716</a></span>&#160;<a class="code" href="class_qwt_spline_interpolating.html#a1a1e39267da1d9d0f8a1c670777163a4">QwtSplineInterpolating::~QwtSplineInterpolating</a>()</div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;{</div>
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;}</div>
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; </div>
<div class="line"><a name="l00748"></a><span class="lineno"><a class="line" href="class_qwt_spline_interpolating.html#ae9eb4c8b6c5257a44f918c30d36860e4"> 748</a></span>&#160;QPainterPath <a class="code" href="class_qwt_spline_interpolating.html#ae9eb4c8b6c5257a44f918c30d36860e4">QwtSplineInterpolating::painterPath</a>( <span class="keyword">const</span> QPolygonF&amp; points )<span class="keyword"> const</span></div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> n = points.size();</div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; </div>
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; QPainterPath path;</div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">if</span> ( n == 0 )</div>
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="keywordflow">return</span> path;</div>
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; </div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordflow">if</span> ( n == 1 )</div>
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; {</div>
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; path.moveTo( points[0] );</div>
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordflow">return</span> path;</div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; }</div>
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; </div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">if</span> ( n == 2 )</div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; {</div>
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; path.addPolygon( points );</div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">return</span> path;</div>
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; }</div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; </div>
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keyword">const</span> <a class="code" href="class_q_vector.html">QVector&lt; QLineF &gt;</a> controlLines = <a class="code" href="class_qwt_spline_interpolating.html#a8db950cb52e6f12e51cfcb31e3bccf75">bezierControlLines</a>( points );</div>
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keywordflow">if</span> ( controlLines.size() &lt; n - 1 )</div>
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keywordflow">return</span> path;</div>
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; </div>
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keyword">const</span> QPointF* p = points.constData();</div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keyword">const</span> QLineF* l = controlLines.constData();</div>
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; </div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; path.moveTo( p[0] );</div>
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; n - 1; i++ )</div>
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; path.cubicTo( l[i].p1(), l[i].p2(), p[i + 1] );</div>
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; </div>
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keywordflow">if</span> ( ( <a class="code" href="class_qwt_spline.html#a7f5f43e9e83fd23210ac528802c0496d">boundaryType</a>() == <a class="code" href="class_qwt_spline.html#ad82b1f33946d2489511f5e697a32b128a63108a1fe17778b7d9c236efc17774b1">QwtSpline::ClosedPolygon</a> )</div>
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; &amp;&amp; ( controlLines.size() &gt;= n ) )</div>
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; {</div>
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; path.cubicTo( l[n - 1].p1(), l[n - 1].p2(), p[0] );</div>
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; path.closeSubpath();</div>
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; }</div>
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; </div>
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="keywordflow">return</span> path;</div>
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;}</div>
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; </div>
<div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="class_qwt_spline_interpolating.html#ab7ae76bbd1a085a267cdd54353ece2c2"> 805</a></span>&#160;QPolygonF <a class="code" href="class_qwt_spline_interpolating.html#ab7ae76bbd1a085a267cdd54353ece2c2">QwtSplineInterpolating::polygon</a>(</div>
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keyword">const</span> QPolygonF&amp; points, <span class="keywordtype">double</span> tolerance )<span class="keyword"> const</span></div>
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <span class="keywordflow">if</span> ( tolerance &lt;= 0.0 )</div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">return</span> QPolygonF();</div>
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; </div>
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keyword">const</span> <a class="code" href="class_q_vector.html">QVector&lt; QLineF &gt;</a> controlLines = <a class="code" href="class_qwt_spline_interpolating.html#a8db950cb52e6f12e51cfcb31e3bccf75">bezierControlLines</a>( points );</div>
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="keywordflow">if</span> ( controlLines.isEmpty() )</div>
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keywordflow">return</span> QPolygonF();</div>
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; </div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keyword">const</span> <span class="keywordtype">bool</span> isClosed = <a class="code" href="class_qwt_spline.html#a7f5f43e9e83fd23210ac528802c0496d">boundaryType</a>() == <a class="code" href="class_qwt_spline.html#ad82b1f33946d2489511f5e697a32b128a63108a1fe17778b7d9c236efc17774b1">QwtSpline::ClosedPolygon</a>;</div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; </div>
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <a class="code" href="class_qwt_bezier.html">QwtBezier</a> bezier( tolerance );</div>
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; </div>
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keyword">const</span> QPointF* p = points.constData();</div>
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <span class="keyword">const</span> QLineF* cl = controlLines.constData();</div>
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; </div>
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> n = controlLines.size();</div>
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; </div>
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; QPolygonF <a class="code" href="class_qwt_spline_interpolating.html#ab7ae76bbd1a085a267cdd54353ece2c2">polygon</a>;</div>
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; </div>
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; n - 1; i++ )</div>
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; {</div>
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keyword">const</span> QLineF&amp; l = cl[i];</div>
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; bezier.<a class="code" href="class_qwt_bezier.html#a1e67390b7109a819d29b043418bcb1b5">appendToPolygon</a>( p[i], l.p1(), l.p2(), p[i + 1], <a class="code" href="class_qwt_spline_interpolating.html#ab7ae76bbd1a085a267cdd54353ece2c2">polygon</a> );</div>
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; }</div>
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; </div>
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keyword">const</span> QPointF&amp; pn = isClosed ? p[0] : p[n];</div>
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keyword">const</span> QLineF&amp; l = cl[n - 1];</div>
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; </div>
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; bezier.<a class="code" href="class_qwt_bezier.html#a1e67390b7109a819d29b043418bcb1b5">appendToPolygon</a>( p[n - 1], l.p1(), l.p2(), pn, <a class="code" href="class_qwt_spline_interpolating.html#ab7ae76bbd1a085a267cdd54353ece2c2">polygon</a> );</div>
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; </div>
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline_interpolating.html#ab7ae76bbd1a085a267cdd54353ece2c2">polygon</a>;</div>
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;}</div>
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; </div>
<div class="line"><a name="l00863"></a><span class="lineno"><a class="line" href="class_qwt_spline_interpolating.html#a5a01fc8e0cd91a84881befe1caeec8db"> 863</a></span>&#160;QPolygonF <a class="code" href="class_qwt_spline_interpolating.html#a5a01fc8e0cd91a84881befe1caeec8db">QwtSplineInterpolating::equidistantPolygon</a>( <span class="keyword">const</span> QPolygonF&amp; points,</div>
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <span class="keywordtype">double</span> distance, <span class="keywordtype">bool</span> withNodes )<span class="keyword"> const</span></div>
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="keywordflow">if</span> ( distance &lt;= 0.0 )</div>
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <span class="keywordflow">return</span> QPolygonF();</div>
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; </div>
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> n = points.size();</div>
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keywordflow">if</span> ( n &lt;= 1 )</div>
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="keywordflow">return</span> points;</div>
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; </div>
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="keywordflow">if</span> ( n == 2 )</div>
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; {</div>
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <span class="comment">// TODO</span></div>
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="keywordflow">return</span> points;</div>
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; }</div>
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; </div>
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; QPolygonF path;</div>
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; </div>
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keyword">const</span> <a class="code" href="class_q_vector.html">QVector&lt; QLineF &gt;</a> controlLines = <a class="code" href="class_qwt_spline_interpolating.html#a8db950cb52e6f12e51cfcb31e3bccf75">bezierControlLines</a>( points );</div>
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; </div>
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keywordflow">if</span> ( controlLines.size() &lt; n - 1 )</div>
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keywordflow">return</span> path;</div>
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; </div>
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; path += points.first();</div>
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <span class="keywordtype">double</span> t = distance;</div>
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; </div>
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keyword">const</span> QPointF* p = points.constData();</div>
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <span class="keyword">const</span> QLineF* cl = controlLines.constData();</div>
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; </div>
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <span class="keyword">const</span> <a class="code" href="class_qwt_spline_parametrization.html">QwtSplineParametrization</a>* param = <a class="code" href="class_qwt_spline.html#a6aa6f2c0b844e6a27284aa474c6bca7b">parametrization</a>();</div>
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; </div>
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; n - 1; i++ )</div>
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; {</div>
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> l = param-&gt;<a class="code" href="class_qwt_spline_parametrization.html#a5cd58cf9777799bec478ad524baa22f9">valueIncrement</a>( p[i], p[i + 1] );</div>
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; </div>
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keywordflow">while</span> ( t &lt; l )</div>
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; {</div>
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; path += <a class="code" href="class_qwt_bezier.html#a962c356b89fb7fd2343091fed1569530">QwtBezier::pointAt</a>( p[i], cl[i].p1(),</div>
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; cl[i].p2(), p[i + 1], t / l );</div>
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; </div>
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; t += distance;</div>
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; }</div>
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; </div>
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <span class="keywordflow">if</span> ( withNodes )</div>
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; {</div>
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <span class="keywordflow">if</span> ( qFuzzyCompare( path.last().x(), p[i + 1].x() ) )</div>
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; path.last() = p[i + 1];</div>
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; path += p[i + 1];</div>
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; </div>
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; t = distance;</div>
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; }</div>
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; {</div>
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; t -= l;</div>
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; }</div>
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; }</div>
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; </div>
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <span class="keywordflow">if</span> ( ( <a class="code" href="class_qwt_spline.html#a7f5f43e9e83fd23210ac528802c0496d">boundaryType</a>() == <a class="code" href="class_qwt_spline.html#ad82b1f33946d2489511f5e697a32b128a63108a1fe17778b7d9c236efc17774b1">QwtSpline::ClosedPolygon</a> )</div>
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; &amp;&amp; ( controlLines.size() &gt;= n ) )</div>
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; {</div>
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> l = param-&gt;<a class="code" href="class_qwt_spline_parametrization.html#a5cd58cf9777799bec478ad524baa22f9">valueIncrement</a>( p[n - 1], p[0] );</div>
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; </div>
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <span class="keywordflow">while</span> ( t &lt; l )</div>
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; {</div>
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; path += <a class="code" href="class_qwt_bezier.html#a962c356b89fb7fd2343091fed1569530">QwtBezier::pointAt</a>( p[n - 1], cl[n - 1].p1(),</div>
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; cl[n - 1].p2(), p[0], t / l );</div>
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; </div>
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; t += distance;</div>
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; }</div>
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; </div>
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keywordflow">if</span> ( qFuzzyCompare( path.last().x(), p[0].x() ) )</div>
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; path.last() = p[0];</div>
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; path += p[0];</div>
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; }</div>
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; </div>
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordflow">return</span> path;</div>
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160;}</div>
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; </div>
<div class="line"><a name="l00944"></a><span class="lineno"><a class="line" href="class_qwt_spline_g1.html#aba43f62873a477b2733d4ced610d038d"> 944</a></span>&#160;<a class="code" href="class_qwt_spline_g1.html#aba43f62873a477b2733d4ced610d038d">QwtSplineG1::QwtSplineG1</a>()</div>
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160;{</div>
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;}</div>
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; </div>
<div class="line"><a name="l00949"></a><span class="lineno"><a class="line" href="class_qwt_spline_g1.html#a441218078365cb31416fd28501eefa2f"> 949</a></span>&#160;<a class="code" href="class_qwt_spline_g1.html#a441218078365cb31416fd28501eefa2f">QwtSplineG1::~QwtSplineG1</a>()</div>
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;{</div>
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;}</div>
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; </div>
<div class="line"><a name="l00962"></a><span class="lineno"><a class="line" href="class_qwt_spline_c1.html#a4924927ec8a3f9dde92692898ccf6cf5"> 962</a></span>&#160;<a class="code" href="class_qwt_spline_c1.html#a4924927ec8a3f9dde92692898ccf6cf5">QwtSplineC1::QwtSplineC1</a>()</div>
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;{</div>
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <a class="code" href="class_qwt_spline.html#afb4959b1db04dd021b0a49752b66fac3">setParametrization</a>( <a class="code" href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48da3eaba94a692d4e23a0714db3288a6a24">QwtSplineParametrization::ParameterX</a> );</div>
<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;}</div>
<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; </div>
<div class="line"><a name="l00968"></a><span class="lineno"><a class="line" href="class_qwt_spline_c1.html#a33140db5071e38ef20d09de29414a13b"> 968</a></span>&#160;<a class="code" href="class_qwt_spline_c1.html#a33140db5071e38ef20d09de29414a13b">QwtSplineC1::~QwtSplineC1</a>()</div>
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160;{</div>
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;}</div>
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; </div>
<div class="line"><a name="l00979"></a><span class="lineno"><a class="line" href="class_qwt_spline_c1.html#a4befa20c7cc5bed3f3f14d52ff639f48"> 979</a></span>&#160;<span class="keywordtype">double</span> <a class="code" href="class_qwt_spline_c1.html#a4befa20c7cc5bed3f3f14d52ff639f48">QwtSplineC1::slopeAtBeginning</a>( <span class="keyword">const</span> QPolygonF&amp; points, <span class="keywordtype">double</span> slopeNext )<span class="keyword"> const</span></div>
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <span class="keywordflow">if</span> ( points.size() &lt; 2 )</div>
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="keywordflow">return</span> 0.0;</div>
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; </div>
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <span class="keywordflow">return</span> QwtSplineC1P::slopeBoundary(</div>
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; <a class="code" href="class_qwt_spline.html#a77de5f694c70a7c0b34a02c04093fcee">boundaryCondition</a>( <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa0efcdb6fbf1e583097ec297b43f26024">QwtSpline::AtBeginning</a> ),</div>
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <a class="code" href="class_qwt_spline.html#a3a51db25eb5f3e4716fe172ae3ca35ec">boundaryValue</a>( <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa0efcdb6fbf1e583097ec297b43f26024">QwtSpline::AtBeginning</a> ),</div>
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; points[0], points[1], slopeNext );</div>
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;}</div>
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; </div>
<div class="line"><a name="l00997"></a><span class="lineno"><a class="line" href="class_qwt_spline_c1.html#a9fed720ae4d5d4e6ea6c8e3727587e5e"> 997</a></span>&#160;<span class="keywordtype">double</span> <a class="code" href="class_qwt_spline_c1.html#a9fed720ae4d5d4e6ea6c8e3727587e5e">QwtSplineC1::slopeAtEnd</a>( <span class="keyword">const</span> QPolygonF&amp; points, <span class="keywordtype">double</span> slopeBefore )<span class="keyword"> const</span></div>
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> n = points.size();</div>
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; </div>
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <span class="keyword">const</span> QPointF p1( points[n - 1].x(), -points[n - 1].y() );</div>
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; <span class="keyword">const</span> QPointF p2( points[n - 2].x(), -points[n - 2].y() );</div>
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; </div>
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> condition = <a class="code" href="class_qwt_spline.html#a77de5f694c70a7c0b34a02c04093fcee">boundaryCondition</a>( <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa633399daff8a04d92e61ca776e878e55">QwtSpline::AtEnd</a> );</div>
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; </div>
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; <span class="keywordtype">double</span> value = <a class="code" href="class_qwt_spline.html#a3a51db25eb5f3e4716fe172ae3ca35ec">boundaryValue</a>( <a class="code" href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa633399daff8a04d92e61ca776e878e55">QwtSpline::AtEnd</a> );</div>
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; <span class="keywordflow">if</span> ( condition != <a class="code" href="class_qwt_spline.html#af2195032fa62c2b9fe74dc4d44b636cba6ad4241cc59f456d77eb70b289e5782a">QwtSpline::LinearRunout</a> )</div>
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; {</div>
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; <span class="comment">// beside LinearRunout the boundaryValue is a slope or curvature</span></div>
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="comment">// and needs to be inverted too</span></div>
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; value = -value;</div>
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; }</div>
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; </div>
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span> slope = QwtSplineC1P::slopeBoundary( condition, value, p1, p2, -slopeBefore );</div>
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <span class="keywordflow">return</span> -slope;</div>
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;}</div>
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; </div>
<div class="line"><a name="l01043"></a><span class="lineno"><a class="line" href="class_qwt_spline_c1.html#a79a63604fbbdc82dc2d39ecc4e32df80"> 1043</a></span>&#160;QPainterPath <a class="code" href="class_qwt_spline_c1.html#a79a63604fbbdc82dc2d39ecc4e32df80">QwtSplineC1::painterPath</a>( <span class="keyword">const</span> QPolygonF&amp; points )<span class="keyword"> const</span></div>
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> n = points.size();</div>
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <span class="keywordflow">if</span> ( n &lt;= 2 )</div>
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline_interpolating.html#ae9eb4c8b6c5257a44f918c30d36860e4">QwtSplineInterpolating::painterPath</a>( points );</div>
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; </div>
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; <span class="keyword">using namespace </span>QwtSplineC1P;</div>
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; </div>
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; PathStore store;</div>
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; <span class="keywordflow">switch</span>( <a class="code" href="class_qwt_spline.html#a6aa6f2c0b844e6a27284aa474c6bca7b">parametrization</a>()-&gt;type() )</div>
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; {</div>
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; <span class="keywordflow">case</span> <a class="code" href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48da3eaba94a692d4e23a0714db3288a6a24">QwtSplineParametrization::ParameterX</a>:</div>
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; {</div>
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; store = qwtSplineC1PathParamX&lt; PathStore &gt;( <span class="keyword">this</span>, points );</div>
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; }</div>
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; <span class="keywordflow">case</span> <a class="code" href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48da30edbcab5070b1f54d7e6d2486cb7ccf">QwtSplineParametrization::ParameterY</a>:</div>
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; {</div>
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; store = qwtSplineC1PathParamY&lt; PathStore &gt;( <span class="keyword">this</span>, points );</div>
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; }</div>
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; <span class="keywordflow">case</span> <a class="code" href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48daa34d8f54e326e8964c6131287dd3e478">QwtSplineParametrization::ParameterUniform</a>:</div>
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; {</div>
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; store = qwtSplineC1PathParametric&lt; PathStore &gt;(</div>
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; <span class="keyword">this</span>, points, paramUniform() );</div>
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; }</div>
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; <span class="keywordflow">case</span> <a class="code" href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48da3127bf721ca3be4e279f9478ea12270c">QwtSplineParametrization::ParameterCentripetal</a>:</div>
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; {</div>
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; store = qwtSplineC1PathParametric&lt; PathStore &gt;(</div>
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="keyword">this</span>, points, paramCentripetal() );</div>
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; }</div>
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; <span class="keywordflow">case</span> <a class="code" href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48daf328ec1c9518bc5aaa9f648731f77ffd">QwtSplineParametrization::ParameterChordal</a>:</div>
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; {</div>
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; store = qwtSplineC1PathParametric&lt; PathStore &gt;(</div>
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; <span class="keyword">this</span>, points, paramChordal() );</div>
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; }</div>
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; {</div>
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; store = qwtSplineC1PathParametric&lt; PathStore &gt;(</div>
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="keyword">this</span>, points, param( <a class="code" href="class_qwt_spline.html#a6aa6f2c0b844e6a27284aa474c6bca7b">parametrization</a>() ) );</div>
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; }</div>
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; }</div>
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; </div>
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <span class="keywordflow">return</span> store.path;</div>
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;}</div>
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; </div>
<div class="line"><a name="l01101"></a><span class="lineno"><a class="line" href="class_qwt_spline_c1.html#a95bd3ff76fa0975f07b2351f4194e60e"> 1101</a></span>&#160;<a class="code" href="class_q_vector.html">QVector&lt; QLineF &gt;</a> <a class="code" href="class_qwt_spline_c1.html#a95bd3ff76fa0975f07b2351f4194e60e">QwtSplineC1::bezierControlLines</a>( <span class="keyword">const</span> QPolygonF&amp; points )<span class="keyword"> const</span></div>
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; <span class="keyword">using namespace </span>QwtSplineC1P;</div>
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; </div>
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> n = points.size();</div>
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <span class="keywordflow">if</span> ( n &lt;= 2 )</div>
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_q_vector.html">QVector&lt; QLineF &gt;</a>();</div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; </div>
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; ControlPointsStore store;</div>
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; <span class="keywordflow">switch</span>( <a class="code" href="class_qwt_spline.html#a6aa6f2c0b844e6a27284aa474c6bca7b">parametrization</a>()-&gt;type() )</div>
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; {</div>
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <span class="keywordflow">case</span> <a class="code" href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48da3eaba94a692d4e23a0714db3288a6a24">QwtSplineParametrization::ParameterX</a>:</div>
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; {</div>
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; store = qwtSplineC1PathParamX&lt; ControlPointsStore &gt;( <span class="keyword">this</span>, points );</div>
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; }</div>
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; <span class="keywordflow">case</span> <a class="code" href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48da30edbcab5070b1f54d7e6d2486cb7ccf">QwtSplineParametrization::ParameterY</a>:</div>
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; {</div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; store = qwtSplineC1PathParamY&lt; ControlPointsStore &gt;( <span class="keyword">this</span>, points );</div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; }</div>
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="keywordflow">case</span> <a class="code" href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48daa34d8f54e326e8964c6131287dd3e478">QwtSplineParametrization::ParameterUniform</a>:</div>
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; {</div>
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; store = qwtSplineC1PathParametric&lt; ControlPointsStore &gt;(</div>
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="keyword">this</span>, points, paramUniform() );</div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; }</div>
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; <span class="keywordflow">case</span> <a class="code" href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48da3127bf721ca3be4e279f9478ea12270c">QwtSplineParametrization::ParameterCentripetal</a>:</div>
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; {</div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; store = qwtSplineC1PathParametric&lt; ControlPointsStore &gt;(</div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; <span class="keyword">this</span>, points, paramCentripetal() );</div>
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; }</div>
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keywordflow">case</span> <a class="code" href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48daf328ec1c9518bc5aaa9f648731f77ffd">QwtSplineParametrization::ParameterChordal</a>:</div>
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; {</div>
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; store = qwtSplineC1PathParametric&lt; ControlPointsStore &gt;(</div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; <span class="keyword">this</span>, points, paramChordal() );</div>
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; }</div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; {</div>
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; store = qwtSplineC1PathParametric&lt; ControlPointsStore &gt;(</div>
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <span class="keyword">this</span>, points, param( <a class="code" href="class_qwt_spline.html#a6aa6f2c0b844e6a27284aa474c6bca7b">parametrization</a>() ) );</div>
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; }</div>
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; }</div>
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; </div>
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; <span class="keywordflow">return</span> store.controlPoints;</div>
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;}</div>
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; </div>
<div class="line"><a name="l01167"></a><span class="lineno"><a class="line" href="class_qwt_spline_c1.html#a900ac5247f71ed344a46326c6064ec6b"> 1167</a></span>&#160;QPolygonF <a class="code" href="class_qwt_spline_c1.html#a900ac5247f71ed344a46326c6064ec6b">QwtSplineC1::equidistantPolygon</a>( <span class="keyword">const</span> QPolygonF&amp; points,</div>
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; <span class="keywordtype">double</span> distance, <span class="keywordtype">bool</span> withNodes )<span class="keyword"> const</span></div>
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_spline.html#a6aa6f2c0b844e6a27284aa474c6bca7b">parametrization</a>()-&gt;type() == <a class="code" href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48da3eaba94a692d4e23a0714db3288a6a24">QwtSplineParametrization::ParameterX</a> )</div>
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; {</div>
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; <span class="keywordflow">if</span> ( points.size() &gt; 2 )</div>
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; {</div>
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; <span class="keyword">const</span> <a class="code" href="class_q_vector.html">QVector&lt; double &gt;</a> m = <a class="code" href="class_qwt_spline_c1.html#a20caae8d9308f92a49da94315cd46537">slopes</a>( points );</div>
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; <span class="keywordflow">if</span> ( m.size() != points.size() )</div>
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <span class="keywordflow">return</span> QPolygonF();</div>
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; </div>
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; <span class="keywordflow">return</span> qwtPolygonParametric&lt; QwtSplinePolynomial::fromSlopes &gt;(</div>
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; distance, points, m, withNodes );</div>
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; }</div>
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; }</div>
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; </div>
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline_interpolating.html#a5a01fc8e0cd91a84881befe1caeec8db">QwtSplineInterpolating::equidistantPolygon</a>( points, distance, withNodes );</div>
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;}</div>
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; </div>
<div class="line"><a name="l01201"></a><span class="lineno"><a class="line" href="class_qwt_spline_c1.html#ae5e92c78b70b85393533c752ac3bd543"> 1201</a></span>&#160;<a class="code" href="class_q_vector.html">QVector&lt; QwtSplinePolynomial &gt;</a> <a class="code" href="class_qwt_spline_c1.html#ae5e92c78b70b85393533c752ac3bd543">QwtSplineC1::polynomials</a>(</div>
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; <span class="keyword">const</span> QPolygonF&amp; points )<span class="keyword"> const</span></div>
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; <a class="code" href="class_q_vector.html">QVector&lt; QwtSplinePolynomial &gt;</a> <a class="code" href="class_qwt_spline_c1.html#ae5e92c78b70b85393533c752ac3bd543">polynomials</a>;</div>
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; </div>
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; <span class="keyword">const</span> <a class="code" href="class_q_vector.html">QVector&lt; double &gt;</a> m = <a class="code" href="class_qwt_spline_c1.html#a20caae8d9308f92a49da94315cd46537">slopes</a>( points );</div>
<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; <span class="keywordflow">if</span> ( m.size() &lt; 2 )</div>
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline_c1.html#ae5e92c78b70b85393533c752ac3bd543">polynomials</a>;</div>
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; </div>
<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; <a class="code" href="class_qwt_spline_c1.html#ae5e92c78b70b85393533c752ac3bd543">polynomials</a>.reserve( m.size() - 1 );</div>
<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 1; i &lt; m.size(); i++ )</div>
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; {</div>
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; <a class="code" href="class_qwt_spline_c1.html#ae5e92c78b70b85393533c752ac3bd543">polynomials</a> += <a class="code" href="class_qwt_spline_polynomial.html#a2f7c84dbfe6354d771d15fa95934ea07">QwtSplinePolynomial::fromSlopes</a>(</div>
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; points[i - 1], m[i - 1], points[i], m[i] );</div>
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; }</div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; </div>
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline_c1.html#ae5e92c78b70b85393533c752ac3bd543">polynomials</a>;</div>
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;}</div>
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; </div>
<div class="line"><a name="l01228"></a><span class="lineno"><a class="line" href="class_qwt_spline_c2.html#a5157941fdf2d1328ba20724804877809"> 1228</a></span>&#160;<a class="code" href="class_qwt_spline_c2.html#a5157941fdf2d1328ba20724804877809">QwtSplineC2::QwtSplineC2</a>()</div>
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;{</div>
<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;}</div>
<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; </div>
<div class="line"><a name="l01233"></a><span class="lineno"><a class="line" href="class_qwt_spline_c2.html#ad366da5e045494476e683534b8e28cea"> 1233</a></span>&#160;<a class="code" href="class_qwt_spline_c2.html#ad366da5e045494476e683534b8e28cea">QwtSplineC2::~QwtSplineC2</a>()</div>
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;{</div>
<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;}</div>
<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; </div>
<div class="line"><a name="l01249"></a><span class="lineno"><a class="line" href="class_qwt_spline_c2.html#aff09e99a775253f1c37546f5d3a82428"> 1249</a></span>&#160;QPainterPath <a class="code" href="class_qwt_spline_c2.html#aff09e99a775253f1c37546f5d3a82428">QwtSplineC2::painterPath</a>( <span class="keyword">const</span> QPolygonF&amp; points )<span class="keyword"> const</span></div>
<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; <span class="comment">// could be implemented from curvatures without the extra</span></div>
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; <span class="comment">// loop for calculating the slopes vector. TODO ...</span></div>
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; </div>
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline_c1.html#a79a63604fbbdc82dc2d39ecc4e32df80">QwtSplineC1::painterPath</a>( points );</div>
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;}</div>
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; </div>
<div class="line"><a name="l01270"></a><span class="lineno"><a class="line" href="class_qwt_spline_c2.html#aa909f7c297d01a8381d4a58ae6f847be"> 1270</a></span>&#160;<a class="code" href="class_q_vector.html">QVector&lt; QLineF &gt;</a> <a class="code" href="class_qwt_spline_c2.html#aa909f7c297d01a8381d4a58ae6f847be">QwtSplineC2::bezierControlLines</a>( <span class="keyword">const</span> QPolygonF&amp; points )<span class="keyword"> const</span></div>
<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; <span class="comment">// could be implemented from curvatures without the extra</span></div>
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; <span class="comment">// loop for calculating the slopes vector. TODO ...</span></div>
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; </div>
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline_c1.html#a95bd3ff76fa0975f07b2351f4194e60e">QwtSplineC1::bezierControlLines</a>( points );</div>
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;}</div>
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; </div>
<div class="line"><a name="l01295"></a><span class="lineno"><a class="line" href="class_qwt_spline_c2.html#a02387ad1232ab77881caf710edcc7eca"> 1295</a></span>&#160;QPolygonF <a class="code" href="class_qwt_spline_c2.html#a02387ad1232ab77881caf710edcc7eca">QwtSplineC2::equidistantPolygon</a>( <span class="keyword">const</span> QPolygonF&amp; points,</div>
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; <span class="keywordtype">double</span> distance, <span class="keywordtype">bool</span> withNodes )<span class="keyword"> const</span></div>
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_spline.html#a6aa6f2c0b844e6a27284aa474c6bca7b">parametrization</a>()-&gt;type() == <a class="code" href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48da3eaba94a692d4e23a0714db3288a6a24">QwtSplineParametrization::ParameterX</a> )</div>
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; {</div>
<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; <span class="keywordflow">if</span> ( points.size() &gt; 2 )</div>
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; {</div>
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; <span class="keyword">const</span> <a class="code" href="class_q_vector.html">QVector&lt; double &gt;</a> cv = curvatures( points );</div>
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; <span class="keywordflow">if</span> ( cv.size() != points.size() )</div>
<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; <span class="keywordflow">return</span> QPolygonF();</div>
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; </div>
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; <span class="keywordflow">return</span> qwtPolygonParametric&lt; QwtSplinePolynomial::fromCurvatures &gt;(</div>
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; distance, points, cv, withNodes );</div>
<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; }</div>
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; }</div>
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; </div>
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline_interpolating.html#a5a01fc8e0cd91a84881befe1caeec8db">QwtSplineInterpolating::equidistantPolygon</a>( points, distance, withNodes );</div>
<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;}</div>
<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; </div>
<div class="line"><a name="l01339"></a><span class="lineno"><a class="line" href="class_qwt_spline_c2.html#a22d88546b8dff5b3f7efdef656d9f617"> 1339</a></span>&#160;<a class="code" href="class_q_vector.html">QVector&lt; double &gt;</a> <a class="code" href="class_qwt_spline_c2.html#a22d88546b8dff5b3f7efdef656d9f617">QwtSplineC2::slopes</a>( <span class="keyword">const</span> QPolygonF&amp; points )<span class="keyword"> const</span></div>
<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; <span class="keyword">const</span> <a class="code" href="class_q_vector.html">QVector&lt; double &gt;</a> curvatures = this-&gt;curvatures( points );</div>
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; <span class="keywordflow">if</span> ( curvatures.size() &lt; 2 )</div>
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_q_vector.html">QVector&lt; double &gt;</a>();</div>
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; </div>
<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; <a class="code" href="class_q_vector.html">QVector&lt; double &gt;</a> <a class="code" href="class_qwt_spline_c1.html#a20caae8d9308f92a49da94315cd46537">slopes</a>( curvatures.size() );</div>
<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160; </div>
<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span>* cv = curvatures.constData();</div>
<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; <span class="keywordtype">double</span>* m = <a class="code" href="class_qwt_spline_c1.html#a20caae8d9308f92a49da94315cd46537">slopes</a>.data();</div>
<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; </div>
<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> n = points.size();</div>
<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; <span class="keyword">const</span> QPointF* p = points.constData();</div>
<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; </div>
<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; <a class="code" href="class_qwt_spline_polynomial.html">QwtSplinePolynomial</a> polynomial;</div>
<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; </div>
<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i &lt; n - 1; i++ )</div>
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; {</div>
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; polynomial = <a class="code" href="class_qwt_spline_polynomial.html#a88432efffb0b03c266f8673e0d58c36e">QwtSplinePolynomial::fromCurvatures</a>( p[i], cv[i], p[i + 1], cv[i + 1] );</div>
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; m[i] = polynomial.<a class="code" href="class_qwt_spline_polynomial.html#ab7a4dd72809be3e6648bafcf6871dd32">c1</a>;</div>
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; }</div>
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; </div>
<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; m[n - 1] = polynomial.<a class="code" href="class_qwt_spline_polynomial.html#a136975ae7191fd91b5b9ef5297b36299">slopeAt</a>( p[n - 1].x() - p[n - 2].x() );</div>
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; </div>
<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline_c1.html#a20caae8d9308f92a49da94315cd46537">slopes</a>;</div>
<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;}</div>
<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; </div>
<div class="line"><a name="l01381"></a><span class="lineno"><a class="line" href="class_qwt_spline_c2.html#ab7502fe760f6c98b46fe9bd9fc24813b"> 1381</a></span>&#160;<a class="code" href="class_q_vector.html">QVector&lt; QwtSplinePolynomial &gt;</a> <a class="code" href="class_qwt_spline_c2.html#ab7502fe760f6c98b46fe9bd9fc24813b">QwtSplineC2::polynomials</a>( <span class="keyword">const</span> QPolygonF&amp; points )<span class="keyword"> const</span></div>
<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;<span class="keyword"></span>{</div>
<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; <a class="code" href="class_q_vector.html">QVector&lt; QwtSplinePolynomial &gt;</a> <a class="code" href="class_qwt_spline_c1.html#ae5e92c78b70b85393533c752ac3bd543">polynomials</a>;</div>
<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; </div>
<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; <span class="keyword">const</span> <a class="code" href="class_q_vector.html">QVector&lt; double &gt;</a> curvatures = this-&gt;curvatures( points );</div>
<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; <span class="keywordflow">if</span> ( curvatures.size() &lt; 2 )</div>
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline_c1.html#ae5e92c78b70b85393533c752ac3bd543">polynomials</a>;</div>
<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; </div>
<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; <span class="keyword">const</span> QPointF* p = points.constData();</div>
<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; <span class="keyword">const</span> <span class="keywordtype">double</span>* cv = curvatures.constData();</div>
<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> n = curvatures.size();</div>
<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; <a class="code" href="class_qwt_spline_c1.html#ae5e92c78b70b85393533c752ac3bd543">polynomials</a>.reserve( n - 1 );</div>
<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; </div>
<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 1; i &lt; n; i++ )</div>
<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; {</div>
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160; <a class="code" href="class_qwt_spline_c1.html#ae5e92c78b70b85393533c752ac3bd543">polynomials</a> += <a class="code" href="class_qwt_spline_polynomial.html#a88432efffb0b03c266f8673e0d58c36e">QwtSplinePolynomial::fromCurvatures</a>(</div>
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160; p[i - 1], cv[i - 1], p[i], cv[i] );</div>
<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; }</div>
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; </div>
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_qwt_spline_c1.html#ae5e92c78b70b85393533c752ac3bd543">polynomials</a>;</div>
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;}</div>
<div class="ttc" id="aclass_q_vector_html"><div class="ttname"><a href="class_q_vector.html">QVector&lt; QLineF &gt;</a></div></div>
<div class="ttc" id="aclass_qwt_bezier_html"><div class="ttname"><a href="class_qwt_bezier.html">QwtBezier</a></div><div class="ttdoc">An implementation of the de Casteljaus Algorithm for interpolating Bézier curves.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__bezier_8h_source.html#l00029">qwt_bezier.h:30</a></div></div>
<div class="ttc" id="aclass_qwt_bezier_html_a1e67390b7109a819d29b043418bcb1b5"><div class="ttname"><a href="class_qwt_bezier.html#a1e67390b7109a819d29b043418bcb1b5">QwtBezier::appendToPolygon</a></div><div class="ttdeci">void appendToPolygon(const QPointF &amp;p1, const QPointF &amp;cp1, const QPointF &amp;cp2, const QPointF &amp;p2, QPolygonF &amp;polygon) const</div><div class="ttdoc">Interpolate a Bézier curve by a polygon.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__bezier_8cpp_source.html#l00186">qwt_bezier.cpp:186</a></div></div>
<div class="ttc" id="aclass_qwt_bezier_html_a962c356b89fb7fd2343091fed1569530"><div class="ttname"><a href="class_qwt_bezier.html#a962c356b89fb7fd2343091fed1569530">QwtBezier::pointAt</a></div><div class="ttdeci">static QPointF pointAt(const QPointF &amp;p1, const QPointF &amp;cp1, const QPointF &amp;cp2, const QPointF &amp;p2, double t)</div><div class="ttdef"><b>Definition:</b> <a href="qwt__bezier_8cpp_source.html#l00239">qwt_bezier.cpp:239</a></div></div>
<div class="ttc" id="aclass_qwt_spline_c1_html"><div class="ttname"><a href="class_qwt_spline_c1.html">QwtSplineC1</a></div><div class="ttdoc">Base class for spline interpolations providing a first order parametric continuity ( C1 ) between adj...</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8h_source.html#l00235">qwt_spline.h:236</a></div></div>
<div class="ttc" id="aclass_qwt_spline_c1_html_a20caae8d9308f92a49da94315cd46537"><div class="ttname"><a href="class_qwt_spline_c1.html#a20caae8d9308f92a49da94315cd46537">QwtSplineC1::slopes</a></div><div class="ttdeci">virtual QVector&lt; double &gt; slopes(const QPolygonF &amp;) const =0</div><div class="ttdoc">Find the first derivative at the control points.</div></div>
<div class="ttc" id="aclass_qwt_spline_c1_html_a33140db5071e38ef20d09de29414a13b"><div class="ttname"><a href="class_qwt_spline_c1.html#a33140db5071e38ef20d09de29414a13b">QwtSplineC1::~QwtSplineC1</a></div><div class="ttdeci">virtual ~QwtSplineC1()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00968">qwt_spline.cpp:968</a></div></div>
<div class="ttc" id="aclass_qwt_spline_c1_html_a4924927ec8a3f9dde92692898ccf6cf5"><div class="ttname"><a href="class_qwt_spline_c1.html#a4924927ec8a3f9dde92692898ccf6cf5">QwtSplineC1::QwtSplineC1</a></div><div class="ttdeci">QwtSplineC1()</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00962">qwt_spline.cpp:962</a></div></div>
<div class="ttc" id="aclass_qwt_spline_c1_html_a4befa20c7cc5bed3f3f14d52ff639f48"><div class="ttname"><a href="class_qwt_spline_c1.html#a4befa20c7cc5bed3f3f14d52ff639f48">QwtSplineC1::slopeAtBeginning</a></div><div class="ttdeci">virtual double slopeAtBeginning(const QPolygonF &amp;, double slopeNext) const</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00979">qwt_spline.cpp:979</a></div></div>
<div class="ttc" id="aclass_qwt_spline_c1_html_a79a63604fbbdc82dc2d39ecc4e32df80"><div class="ttname"><a href="class_qwt_spline_c1.html#a79a63604fbbdc82dc2d39ecc4e32df80">QwtSplineC1::painterPath</a></div><div class="ttdeci">virtual QPainterPath painterPath(const QPolygonF &amp;) const override</div><div class="ttdoc">Calculate an interpolated painter path.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l01043">qwt_spline.cpp:1043</a></div></div>
<div class="ttc" id="aclass_qwt_spline_c1_html_a900ac5247f71ed344a46326c6064ec6b"><div class="ttname"><a href="class_qwt_spline_c1.html#a900ac5247f71ed344a46326c6064ec6b">QwtSplineC1::equidistantPolygon</a></div><div class="ttdeci">virtual QPolygonF equidistantPolygon(const QPolygonF &amp;, double distance, bool withNodes) const override</div><div class="ttdoc">Find an interpolated polygon with &quot;equidistant&quot; points.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l01167">qwt_spline.cpp:1167</a></div></div>
<div class="ttc" id="aclass_qwt_spline_c1_html_a95bd3ff76fa0975f07b2351f4194e60e"><div class="ttname"><a href="class_qwt_spline_c1.html#a95bd3ff76fa0975f07b2351f4194e60e">QwtSplineC1::bezierControlLines</a></div><div class="ttdeci">virtual QVector&lt; QLineF &gt; bezierControlLines(const QPolygonF &amp;) const override</div><div class="ttdoc">Interpolate a curve with Bezier curves.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l01101">qwt_spline.cpp:1101</a></div></div>
<div class="ttc" id="aclass_qwt_spline_c1_html_a9fed720ae4d5d4e6ea6c8e3727587e5e"><div class="ttname"><a href="class_qwt_spline_c1.html#a9fed720ae4d5d4e6ea6c8e3727587e5e">QwtSplineC1::slopeAtEnd</a></div><div class="ttdeci">virtual double slopeAtEnd(const QPolygonF &amp;, double slopeBefore) const</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00997">qwt_spline.cpp:997</a></div></div>
<div class="ttc" id="aclass_qwt_spline_c1_html_ae5e92c78b70b85393533c752ac3bd543"><div class="ttname"><a href="class_qwt_spline_c1.html#ae5e92c78b70b85393533c752ac3bd543">QwtSplineC1::polynomials</a></div><div class="ttdeci">virtual QVector&lt; QwtSplinePolynomial &gt; polynomials(const QPolygonF &amp;) const</div><div class="ttdoc">Calculate the interpolating polynomials for a non parametric spline.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l01201">qwt_spline.cpp:1201</a></div></div>
<div class="ttc" id="aclass_qwt_spline_c2_html_a02387ad1232ab77881caf710edcc7eca"><div class="ttname"><a href="class_qwt_spline_c2.html#a02387ad1232ab77881caf710edcc7eca">QwtSplineC2::equidistantPolygon</a></div><div class="ttdeci">virtual QPolygonF equidistantPolygon(const QPolygonF &amp;, double distance, bool withNodes) const override</div><div class="ttdoc">Find an interpolated polygon with &quot;equidistant&quot; points.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l01295">qwt_spline.cpp:1295</a></div></div>
<div class="ttc" id="aclass_qwt_spline_c2_html_a22d88546b8dff5b3f7efdef656d9f617"><div class="ttname"><a href="class_qwt_spline_c2.html#a22d88546b8dff5b3f7efdef656d9f617">QwtSplineC2::slopes</a></div><div class="ttdeci">virtual QVector&lt; double &gt; slopes(const QPolygonF &amp;) const override</div><div class="ttdoc">Find the first derivative at the control points.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l01339">qwt_spline.cpp:1339</a></div></div>
<div class="ttc" id="aclass_qwt_spline_c2_html_a5157941fdf2d1328ba20724804877809"><div class="ttname"><a href="class_qwt_spline_c2.html#a5157941fdf2d1328ba20724804877809">QwtSplineC2::QwtSplineC2</a></div><div class="ttdeci">QwtSplineC2()</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l01228">qwt_spline.cpp:1228</a></div></div>
<div class="ttc" id="aclass_qwt_spline_c2_html_aa909f7c297d01a8381d4a58ae6f847be"><div class="ttname"><a href="class_qwt_spline_c2.html#aa909f7c297d01a8381d4a58ae6f847be">QwtSplineC2::bezierControlLines</a></div><div class="ttdeci">virtual QVector&lt; QLineF &gt; bezierControlLines(const QPolygonF &amp;) const override</div><div class="ttdoc">Interpolate a curve with Bezier curves.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l01270">qwt_spline.cpp:1270</a></div></div>
<div class="ttc" id="aclass_qwt_spline_c2_html_ab7502fe760f6c98b46fe9bd9fc24813b"><div class="ttname"><a href="class_qwt_spline_c2.html#ab7502fe760f6c98b46fe9bd9fc24813b">QwtSplineC2::polynomials</a></div><div class="ttdeci">virtual QVector&lt; QwtSplinePolynomial &gt; polynomials(const QPolygonF &amp;) const override</div><div class="ttdoc">Calculate the interpolating polynomials for a non parametric spline.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l01381">qwt_spline.cpp:1381</a></div></div>
<div class="ttc" id="aclass_qwt_spline_c2_html_ad366da5e045494476e683534b8e28cea"><div class="ttname"><a href="class_qwt_spline_c2.html#ad366da5e045494476e683534b8e28cea">QwtSplineC2::~QwtSplineC2</a></div><div class="ttdeci">virtual ~QwtSplineC2()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l01233">qwt_spline.cpp:1233</a></div></div>
<div class="ttc" id="aclass_qwt_spline_c2_html_aff09e99a775253f1c37546f5d3a82428"><div class="ttname"><a href="class_qwt_spline_c2.html#aff09e99a775253f1c37546f5d3a82428">QwtSplineC2::painterPath</a></div><div class="ttdeci">virtual QPainterPath painterPath(const QPolygonF &amp;) const override</div><div class="ttdoc">Interpolate a curve with Bezier curves.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l01249">qwt_spline.cpp:1249</a></div></div>
<div class="ttc" id="aclass_qwt_spline_g1_html_a441218078365cb31416fd28501eefa2f"><div class="ttname"><a href="class_qwt_spline_g1.html#a441218078365cb31416fd28501eefa2f">QwtSplineG1::~QwtSplineG1</a></div><div class="ttdeci">virtual ~QwtSplineG1()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00949">qwt_spline.cpp:949</a></div></div>
<div class="ttc" id="aclass_qwt_spline_g1_html_aba43f62873a477b2733d4ced610d038d"><div class="ttname"><a href="class_qwt_spline_g1.html#aba43f62873a477b2733d4ced610d038d">QwtSplineG1::QwtSplineG1</a></div><div class="ttdeci">QwtSplineG1()</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00944">qwt_spline.cpp:944</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html"><div class="ttname"><a href="class_qwt_spline.html">QwtSpline</a></div><div class="ttdoc">Base class for all splines.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8h_source.html#l00057">qwt_spline.h:58</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_a21cca305dad4f1e21437953c4801595a"><div class="ttname"><a href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595a">QwtSpline::BoundaryPosition</a></div><div class="ttdeci">BoundaryPosition</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8h_source.html#l00099">qwt_spline.h:100</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_a21cca305dad4f1e21437953c4801595aa0efcdb6fbf1e583097ec297b43f26024"><div class="ttname"><a href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa0efcdb6fbf1e583097ec297b43f26024">QwtSpline::AtBeginning</a></div><div class="ttdeci">@ AtBeginning</div><div class="ttdoc">the condition is at the beginning of the polynomial</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8h_source.html#l00102">qwt_spline.h:102</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_a21cca305dad4f1e21437953c4801595aa633399daff8a04d92e61ca776e878e55"><div class="ttname"><a href="class_qwt_spline.html#a21cca305dad4f1e21437953c4801595aa633399daff8a04d92e61ca776e878e55">QwtSpline::AtEnd</a></div><div class="ttdeci">@ AtEnd</div><div class="ttdoc">the condition is at the end of the polynomial</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8h_source.html#l00106">qwt_spline.h:105</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_a34c5ddda039f15ec71de0523d9753b64"><div class="ttname"><a href="class_qwt_spline.html#a34c5ddda039f15ec71de0523d9753b64">QwtSpline::painterPath</a></div><div class="ttdeci">virtual QPainterPath painterPath(const QPolygonF &amp;) const =0</div></div>
<div class="ttc" id="aclass_qwt_spline_html_a3a51db25eb5f3e4716fe172ae3ca35ec"><div class="ttname"><a href="class_qwt_spline.html#a3a51db25eb5f3e4716fe172ae3ca35ec">QwtSpline::boundaryValue</a></div><div class="ttdeci">double boundaryValue(BoundaryPosition) const</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00682">qwt_spline.cpp:682</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_a48ddb960940cd1bd6d6707dd0ebb8785"><div class="ttname"><a href="class_qwt_spline.html#a48ddb960940cd1bd6d6707dd0ebb8785">QwtSpline::setBoundaryType</a></div><div class="ttdeci">void setBoundaryType(BoundaryType)</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00617">qwt_spline.cpp:617</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_a5d1e0ba35c637a88c66d9e4cbaf36e93"><div class="ttname"><a href="class_qwt_spline.html#a5d1e0ba35c637a88c66d9e4cbaf36e93">QwtSpline::QwtSpline</a></div><div class="ttdeci">QwtSpline()</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00540">qwt_spline.cpp:540</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_a6306d24451d24f16d30880b9114d3052"><div class="ttname"><a href="class_qwt_spline.html#a6306d24451d24f16d30880b9114d3052">QwtSpline::setBoundaryCondition</a></div><div class="ttdeci">void setBoundaryCondition(BoundaryPosition, int condition)</div><div class="ttdoc">Define the condition for an endpoint of the spline.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00639">qwt_spline.cpp:639</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_a6aa6f2c0b844e6a27284aa474c6bca7b"><div class="ttname"><a href="class_qwt_spline.html#a6aa6f2c0b844e6a27284aa474c6bca7b">QwtSpline::parametrization</a></div><div class="ttdeci">const QwtSplineParametrization * parametrization() const</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00605">qwt_spline.cpp:605</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_a77de5f694c70a7c0b34a02c04093fcee"><div class="ttname"><a href="class_qwt_spline.html#a77de5f694c70a7c0b34a02c04093fcee">QwtSpline::boundaryCondition</a></div><div class="ttdeci">int boundaryCondition(BoundaryPosition) const</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00651">qwt_spline.cpp:651</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_a7f5f43e9e83fd23210ac528802c0496d"><div class="ttname"><a href="class_qwt_spline.html#a7f5f43e9e83fd23210ac528802c0496d">QwtSpline::boundaryType</a></div><div class="ttdeci">BoundaryType boundaryType() const</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00626">qwt_spline.cpp:626</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_a8530fa87bf65a42492014b50614d0595"><div class="ttname"><a href="class_qwt_spline.html#a8530fa87bf65a42492014b50614d0595">QwtSpline::locality</a></div><div class="ttdeci">virtual uint locality() const</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00564">qwt_spline.cpp:564</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_a90805882826469c94fdc871f18261bb6"><div class="ttname"><a href="class_qwt_spline.html#a90805882826469c94fdc871f18261bb6">QwtSpline::~QwtSpline</a></div><div class="ttdeci">virtual ~QwtSpline()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00546">qwt_spline.cpp:546</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_aa2debc778d58c5f53ab757c87f8ac21d"><div class="ttname"><a href="class_qwt_spline.html#aa2debc778d58c5f53ab757c87f8ac21d">QwtSpline::polygon</a></div><div class="ttdeci">virtual QPolygonF polygon(const QPolygonF &amp;, double tolerance) const</div><div class="ttdoc">Interpolate a curve by a polygon.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00496">qwt_spline.cpp:496</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_aa890bace9e318d1bff4fb03ed7d6e9c3"><div class="ttname"><a href="class_qwt_spline.html#aa890bace9e318d1bff4fb03ed7d6e9c3">QwtSpline::setBoundaryConditions</a></div><div class="ttdeci">void setBoundaryConditions(int condition, double valueBegin=0.0, double valueEnd=0.0)</div><div class="ttdoc">Define the condition at the endpoints of a spline.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00700">qwt_spline.cpp:700</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_ac14c58e4301b85732c97a4daaf7a9b8b"><div class="ttname"><a href="class_qwt_spline.html#ac14c58e4301b85732c97a4daaf7a9b8b">QwtSpline::setBoundaryValue</a></div><div class="ttdeci">void setBoundaryValue(BoundaryPosition, double value)</div><div class="ttdoc">Define the boundary value.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00670">qwt_spline.cpp:670</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_ad82b1f33946d2489511f5e697a32b128"><div class="ttname"><a href="class_qwt_spline.html#ad82b1f33946d2489511f5e697a32b128">QwtSpline::BoundaryType</a></div><div class="ttdeci">BoundaryType</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8h_source.html#l00065">qwt_spline.h:66</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_ad82b1f33946d2489511f5e697a32b128a63108a1fe17778b7d9c236efc17774b1"><div class="ttname"><a href="class_qwt_spline.html#ad82b1f33946d2489511f5e697a32b128a63108a1fe17778b7d9c236efc17774b1">QwtSpline::ClosedPolygon</a></div><div class="ttdeci">@ ClosedPolygon</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8h_source.html#l00093">qwt_spline.h:92</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_ad82b1f33946d2489511f5e697a32b128af5bf38b7f712e69c699458cd6dfef711"><div class="ttname"><a href="class_qwt_spline.html#ad82b1f33946d2489511f5e697a32b128af5bf38b7f712e69c699458cd6dfef711">QwtSpline::ConditionalBoundaries</a></div><div class="ttdeci">@ ConditionalBoundaries</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8h_source.html#l00072">qwt_spline.h:72</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_af2195032fa62c2b9fe74dc4d44b636cba43442b0f55b141b857d6c2ab56cd9afe"><div class="ttname"><a href="class_qwt_spline.html#af2195032fa62c2b9fe74dc4d44b636cba43442b0f55b141b857d6c2ab56cd9afe">QwtSpline::Clamped2</a></div><div class="ttdeci">@ Clamped2</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8h_source.html#l00134">qwt_spline.h:134</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_af2195032fa62c2b9fe74dc4d44b636cba6ad4241cc59f456d77eb70b289e5782a"><div class="ttname"><a href="class_qwt_spline.html#af2195032fa62c2b9fe74dc4d44b636cba6ad4241cc59f456d77eb70b289e5782a">QwtSpline::LinearRunout</a></div><div class="ttdeci">@ LinearRunout</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8h_source.html#l00154">qwt_spline.h:153</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_af2195032fa62c2b9fe74dc4d44b636cba897bc245acbf65ee2f1801c779de15b3"><div class="ttname"><a href="class_qwt_spline.html#af2195032fa62c2b9fe74dc4d44b636cba897bc245acbf65ee2f1801c779de15b3">QwtSpline::Clamped3</a></div><div class="ttdeci">@ Clamped3</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8h_source.html#l00143">qwt_spline.h:143</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_af2195032fa62c2b9fe74dc4d44b636cba94d03f64008ad0ed1e2e92bd96414028"><div class="ttname"><a href="class_qwt_spline.html#af2195032fa62c2b9fe74dc4d44b636cba94d03f64008ad0ed1e2e92bd96414028">QwtSpline::Clamped1</a></div><div class="ttdeci">@ Clamped1</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8h_source.html#l00125">qwt_spline.h:125</a></div></div>
<div class="ttc" id="aclass_qwt_spline_html_afb4959b1db04dd021b0a49752b66fac3"><div class="ttname"><a href="class_qwt_spline.html#afb4959b1db04dd021b0a49752b66fac3">QwtSpline::setParametrization</a></div><div class="ttdeci">void setParametrization(int type)</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00576">qwt_spline.cpp:576</a></div></div>
<div class="ttc" id="aclass_qwt_spline_interpolating_html_a1a1e39267da1d9d0f8a1c670777163a4"><div class="ttname"><a href="class_qwt_spline_interpolating.html#a1a1e39267da1d9d0f8a1c670777163a4">QwtSplineInterpolating::~QwtSplineInterpolating</a></div><div class="ttdeci">virtual ~QwtSplineInterpolating()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00716">qwt_spline.cpp:716</a></div></div>
<div class="ttc" id="aclass_qwt_spline_interpolating_html_a5a01fc8e0cd91a84881befe1caeec8db"><div class="ttname"><a href="class_qwt_spline_interpolating.html#a5a01fc8e0cd91a84881befe1caeec8db">QwtSplineInterpolating::equidistantPolygon</a></div><div class="ttdeci">virtual QPolygonF equidistantPolygon(const QPolygonF &amp;, double distance, bool withNodes) const</div><div class="ttdoc">Find an interpolated polygon with &quot;equidistant&quot; points.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00863">qwt_spline.cpp:863</a></div></div>
<div class="ttc" id="aclass_qwt_spline_interpolating_html_a8db950cb52e6f12e51cfcb31e3bccf75"><div class="ttname"><a href="class_qwt_spline_interpolating.html#a8db950cb52e6f12e51cfcb31e3bccf75">QwtSplineInterpolating::bezierControlLines</a></div><div class="ttdeci">virtual QVector&lt; QLineF &gt; bezierControlLines(const QPolygonF &amp;) const =0</div><div class="ttdoc">Interpolate a curve with Bezier curves.</div></div>
<div class="ttc" id="aclass_qwt_spline_interpolating_html_a9f8a93111263da26788c4ae9034411d5"><div class="ttname"><a href="class_qwt_spline_interpolating.html#a9f8a93111263da26788c4ae9034411d5">QwtSplineInterpolating::QwtSplineInterpolating</a></div><div class="ttdeci">QwtSplineInterpolating()</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00711">qwt_spline.cpp:711</a></div></div>
<div class="ttc" id="aclass_qwt_spline_interpolating_html_ab7ae76bbd1a085a267cdd54353ece2c2"><div class="ttname"><a href="class_qwt_spline_interpolating.html#ab7ae76bbd1a085a267cdd54353ece2c2">QwtSplineInterpolating::polygon</a></div><div class="ttdeci">virtual QPolygonF polygon(const QPolygonF &amp;, double tolerance) const override</div><div class="ttdoc">Interpolate a curve by a polygon.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00805">qwt_spline.cpp:805</a></div></div>
<div class="ttc" id="aclass_qwt_spline_interpolating_html_ae9eb4c8b6c5257a44f918c30d36860e4"><div class="ttname"><a href="class_qwt_spline_interpolating.html#ae9eb4c8b6c5257a44f918c30d36860e4">QwtSplineInterpolating::painterPath</a></div><div class="ttdeci">virtual QPainterPath painterPath(const QPolygonF &amp;) const override</div><div class="ttdoc">Interpolate a curve with Bezier curves.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline_8cpp_source.html#l00748">qwt_spline.cpp:748</a></div></div>
<div class="ttc" id="aclass_qwt_spline_parametrization_html"><div class="ttname"><a href="class_qwt_spline_parametrization.html">QwtSplineParametrization</a></div><div class="ttdoc">Curve parametrization used for a spline interpolation.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__parametrization_8h_source.html#l00044">qwt_spline_parametrization.h:45</a></div></div>
<div class="ttc" id="aclass_qwt_spline_parametrization_html_a02659178ea5377ec5e13d71858456200"><div class="ttname"><a href="class_qwt_spline_parametrization.html#a02659178ea5377ec5e13d71858456200">QwtSplineParametrization::valueIncrementChordal</a></div><div class="ttdeci">static double valueIncrementChordal(const QPointF &amp;, const QPointF &amp;)</div><div class="ttdoc">Calculate the ParameterChordal value increment for 2 points.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__parametrization_8h_source.html#l00179">qwt_spline_parametrization.h:179</a></div></div>
<div class="ttc" id="aclass_qwt_spline_parametrization_html_a141e850c0e8da729dada0870041c265b"><div class="ttname"><a href="class_qwt_spline_parametrization.html#a141e850c0e8da729dada0870041c265b">QwtSplineParametrization::valueIncrementCentripetal</a></div><div class="ttdeci">static double valueIncrementCentripetal(const QPointF &amp;, const QPointF &amp;)</div><div class="ttdoc">Calculate the ParameterCentripetal value increment for 2 points.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__parametrization_8h_source.html#l00196">qwt_spline_parametrization.h:196</a></div></div>
<div class="ttc" id="aclass_qwt_spline_parametrization_html_a4ec70cdb3d4c1b53628ef516e93390ec"><div class="ttname"><a href="class_qwt_spline_parametrization.html#a4ec70cdb3d4c1b53628ef516e93390ec">QwtSplineParametrization::valueIncrementUniform</a></div><div class="ttdeci">static double valueIncrementUniform(const QPointF &amp;, const QPointF &amp;)</div><div class="ttdoc">Calculate the ParameterUniform value increment.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__parametrization_8h_source.html#l00162">qwt_spline_parametrization.h:162</a></div></div>
<div class="ttc" id="aclass_qwt_spline_parametrization_html_a5cd58cf9777799bec478ad524baa22f9"><div class="ttname"><a href="class_qwt_spline_parametrization.html#a5cd58cf9777799bec478ad524baa22f9">QwtSplineParametrization::valueIncrement</a></div><div class="ttdeci">virtual double valueIncrement(const QPointF &amp;, const QPointF &amp;) const</div><div class="ttdoc">Calculate the parameter value increment for 2 points.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__parametrization_8cpp_source.html#l00035">qwt_spline_parametrization.cpp:35</a></div></div>
<div class="ttc" id="aclass_qwt_spline_parametrization_html_aa63256420483fa4981452127366cb48da30edbcab5070b1f54d7e6d2486cb7ccf"><div class="ttname"><a href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48da30edbcab5070b1f54d7e6d2486cb7ccf">QwtSplineParametrization::ParameterY</a></div><div class="ttdeci">@ ParameterY</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__parametrization_8h_source.html#l00060">qwt_spline_parametrization.h:60</a></div></div>
<div class="ttc" id="aclass_qwt_spline_parametrization_html_aa63256420483fa4981452127366cb48da3127bf721ca3be4e279f9478ea12270c"><div class="ttname"><a href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48da3127bf721ca3be4e279f9478ea12270c">QwtSplineParametrization::ParameterCentripetal</a></div><div class="ttdeci">@ ParameterCentripetal</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__parametrization_8h_source.html#l00094">qwt_spline_parametrization.h:94</a></div></div>
<div class="ttc" id="aclass_qwt_spline_parametrization_html_aa63256420483fa4981452127366cb48da3eaba94a692d4e23a0714db3288a6a24"><div class="ttname"><a href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48da3eaba94a692d4e23a0714db3288a6a24">QwtSplineParametrization::ParameterX</a></div><div class="ttdeci">@ ParameterX</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__parametrization_8h_source.html#l00054">qwt_spline_parametrization.h:54</a></div></div>
<div class="ttc" id="aclass_qwt_spline_parametrization_html_aa63256420483fa4981452127366cb48daa34d8f54e326e8964c6131287dd3e478"><div class="ttname"><a href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48daa34d8f54e326e8964c6131287dd3e478">QwtSplineParametrization::ParameterUniform</a></div><div class="ttdeci">@ ParameterUniform</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__parametrization_8h_source.html#l00072">qwt_spline_parametrization.h:72</a></div></div>
<div class="ttc" id="aclass_qwt_spline_parametrization_html_aa63256420483fa4981452127366cb48daf328ec1c9518bc5aaa9f648731f77ffd"><div class="ttname"><a href="class_qwt_spline_parametrization.html#aa63256420483fa4981452127366cb48daf328ec1c9518bc5aaa9f648731f77ffd">QwtSplineParametrization::ParameterChordal</a></div><div class="ttdeci">@ ParameterChordal</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__parametrization_8h_source.html#l00082">qwt_spline_parametrization.h:82</a></div></div>
<div class="ttc" id="aclass_qwt_spline_parametrization_html_aacfc92b2d904b9644e1e0f4fc77fd7a2"><div class="ttname"><a href="class_qwt_spline_parametrization.html#aacfc92b2d904b9644e1e0f4fc77fd7a2">QwtSplineParametrization::valueIncrementManhattan</a></div><div class="ttdeci">static double valueIncrementManhattan(const QPointF &amp;, const QPointF &amp;)</div><div class="ttdoc">Calculate the ParameterManhattan value increment for 2 points.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__parametrization_8h_source.html#l00210">qwt_spline_parametrization.h:210</a></div></div>
<div class="ttc" id="aclass_qwt_spline_parametrization_html_ab5014b377c1f5f945cd7062109728d41"><div class="ttname"><a href="class_qwt_spline_parametrization.html#ab5014b377c1f5f945cd7062109728d41">QwtSplineParametrization::valueIncrementY</a></div><div class="ttdeci">static double valueIncrementY(const QPointF &amp;, const QPointF &amp;)</div><div class="ttdoc">Calculate the ParameterY value increment for 2 points.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__parametrization_8h_source.html#l00148">qwt_spline_parametrization.h:148</a></div></div>
<div class="ttc" id="aclass_qwt_spline_polynomial_html"><div class="ttname"><a href="class_qwt_spline_polynomial.html">QwtSplinePolynomial</a></div><div class="ttdoc">A cubic polynomial without constant term.</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__polynomial_8h_source.html#l00030">qwt_spline_polynomial.h:31</a></div></div>
<div class="ttc" id="aclass_qwt_spline_polynomial_html_a136975ae7191fd91b5b9ef5297b36299"><div class="ttname"><a href="class_qwt_spline_polynomial.html#a136975ae7191fd91b5b9ef5297b36299">QwtSplinePolynomial::slopeAt</a></div><div class="ttdeci">double slopeAt(double x) const</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__polynomial_8h_source.html#l00119">qwt_spline_polynomial.h:119</a></div></div>
<div class="ttc" id="aclass_qwt_spline_polynomial_html_a2f7c84dbfe6354d771d15fa95934ea07"><div class="ttname"><a href="class_qwt_spline_polynomial.html#a2f7c84dbfe6354d771d15fa95934ea07">QwtSplinePolynomial::fromSlopes</a></div><div class="ttdeci">static QwtSplinePolynomial fromSlopes(const QPointF &amp;p1, double m1, const QPointF &amp;p2, double m2)</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__polynomial_8h_source.html#l00147">qwt_spline_polynomial.h:147</a></div></div>
<div class="ttc" id="aclass_qwt_spline_polynomial_html_a31aa00624298eb0f7f0796d6d58ab38e"><div class="ttname"><a href="class_qwt_spline_polynomial.html#a31aa00624298eb0f7f0796d6d58ab38e">QwtSplinePolynomial::valueAt</a></div><div class="ttdeci">double valueAt(double x) const</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__polynomial_8h_source.html#l00108">qwt_spline_polynomial.h:108</a></div></div>
<div class="ttc" id="aclass_qwt_spline_polynomial_html_a88432efffb0b03c266f8673e0d58c36e"><div class="ttname"><a href="class_qwt_spline_polynomial.html#a88432efffb0b03c266f8673e0d58c36e">QwtSplinePolynomial::fromCurvatures</a></div><div class="ttdeci">static QwtSplinePolynomial fromCurvatures(const QPointF &amp;p1, double cv1, const QPointF &amp;p2, double cv2)</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__polynomial_8h_source.html#l00185">qwt_spline_polynomial.h:185</a></div></div>
<div class="ttc" id="aclass_qwt_spline_polynomial_html_ab7a4dd72809be3e6648bafcf6871dd32"><div class="ttname"><a href="class_qwt_spline_polynomial.html#ab7a4dd72809be3e6648bafcf6871dd32">QwtSplinePolynomial::c1</a></div><div class="ttdeci">double c1</div><div class="ttdoc">coefficient of the linear summand</div><div class="ttdef"><b>Definition:</b> <a href="qwt__spline__polynomial_8h_source.html#l00064">qwt_spline_polynomial.h:64</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><b>qwt_spline.cpp</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
</ul>
</div>
</body>
</html>