- if( (! iradarEcho->lightning) && ( lwc >= LWClevel[level]) ) {
- float dist = sgSqrt( iradarEcho->dist );
- float size = iradarEcho->radius * 2.0;
- if( dist - size > range_m )
- continue;
- dist = dist * range;
- size = size * range;
- // compute the relative angle from the view direction
- float angle = ( view_heading + iradarEcho->heading );
- if( angle > SG_PI )
- angle -= 2.0*SG_PI;
- if( angle < - SG_PI )
- angle += 2.0*SG_PI;
- // and apply a fov factor to simulate a greater scan angle
- angle = angle * fovFactor + SG_PI / 2.0;
- float x = cos( angle ) * dist;
- float y = sin( angle ) * dist;
- // use different shapes so the display is less boring
- float row = symbolSize * (float) (4 + (cloudId & 3) );
- float size_x = rot_x * size;
- float size_y = rot_y * size;
+ dist = dist * range;
+ size = size * range;
+ // compute the relative angle from the view direction
+ float angle = ( view_heading + iradarEcho->heading );
+ if ( angle > SG_PI )
+ angle -= 2.0*SG_PI;
+ if ( angle < - SG_PI )
+ angle += 2.0*SG_PI;
+ // and apply a fov factor to simulate a greater scan angle
+ angle = angle * fovFactor + SG_PI / 2.0;
+ float x = cos( angle ) * dist;
+ float y = sin( angle ) * dist;
+ // use different shapes so the display is less boring
+ float row = symbolSize * (float) (4 + (cloudId & 3) );
+ float size_x = rot_x * size;
+ float size_y = rot_y * size;
+ glTexCoord2f( col, row);
+ glVertex2f( x - size_x, y - size_y);
+ glTexCoord2f( col+symbolSize, row);
+ glVertex2f( x + size_y, y - size_x);
+ glTexCoord2f( col+symbolSize, row+symbolSize);
+ glVertex2f( x + size_x, y + size_y);
+ glTexCoord2f( col, row+symbolSize);
+ glVertex2f( x - size_y, y + size_x);
+ }
+ }
+ }
+ glEnd(); // GL_QUADS
+
+ // draw lightning echos
+ if ( drawLightning ) {
+ float col = 3 * symbolSize;
+ float row = 4 * symbolSize;
+ for (iradarEcho = radarEcho->begin() ; iradarEcho != radarEcho->end() ; iradarEcho++ ) {
+ if ( iradarEcho->lightning ) {
+ float dist = iradarEcho->dist;
+ dist = dist * range;
+ float angle = (view_heading - iradarEcho->heading);
+ if ( angle > SG_PI )
+ angle -= 2.0*SG_PI;
+ if ( angle < - SG_PI )
+ angle += 2.0*SG_PI;
+ angle = angle * fovFactor - SG_PI / 2.0;
+ float x = cos( angle ) * dist;
+ float y = sin( angle ) * dist;
+ glColor3f(1.0f, 1.0f, 1.0f);
+ float size = symbolSize * 0.5f;
+ glBegin( GL_QUADS );