Files
qt5-legatus-legacy/Lts/Viewer/SituationMap/Map/geometry_model_renderer.cpp
T
2026-08-13 18:33:10 +02:00

182 lines
6.6 KiB
C++
Executable File

/**
* @RDE_HEADER@
* PlanModel - Renderer
* $Id$
* $HeadURL$
* $Author$
*/
#include "geometry_model_renderer.h"
#include <QFile>
#include <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