<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 10.00.9200.16635">
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2 face=Arial>Hi Adrian,</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>another issue.</FONT></DIV>
<DIV><FONT size=2 face=Arial>If the image file referenced by ground overlay kml 
file is not present,</FONT></DIV>
<DIV><FONT size=2 face=Arial>we are ending up in a high time consuming loop 
in MergedLayerDecorator::Priivate::renderGroundOverlays(...)</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>I made this modification:</FONT></DIV>
<DIV><FONT size=2>
<P></FONT><FONT color=#0000ff size=2><FONT color=#0000ff 
size=2>case</FONT></FONT><FONT size=2> 
GeoSceneTiled::Mercator:<BR>    latTop = gd( ( radius - 
tileId.y() ) / radius * M_PI ) * RAD2DEG; <BR>    latBot = gd( ( 
radius - tileId.y() - 1 ) / radius * M_PI ) * RAD2DEG; <FONT 
color=#0000ff><BR></FONT></FONT><FONT color=#0000ff size=2><FONT color=#0000ff 
size=2>break</FONT></FONT><FONT size=2>;<BR>}</P>
<P></FONT><FONT color=#008000 size=2><FONT color=#008000 size=2>/*enz - collect 
valid overlays in temp list */<BR></FONT></FONT><FONT 
size=2>QList<</FONT><FONT color=#0000ff size=2><FONT color=#0000ff 
size=2>const</FONT></FONT><FONT size=2> GeoDataGroundOverlay *> 
groundOverlays;<BR></FONT><FONT color=#0000ff size=2><FONT color=#0000ff 
size=2>for</FONT></FONT><FONT size=2> ( </FONT><FONT color=#0000ff size=2><FONT 
color=#0000ff size=2>int</FONT></FONT><FONT size=2> i = m_groundOverlays.size() 
- 1; i >= 0; --i ) {<BR>    </FONT><FONT color=#0000ff 
size=2><FONT color=#0000ff size=2>const</FONT></FONT><FONT size=2> 
GeoDataGroundOverlay* overlay = m_groundOverlays.at( i );</P>
<P></FONT><FONT color=#0000ff size=2><FONT color=#0000ff 
size=2>    if</FONT></FONT><FONT 
size=2>(overlay!=NULL)<BR>    
{<BR>        <FONT color=#008000>/*if the 
image file is not present, this values became 
0</FONT><BR>    <FONT color=#0000ff>    
</FONT></FONT><FONT color=#0000ff size=2><FONT color=#0000ff 
size=2>const</FONT></FONT><FONT size=2> </FONT><FONT color=#0000ff size=2><FONT 
color=#0000ff size=2>int</FONT></FONT><FONT size=2> overlayHeight = 
overlay->icon().height();<BR>    <FONT 
color=#0000ff>    </FONT></FONT><FONT color=#0000ff size=2><FONT 
color=#0000ff size=2>const</FONT></FONT><FONT size=2> </FONT><FONT color=#0000ff 
size=2><FONT color=#0000ff size=2>int</FONT></FONT><FONT size=2> overlayWidth = 
overlay->icon().width();<BR><BR>        
</FONT><FONT color=#0000ff size=2><FONT color=#0000ff 
size=2>if</FONT></FONT><FONT size=2>(overlayHeight != 0 || overlayWidth != 
0)<BR>        {<BR>    
        
groundOverlays.append(overlay);    <BR>    
    </FONT><FONT size=2>}<BR>    }<BR>}</P>
