/** * Renders lower symbology (track lines, bearing, etc) * @param canvas * @param rc */ void MapWindow::RenderSymbology_lower(Canvas &canvas, const RECT &rc) { if (Basic().gps.Connected) // TODO enhancement: don't draw offtrack indicator if showing spot heights DrawBestCruiseTrack(canvas); DrawAirspaceIntersections(canvas); }
void MapWindow::Render(Canvas &canvas, const PixelRect &rc) { render_projection = visible_projection; // Calculate screen position of the aircraft const RasterPoint aircraft_pos = render_projection.GeoToScreen(Basic().Location); // reset label over-write preventer label_block.reset(); // Render terrain, groundline and topography RenderTerrain(canvas); RenderTopography(canvas); RenderFinalGlideShading(canvas); // Render track bearing (ground track) DrawTrackBearing(canvas, aircraft_pos); // Render airspace RenderAirspace(canvas); // Render task, waypoints DrawTask(canvas); DrawWaypoints(canvas); // Render weather/terrain max/min values if (!m_background.DrawSpotHeights(canvas, label_block)) DrawTaskOffTrackIndicator(canvas); // Render the snail trail RenderTrail(canvas, aircraft_pos); RenderMarks(canvas); // Render estimate of thermal location DrawThermalEstimate(canvas); // Render topography on top of airspace, to keep the text readable RenderTopographyLabels(canvas); // Render glide through terrain range RenderGlide(canvas); DrawBestCruiseTrack(canvas, aircraft_pos); DrawAirspaceIntersections(canvas); // Draw wind vector at aircraft DrawWind(canvas, aircraft_pos, rc); // Draw traffic DrawTeammate(canvas); DrawFLARMTraffic(canvas, aircraft_pos); // Finally, draw you! if (Basic().Connected) Graphics::DrawAircraft(canvas, settings_map, Calculated().Heading - render_projection.GetScreenAngle(), aircraft_pos); // Render compass DrawCompass(canvas, rc); }