182 lines
6.6 KiB
C++
Executable File
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
|
|
|