<P></FONT><FONT color=#0000ff size=2><FONT color=#0000ff 
size=2>if</FONT></FONT><FONT size=2>(groundOverlays.size()<1)</FONT><FONT 
color=#0000ff size=2><FONT color=#0000ff size=2>return</FONT></FONT><FONT 
size=2>;</P>
<P></FONT><FONT color=#008000 size=2><FONT color=#008000 size=2>/****for the 
following loop use temp groundOverlays list 
******************/</FONT></FONT></P>
<P><FONT color=#008000 size=2><FONT color=#008000 size=2>br, 
konrad</P></FONT></FONT></DIV>
<BLOCKQUOTE 
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; PADDING-RIGHT: 0px; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=draghici.adrian.b@gmail.com 
  href="mailto:draghici.adrian.b@gmail.com">Adrian Draghici</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=tgridel@free.fr 
  href="mailto:tgridel@free.fr">Thibaut Gridel</A> ; <A title=tackat@kde.org 
  href="mailto:tackat@kde.org">Torsten Rahn</A> ; <A 
  title=bbeschow@cs.tu-berlin.de href="mailto:bbeschow@cs.tu-berlin.de">Bernhard 
  Beschow</A> ; <A title=earthwings@gentoo.org 
  href="mailto:earthwings@gentoo.org">Dennis Nienhüser</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Cc:</B> <A title=marble-devel@kde.org 
  href="mailto:marble-devel@kde.org">Marble</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Tuesday, July 23, 2013 11:41 
  AM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [Marble-devel] Review 
  Request 111499: GroundOverlay Rendering</DIV>
  <DIV><BR></DIV>
  <DIV style="FONT-FAMILY: Verdana, Arial, Helvetica, Sans-Serif">
  <TABLE 
  style="BORDER-TOP: #c9c399 1px solid; BORDER-RIGHT: #c9c399 1px solid; BORDER-BOTTOM: #c9c399 1px solid; BORDER-LEFT: #c9c399 1px solid" 
  cellPadding=8 width="100%" bgColor=#f9f3c9>
    <TBODY>
    <TR>
      <TD>This is an automatically generated e-mail. To reply, visit: <A 
        href="http://git.reviewboard.kde.org/r/111499/">http://git.reviewboard.kde.org/r/111499/</A> 
      </TD></TR></TBODY></TABLE><BR>
  <TABLE 
  style="BORDER-TOP: black 1px solid; BORDER-RIGHT: black 1px solid; BACKGROUND-IMAGE: url(http://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png); BACKGROUND-REPEAT: repeat-x; BORDER-BOTTOM: black 1px solid; BACKGROUND-POSITION: left top; BORDER-LEFT: black 1px solid" 
  cellSpacing=0 cellPadding=8 width="100%" bgColor=#fefadf>
    <TBODY>
    <TR>
      <TD>
        <DIV>Review request for Marble, Bernhard Beschow, Dennis Nienhüser, 
        Torsten Rahn, and Thibaut Gridel.</DIV>
        <DIV>By Adrian Draghici.</DIV>
        <P style="COLOR: grey"><I>Updated July 23, 2013, 9:41 a.m.</I></P>
        <H1 
        style="FONT-SIZE: 10pt; COLOR: #575012; MARGIN-TOP: 1.5em">Changes</H1>
        <TABLE 
        style="BORDER-TOP: #b8b5a0 1px solid; BORDER-RIGHT: #b8b5a0 1px solid; BORDER-BOTTOM: #b8b5a0 1px solid; BORDER-LEFT: #b8b5a0 1px solid" 
        cellSpacing=0 cellPadding=10 width="100%" bgColor=#ffffff>
          <TBODY>
          <TR>
            <TD><PRE style="WORD-WRAP: break-word; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">Prevents rendering of GroundOverlays on post-colorized map themes in TextureLayer rather than MergedLayerDecorator. Adds a MacLaurin approximation for the Gudermannian function to be used for rendering in Mercator Projection.</PRE></TD></TR></TBODY></TABLE>
        <H1 
        style="FONT-SIZE: 10pt; COLOR: #575012; MARGIN-TOP: 1.5em">Description 
        </H1>
        <TABLE 
        style="BORDER-TOP: #b8b5a0 1px solid; BORDER-RIGHT: #b8b5a0 1px solid; BORDER-BOTTOM: #b8b5a0 1px solid; BORDER-LEFT: #b8b5a0 1px solid" 
        cellSpacing=0 cellPadding=10 width="100%" bgColor=#ffffff>
          <TBODY>
          <TR>
            <TD><PRE style="WORD-WRAP: break-word; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">This patch adds support for rendering GroundOverlays. A model with filtered GroundOverlays is saved in MarbleModel and used in TextureLayer, where the cache of GroundOverlays is handled. The actual rendering takes place in MergedLayerDecorator.</PRE></TD></TR></TBODY></TABLE>
        <H1 style="FONT-SIZE: 10pt; COLOR: #575012; MARGIN-TOP: 1.5em">Testing 
        </H1>
        <TABLE 
        style="BORDER-TOP: #b8b5a0 1px solid; BORDER-RIGHT: #b8b5a0 1px solid; BORDER-BOTTOM: #b8b5a0 1px solid; BORDER-LEFT: #b8b5a0 1px solid" 
        cellSpacing=0 cellPadding=10 width="100%" bgColor=#ffffff>
          <TBODY>
          <TR>
            <TD><PRE style="WORD-WRAP: break-word; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">Tested with multiple overlapping overlays, different rotation angles.</PRE></TD></TR></TBODY></TABLE>
        <H1 style="FONT-SIZE: 10pt; COLOR: #575012; MARGIN-TOP: 1.5em">Diffs</B> 
        (updated)</H1>
        <UL style="PADDING-LEFT: 0px; MARGIN-LEFT: 3em">
          <LI>src/lib/MarbleMap.cpp <SPAN style="COLOR: grey">(102ed0d)</SPAN> 
          <LI>src/lib/MarbleMath.h <SPAN style="COLOR: grey">(aeaadea)</SPAN> 
          <LI>src/lib/MarbleModel.h <SPAN style="COLOR: grey">(44a5f61)</SPAN> 
          <LI>src/lib/MarbleModel.cpp <SPAN style="COLOR: grey">(3c44f9d)</SPAN> 

          <LI>src/lib/MergedLayerDecorator.h <SPAN 
          style="COLOR: grey">(2823cfc)</SPAN> 
          <LI>src/lib/MergedLayerDecorator.cpp <SPAN 
          style="COLOR: grey">(6363d8e)</SPAN> 
          <LI>src/lib/layers/GeometryLayer.cpp <SPAN 
          style="COLOR: grey">(20fd6a7)</SPAN> 
          <LI>src/lib/layers/TextureLayer.h <SPAN 
          style="COLOR: grey">(1dbd114)</SPAN> 
          <LI>src/lib/layers/TextureLayer.cpp <SPAN 
          style="COLOR: grey">(5b9e9c9)</SPAN> </LI></UL>
        <P><A style="MARGIN-LEFT: 3em" 
        href="http://git.reviewboard.kde.org/r/111499/diff/">View 
    Diff</A></P></TD></TR></TBODY></TABLE></DIV>
  <P>
  <HR>

  <P></P>_______________________________________________<BR>Marble-devel mailing 
  list<BR>Marble-devel@kde.org<BR>https://mail.kde.org/mailman/listinfo/marble-devel<BR></BLOCKQUOTE></BODY></HTML>