Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Viewer/SituationMap/Map/geometry_model_renderer.cpp
T
torstenandCopilot 7a6be7474e Qt6 migration: Fix BUILD_RTI=OFF build errors in TrainingAreaBase
- training_area_telegrams.cpp: Fixed QJsonObject initializer syntax (Qt6 requires {{}} not ({}))
- training_area_telegrams.cpp: Fixed fromJson() methods to access m_* members directly
- training_area_telegrams.cpp: Fixed brace mismatches in multiple toJson() methods
- training_area_telegrams.h: Changed Header struct to public members for consistency
- tx_mixin.cpp: Fixed getEquipmentNumber() template for direct member access
- lts_coordinate.cpp: Added missing #include <iomanip>
- MIGRATION_STATUS.md: Added migration progress tracking document

C++17 constraint enforced due to RTI Connext DDS 7.7.0 incompatibility with C++20+

Build status: BUILD_RTI=OFF successful (0 errors, warnings only)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-08-23 20:49:23 +02:00

182 lines
6.6 KiB
C++
Executable File

/**
* @RDE_HEADER@
* PlanModel - Renderer
* $Id$
* $HeadURL$
* $Author$
*/
#include "geometry_model_renderer.h"
#include <QtCore/QFile>
#include <QtCore/QTime>
namespace SituationMap
{
GeometryModelRenderer::GeometryModelRenderer(Map *map, const QString &layerName, GeometryModel &geoModel, QObject *parent)
: QObject(parent)
, m_stats()
, m_nodesPickable(true)
, m_enableRedraw(true)
, m_map(map)
, m_layerName(layerName)
, m_geometryModel(geoModel)
, m_logger(getLogger("GeometryModelRenderer"))
, m_loggerStats(getLogger("GeometryModelRenderer.Stats"))
{
if (!m_map)
ERROR_LOG(m_logger) << LOGFUNCTION << " undefined map";
if (m_layerName.isEmpty())
ERROR_LOG(m_logger) << LOGFUNCTION << " empty map layer name";
} // GeometryModelRenderer::GeometryModelRenderer(QWidget *parent, bool showUI)
void GeometryModelRenderer::resetStats()
{
m_stats.m_drawCount = 0;
m_stats.m_drawElementsRecursiveCount = 0;
m_stats.m_drawEllipseCount = 0;
m_stats.m_drawLineCount = 0;
m_stats.m_drawPolylineCount = 0;
m_stats.m_drawRectangleCount = 0;
m_stats.m_drawSplineCount = 0;
m_stats.m_drawSymbolCount = 0;
m_stats.m_drawTextCount = 0;
m_stats.m_drawNodeCount = 0;
m_stats.m_msEllipse = 0;
m_stats.m_msLine = 0;
m_stats.m_msPolyline = 0;
m_stats.m_msRectangle = 0;
m_stats.m_msSpline = 0;
m_stats.m_msSymbol = 0;
m_stats.m_msText = 0;
m_stats.m_msNode = 0;
m_stats.m_msEllipseMax = 0;
m_stats.m_msLineMax = 0;
m_stats.m_msPolylineMax = 0;
m_stats.m_msRectangleMax = 0;
m_stats.m_msSplineMax = 0;
m_stats.m_msSymbolMax = 0;
m_stats.m_msTextMax = 0;
m_stats.m_msNodeMax = 0;
m_stats.m_msEllipseMin = 0;
m_stats.m_msLineMin = 0;
m_stats.m_msPolylineMin = 0;
m_stats.m_msRectangleMin = 0;
m_stats.m_msSplineMin = 0;
m_stats.m_msSymbolMin = 0;
m_stats.m_msTextMin = 0;
m_stats.m_msNodeMin = 0;
} // void GeometryModelRenderer::resetStats()
void GeometryModelRenderer::printStats()
{
if (! m_loggerStats.isInfoEnabled())
return;
int sum = m_stats.m_msEllipse
+ m_stats.m_msLine
+ m_stats.m_msPolyline
+ m_stats.m_msRectangle
+ m_stats.m_msSpline
+ m_stats.m_msSymbol
+ m_stats.m_msText
+ m_stats.m_msNode;
QStringList stats;
stats.append(QStringLiteral("%1 %2 %3 %4 %5 %6")
.arg(QLatin1String("Op"), 10)
.arg(QLatin1String("Count"), 10)
.arg(QLatin1String("Total"), 10)
.arg(QLatin1String("Min"), 10)
.arg(QLatin1String("Max"), 10)
.arg(QLatin1String("Avg"), 10));
stats.append(QStringLiteral("%1 %2 %3")
.arg(QLatin1String("Draw Geometry"), 10)
.arg(m_stats.m_drawCount, 10)
.arg(sum, 10));
stats.append(QStringLiteral("%1 %2")
.arg(QLatin1String("Recursive"), 10)
.arg(m_stats.m_drawElementsRecursiveCount, 10));
stats.append(QStringLiteral("%1 %2 %3 %4 %5 %6")
.arg(QLatin1String("Ellipse"), 10)
.arg(m_stats.m_drawEllipseCount, 10)
.arg(m_stats.m_msEllipse, 10)
.arg(m_stats.m_msEllipseMin, 10)
.arg(m_stats.m_msEllipseMax, 10)
.arg((double)m_stats.m_msEllipse / (double)m_stats.m_drawEllipseCount, 10));
stats.append(QStringLiteral("%1 %2 %3 %4 %5 %6")
.arg(QLatin1String("Line"), 10)
.arg(m_stats.m_drawLineCount, 10)
.arg(m_stats.m_msLine, 10)
.arg(m_stats.m_msLineMin, 10)
.arg(m_stats.m_msLineMax, 10)
.arg((double)m_stats.m_msLine / (double)m_stats.m_drawLineCount, 10));
stats.append(QStringLiteral("%1 %2 %3 %4 %5 %6")
.arg(QLatin1String("Polyline"), 10)
.arg(m_stats.m_drawPolylineCount, 10)
.arg(m_stats.m_msPolyline, 10)
.arg(m_stats.m_msPolylineMin, 10)
.arg(m_stats.m_msPolylineMax, 10)
.arg((double)m_stats.m_msPolyline / (double)m_stats.m_drawPolylineCount, 10));
stats.append(QStringLiteral("%1 %2 %3 %4 %5 %6")
.arg(QLatin1String("Rectangle"), 10)
.arg(m_stats.m_drawRectangleCount, 10)
.arg(m_stats.m_msRectangle, 10)
.arg(m_stats.m_msRectangleMin, 10)
.arg(m_stats.m_msRectangleMax, 10)
.arg((double)m_stats.m_msRectangle / (double)m_stats.m_drawRectangleCount, 10));
stats.append(QStringLiteral("%1 %2 %3 %4 %5 %6")
.arg(QLatin1String("Spline"), 10)
.arg(m_stats.m_drawSplineCount, 10)
.arg(m_stats.m_msSpline, 10)
.arg(m_stats.m_msSplineMin, 10)
.arg(m_stats.m_msSplineMax, 10)
.arg((double)m_stats.m_msSpline / (double)m_stats.m_drawSplineCount, 10));
stats.append(QStringLiteral("%1 %2 %3 %4 %5 %6")
.arg(QLatin1String("Symbol"), 10)
.arg(m_stats.m_drawSymbolCount, 10)
.arg(m_stats.m_msSymbol, 10)
.arg(m_stats.m_msSymbolMin, 10)
.arg(m_stats.m_msSymbolMax, 10)
.arg((double)m_stats.m_msSymbol / (double)m_stats.m_drawSymbolCount, 10));
stats.append(QStringLiteral("%1 %2 %3 %4 %5 %6")
.arg(QLatin1String("Text"), 10)
.arg(m_stats.m_drawTextCount, 10)
.arg(m_stats.m_msText, 10)
.arg(m_stats.m_msTextMin, 10)
.arg(m_stats.m_msTextMax, 10)
.arg((double)m_stats.m_msText / (double)m_stats.m_drawTextCount, 10));
stats.append(QStringLiteral("%1 %2 %3 %4 %5 %6")
.arg(QLatin1String("Node"), 10)
.arg(m_stats.m_drawNodeCount, 10)
.arg(m_stats.m_msNode, 10)
.arg(m_stats.m_msNodeMin, 10)
.arg(m_stats.m_msNodeMax, 10)
.arg((double)m_stats.m_msNode / (double)m_stats.m_drawNodeCount, 10));
INFO_LOG(m_loggerStats) << "GeometryModelRenderer Timing Statistics:\n"
<< stats.join(QLatin1String("\n")).toStdString();
} // void GeometryModelRenderer::printStats()
} // namepace SituationMap