📄 qwt__plot__rasteritem_8cpp-source.html
字号:
<a name="l00145"></a>00145 <span class="keywordflow">if</span> ( alpha < 0 )<a name="l00146"></a>00146 alpha = -1;<a name="l00147"></a>00147 <a name="l00148"></a>00148 <span class="keywordflow">if</span> ( alpha > 255 )<a name="l00149"></a>00149 alpha = 255;<a name="l00150"></a>00150 <a name="l00151"></a>00151 <span class="keywordflow">if</span> ( alpha != d_data->alpha )<a name="l00152"></a>00152 {<a name="l00153"></a>00153 d_data->alpha = alpha;<a name="l00154"></a>00154 <a name="l00155"></a>00155 <a class="code" href="class_qwt_plot_item.html#d956fdbce5b0721abccce6d09fe4d5ce">itemChanged</a>();<a name="l00156"></a>00156 }<a name="l00157"></a>00157 }<a name="l00158"></a>00158 <a name="l00163"></a><a class="code" href="class_qwt_plot_raster_item.html#96b2faa0bc0fe086bff1abe72bcb2016">00163</a> <span class="keywordtype">int</span> <a class="code" href="class_qwt_plot_raster_item.html#96b2faa0bc0fe086bff1abe72bcb2016">QwtPlotRasterItem::alpha</a>()<span class="keyword"> const</span><a name="l00164"></a>00164 <span class="keyword"></span>{<a name="l00165"></a>00165 <span class="keywordflow">return</span> d_data->alpha;<a name="l00166"></a>00166 }<a name="l00167"></a>00167 <a name="l00176"></a><a class="code" href="class_qwt_plot_raster_item.html#31f74199f7e333c2683b0f18289e4c7f">00176</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_raster_item.html#31f74199f7e333c2683b0f18289e4c7f">QwtPlotRasterItem::setCachePolicy</a>(<a name="l00177"></a>00177 <a class="code" href="class_qwt_plot_raster_item.html#94929fc4c31c3dab75ee5adcac2d57b0">QwtPlotRasterItem::CachePolicy</a> policy)<a name="l00178"></a>00178 {<a name="l00179"></a>00179 <span class="keywordflow">if</span> ( d_data->cache.policy != policy )<a name="l00180"></a>00180 {<a name="l00181"></a>00181 d_data->cache.policy = policy;<a name="l00182"></a>00182 <a name="l00183"></a>00183 <a class="code" href="class_qwt_plot_raster_item.html#547ce4d8d031b230226cfbd509ef65b5">invalidateCache</a>();<a name="l00184"></a>00184 <a class="code" href="class_qwt_plot_item.html#d956fdbce5b0721abccce6d09fe4d5ce">itemChanged</a>();<a name="l00185"></a>00185 }<a name="l00186"></a>00186 }<a name="l00187"></a>00187 <a name="l00192"></a><a class="code" href="class_qwt_plot_raster_item.html#c953db5d88084f416b4dbc3ca8a323f3">00192</a> <a class="code" href="class_qwt_plot_raster_item.html#94929fc4c31c3dab75ee5adcac2d57b0">QwtPlotRasterItem::CachePolicy</a> <a class="code" href="class_qwt_plot_raster_item.html#c953db5d88084f416b4dbc3ca8a323f3">QwtPlotRasterItem::cachePolicy</a>()<span class="keyword"> const</span><a name="l00193"></a>00193 <span class="keyword"></span>{<a name="l00194"></a>00194 <span class="keywordflow">return</span> d_data->cache.policy;<a name="l00195"></a>00195 }<a name="l00196"></a>00196 <a name="l00201"></a><a class="code" href="class_qwt_plot_raster_item.html#547ce4d8d031b230226cfbd509ef65b5">00201</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_raster_item.html#547ce4d8d031b230226cfbd509ef65b5">QwtPlotRasterItem::invalidateCache</a>()<a name="l00202"></a>00202 {<a name="l00203"></a>00203 d_data->cache.image = QImage();<a name="l00204"></a>00204 d_data->cache.rect = QwtDoubleRect();<a name="l00205"></a>00205 d_data->cache.size = QSize();<a name="l00206"></a>00206 }<a name="l00207"></a>00207 <a name="l00217"></a><a class="code" href="class_qwt_plot_raster_item.html#610342c1ff21beed110f6454b705368c">00217</a> QSize <a class="code" href="class_qwt_plot_raster_item.html#610342c1ff21beed110f6454b705368c">QwtPlotRasterItem::rasterHint</a>(<span class="keyword">const</span> QwtDoubleRect &)<span class="keyword"> const</span><a name="l00218"></a>00218 <span class="keyword"></span>{<a name="l00219"></a>00219 <span class="keywordflow">return</span> QSize();<a name="l00220"></a>00220 }<a name="l00221"></a>00221 <a name="l00229"></a><a class="code" href="class_qwt_plot_raster_item.html#81b062af415a8df33262f23768fd71ad">00229</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_raster_item.html#81b062af415a8df33262f23768fd71ad">QwtPlotRasterItem::draw</a>(QPainter *painter,<a name="l00230"></a>00230 <span class="keyword">const</span> <a class="code" href="class_qwt_scale_map.html">QwtScaleMap</a> &xMap, <span class="keyword">const</span> <a class="code" href="class_qwt_scale_map.html">QwtScaleMap</a> &yMap,<a name="l00231"></a>00231 <span class="keyword">const</span> QRect &canvasRect)<span class="keyword"> const</span><a name="l00232"></a>00232 <span class="keyword"></span>{<a name="l00233"></a>00233 <span class="keywordflow">if</span> ( canvasRect.isEmpty() || d_data->alpha == 0 )<a name="l00234"></a>00234 <span class="keywordflow">return</span>;<a name="l00235"></a>00235 <a name="l00236"></a>00236 QwtDoubleRect area = <a class="code" href="class_qwt_plot_item.html#913adffa4cb6914f3248b7157b9bbf33">invTransform</a>(xMap, yMap, canvasRect);<a name="l00237"></a>00237 <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_plot_item.html#4c2c1c77421229383b3c43cb777e3bfe">boundingRect</a>().isValid() )<a name="l00238"></a>00238 area &= <a class="code" href="class_qwt_plot_item.html#4c2c1c77421229383b3c43cb777e3bfe">boundingRect</a>();<a name="l00239"></a>00239 <a name="l00240"></a>00240 <span class="keyword">const</span> QRect <a class="code" href="class_qwt_plot_item.html#97559cef0e65e59c48ca9bd3e7953b04">paintRect</a> = <a class="code" href="class_qwt_plot_item.html#ce79adb7c901ef5d729dba35265096c2">transform</a>(xMap, yMap, area);<a name="l00241"></a>00241 <span class="keywordflow">if</span> ( !paintRect.isValid() )<a name="l00242"></a>00242 <span class="keywordflow">return</span>;<a name="l00243"></a>00243 <a name="l00244"></a>00244 QImage image;<a name="l00245"></a>00245 <a name="l00246"></a>00246 <span class="keywordtype">bool</span> doCache = <span class="keyword">true</span>;<a name="l00247"></a>00247 <span class="keywordflow">if</span> ( painter->device()->devType() == QInternal::Printer <a name="l00248"></a>00248 || painter->device()->devType() == QInternal::Picture )<a name="l00249"></a>00249 {<a name="l00250"></a>00250 doCache = <span class="keyword">false</span>;<a name="l00251"></a>00251 }<a name="l00252"></a>00252 <a name="l00253"></a>00253 <span class="keywordflow">if</span> ( !doCache || d_data->cache.policy == NoCache )<a name="l00254"></a>00254 {<a name="l00255"></a>00255 image = renderImage(xMap, yMap, area);<a name="l00256"></a>00256 <span class="keywordflow">if</span> ( d_data->alpha >= 0 && d_data->alpha < 255 )<a name="l00257"></a>00257 image = toRgba(image, d_data->alpha);<a name="l00258"></a>00258 <a name="l00259"></a>00259 }<a name="l00260"></a>00260 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( d_data->cache.policy == PaintCache )<a name="l00261"></a>00261 {<a name="l00262"></a>00262 <span class="keywordflow">if</span> ( d_data->cache.image.isNull() || d_data->cache.rect != area<a name="l00263"></a>00263 || d_data->cache.size != paintRect.size() )<a name="l00264"></a>00264 {<a name="l00265"></a>00265 d_data->cache.image = renderImage(xMap, yMap, area);<a name="l00266"></a>00266 d_data->cache.rect = area;<a name="l00267"></a>00267 d_data->cache.size = paintRect.size();<a name="l00268"></a>00268 }<a name="l00269"></a>00269 <a name="l00270"></a>00270 image = d_data->cache.image;<a name="l00271"></a>00271 <span class="keywordflow">if</span> ( d_data->alpha >= 0 && d_data->alpha < 255 )<a name="l00272"></a>00272 image = toRgba(image, d_data->alpha);<a name="l00273"></a>00273 }<a name="l00274"></a>00274 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( d_data->cache.policy == ScreenCache )<a name="l00275"></a>00275 {<a name="l00276"></a>00276 <span class="keyword">const</span> QSize screenSize =<a name="l00277"></a>00277 QApplication::desktop()->screenGeometry().size();<a name="l00278"></a>00278 <a name="l00279"></a>00279 <span class="keywordflow">if</span> ( paintRect.width() > screenSize.width() ||<a name="l00280"></a>00280 paintRect.height() > screenSize.height() )<a name="l00281"></a>00281 {<a name="l00282"></a>00282 image = renderImage(xMap, yMap, area);<a name="l00283"></a>00283 }<a name="l00284"></a>00284 <span class="keywordflow">else</span><a name="l00285"></a>00285 {<a name="l00286"></a>00286 <span class="keywordflow">if</span> ( d_data->cache.image.isNull() || d_data->cache.rect != area )<a name="l00287"></a>00287 {<a name="l00288"></a>00288 <a class="code" href="class_qwt_scale_map.html">QwtScaleMap</a> cacheXMap = xMap;<a name="l00289"></a>00289 cacheXMap.setPaintInterval( 0, screenSize.width());<a name="l00290"></a>00290 <a name="l00291"></a>00291 <a class="code" href="class_qwt_scale_map.html">QwtScaleMap</a> cacheYMap = yMap;<a name="l00292"></a>00292 cacheYMap.<a class="code" href="class_qwt_scale_map.html#a9a63a0b2e4ff81b1df23d9f968cd5b8">setPaintInterval</a>(screenSize.height(), 0);<a name="l00293"></a>00293 <a name="l00294"></a>00294 d_data->cache.image = renderImage(<a name="l00295"></a>00295 cacheXMap, cacheYMap, area);<a name="l00296"></a>00296 d_data->cache.rect = area;<a name="l00297"></a>00297 d_data->cache.size = paintRect.size();<a name="l00298"></a>00298 }<a name="l00299"></a>00299 <a name="l00300"></a>00300 image = d_data->cache.image;<a name="l00301"></a>00301 }<a name="l00302"></a>00302 image = toRgba(image, d_data->alpha);<a name="l00303"></a>00303 }<a name="l00304"></a>00304 <a name="l00305"></a>00305 painter->drawImage(paintRect, image);<a name="l00306"></a>00306 }</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Feb 26 21:22:38 2007 for Qwt User's Guide by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -