From 8b5fae1e73654875056fe0475527cb613b8ef330 Mon Sep 17 00:00:00 2001
From: "d.kilic" <d.kilic@fz-juelich.de>
Date: Tue, 28 Mar 2023 10:26:39 +0200
Subject: [PATCH] Resolve "Delete dead code in CoordItem"

- Delete some dead code in CoordItem
- Slightly refactor `paint`-method
---
 src/coordItem.cpp | 440 +++++++++-------------------------------------
 1 file changed, 84 insertions(+), 356 deletions(-)

diff --git a/src/coordItem.cpp b/src/coordItem.cpp
index 1a306894a..0ec31b02d 100644
--- a/src/coordItem.cpp
+++ b/src/coordItem.cpp
@@ -20,9 +20,7 @@
 
 #include "control.h"
 #include "extrCalibration.h"
-#include "logger.h"
 #include "petrack.h"
-#include "view.h"
 
 #include <QtWidgets>
 #include <cmath>
@@ -215,8 +213,8 @@ void CoordItem::updateData()
             matrix.scale(1, 1);
             setTransform(matrix);
 
-            double axeLen = mControlWidget->getCalibCoord3DAxeLen();
-            int    bS     = mMainWindow->getImageBorderSize();
+            const double axeLen = mControlWidget->getCalibCoord3DAxeLen();
+            const int    bS     = mMainWindow->getImageBorderSize();
 
             // Coordinate-system origin at (tX,tY,tZ)
             if(extCalib->isSetExtrCalib())
@@ -269,8 +267,6 @@ void CoordItem::updateData()
 
 void CoordItem::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/)
 {
-    bool debug = false;
-
     ////////////////////////////////
     // Drawing Calibration Points //
     ////////////////////////////////
@@ -318,39 +314,10 @@ void CoordItem::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*opti
                 painter->setBrush(Qt::black);
                 painter->drawText(QPointF(p2.x + 10, p2.y + font.pixelSize()), QObject::tr("%1").arg((i + 1)));
 
-                if(p2.x < calibPointsMin.x)
-                {
-                    calibPointsMin.x = p2.x;
-                }
-                if(p2.x > calibPointsMax.x)
-                {
-                    calibPointsMax.x = p2.x;
-                }
-                if(p3.x < calibPointsMin.x)
-                {
-                    calibPointsMin.x = p3.x;
-                }
-                if(p3.x > calibPointsMax.x)
-                {
-                    calibPointsMax.x = p3.x;
-                }
-
-                if(p2.y < calibPointsMin.y)
-                {
-                    calibPointsMin.y = p2.y;
-                }
-                if(p2.y > calibPointsMax.y)
-                {
-                    calibPointsMax.y = p2.y;
-                }
-                if(p3.y < calibPointsMin.y)
-                {
-                    calibPointsMin.y = p3.y;
-                }
-                if(p3.y > calibPointsMax.y)
-                {
-                    calibPointsMax.y = p3.y;
-                }
+                calibPointsMin.x = std::min({calibPointsMin.x, p2.x, p3.x});
+                calibPointsMin.y = std::min({calibPointsMin.y, p2.y, p3.y});
+                calibPointsMax.x = std::max({calibPointsMax.x, p2.x, p3.x});
+                calibPointsMax.y = std::max({calibPointsMax.y, p2.y, p3.y});
             }
         }
     }
@@ -369,63 +336,32 @@ void CoordItem::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*opti
 
             painter->setPen(QPen(QBrush(Qt::blue), 0));
 
-            static QPointF points[3];
-
             // Koordinatenachsen
-            points[0].setX(-10.);
-            points[0].setY(0.);
-            points[1].setX(100.);
-            points[1].setY(0.);
-            painter->drawLine(points[0], points[1]);
-
-            points[0].setX(0.);
-            points[0].setY(10.);
-            points[1].setX(0.);
-            points[1].setY(-100.);
-            painter->drawLine(points[0], points[1]);
+            painter->drawLine(QPoint{-10, 0}, QPoint{100, 0});
+            painter->drawLine(QPoint{0, 10}, QPoint{0, -100});
 
             // Ticks
             for(int i = 1; i < 11; i++) // i=10 zeichnen sieht ungewoehnlich aus, laeest sich aber besser mit messen
             {
-                points[0].setX(2.);
-                points[0].setY(-i * 10.);
-                points[1].setX(-2.);
-                points[1].setY(-i * 10.);
-                painter->drawLine(points[0], points[1]);
-                points[0].setX(i * 10.);
-                points[0].setY(2.);
-                points[1].setX(i * 10.);
-                points[1].setY(-2.);
-                painter->drawLine(points[0], points[1]);
+                painter->drawLine(QPoint{2, -i * 10}, QPoint{-2, -i * 10});
+                painter->drawLine(QPoint{i * 10, 2}, QPoint{i * 10, -2});
             }
 
             // Beschriftung
-            points[0].setX(97.);
-            points[0].setY(12.);
-            painter->drawText(points[0], QObject::tr("1"));
-            points[0].setX(-8.);
-            points[0].setY(-97.);
-            painter->drawText(points[0], QObject::tr("1"));
+            painter->drawText(QPoint{97, 12}, QObject::tr("1"));
+            painter->drawText(QPoint{-8, -97}, QObject::tr("1"));
 
             // Pfeilspitzen
             painter->setPen(Qt::NoPen);
             painter->setBrush(Qt::blue);
 
-            points[0].setX(100.);
-            points[0].setY(0.);
-            points[1].setX(95.);
-            points[1].setY(2.);
-            points[2].setX(95.);
-            points[2].setY(-2.);
-            painter->drawPolygon(points, 3);
-
-            points[0].setX(0.);
-            points[0].setY(-100.);
-            points[1].setX(2.);
-            points[1].setY(-95.);
-            points[2].setX(-2.);
-            points[2].setY(-95.);
-            painter->drawPolygon(points, 3);
+            QPolygon arrowTipX;
+            arrowTipX << QPoint(100, 0) << QPoint(95, 2) << QPoint(95, -2);
+            painter->drawPolygon(arrowTipX);
+
+            QPolygon arrowTipY;
+            arrowTipY << QPoint(0, -100) << QPoint(2, -95) << QPoint(-2, -95);
+            painter->drawPolygon(arrowTipY);
         }
         else
         {
@@ -435,111 +371,11 @@ void CoordItem::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*opti
 
             if(extCalib->isSetExtrCalib())
             {
-                QPointF     points[4];
-                cv::Point2f p[4];
-                QString     coordinaten;
-
-                /////////////////////////////////////////////////////
-                // Draw a cube (Quader) near coord system          //
-                /////////////////////////////////////////////////////
-
-                bool drawCube = false;
-
-                if(drawCube)
+                auto getImgPoint = [this](const cv::Point3f &realPoint)
                 {
-                    painter->setPen(Qt::green);
-                    // Boden
-                    p[0] = extCalib->getImagePoint(cv::Point3f(100, 100, 0));
-                    p[1] = extCalib->getImagePoint(cv::Point3f(200, 100, 0));
-                    painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                    p[0] = extCalib->getImagePoint(cv::Point3f(200, 100, 0));
-                    p[1] = extCalib->getImagePoint(cv::Point3f(200, 200, 0));
-                    painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                    p[0] = extCalib->getImagePoint(cv::Point3f(200, 200, 0));
-                    p[1] = extCalib->getImagePoint(cv::Point3f(100, 200, 0));
-                    painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                    p[0] = extCalib->getImagePoint(cv::Point3f(100, 200, 0));
-                    p[1] = extCalib->getImagePoint(cv::Point3f(100, 100, 0));
-                    painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                    // Seiten
-                    p[0] = extCalib->getImagePoint(cv::Point3f(100, 100, 0));
-                    p[1] = extCalib->getImagePoint(cv::Point3f(100, 100, 100));
-                    painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                    p[0] = extCalib->getImagePoint(cv::Point3f(200, 100, 0));
-                    p[1] = extCalib->getImagePoint(cv::Point3f(200, 100, 100));
-                    painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                    p[0] = extCalib->getImagePoint(cv::Point3f(100, 200, 0));
-                    p[1] = extCalib->getImagePoint(cv::Point3f(100, 200, 100));
-                    painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                    p[0] = extCalib->getImagePoint(cv::Point3f(200, 200, 0));
-                    p[1] = extCalib->getImagePoint(cv::Point3f(200, 200, 100));
-                    painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                    // Oben
-                    p[0] = extCalib->getImagePoint(cv::Point3f(100, 100, 100));
-                    p[1] = extCalib->getImagePoint(cv::Point3f(200, 100, 100));
-                    painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                    p[0] = extCalib->getImagePoint(cv::Point3f(200, 100, 100));
-                    p[1] = extCalib->getImagePoint(cv::Point3f(200, 200, 100));
-                    painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                    p[0] = extCalib->getImagePoint(cv::Point3f(200, 200, 100));
-                    p[1] = extCalib->getImagePoint(cv::Point3f(100, 200, 100));
-                    painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                    p[0] = extCalib->getImagePoint(cv::Point3f(100, 200, 100));
-                    p[1] = extCalib->getImagePoint(cv::Point3f(100, 100, 100));
-                    painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                }
-
-                /////////////////////////////////////////////////////
-                // Draw the bounding rect                          //
-                /////////////////////////////////////////////////////
-
-                bool drawBoundingRect = false;
-
-                if(drawBoundingRect)
-                {
-                    QRectF boundingBox = boundingRect();
-                    double min_x = boundingBox.x(), max_x = min_x + boundingBox.width();
-                    double min_y = boundingBox.y(), max_y = min_y + boundingBox.height();
-
-                    painter->setPen(Qt::cyan);
-                    painter->drawLine(QPointF(min_x, min_y), QPointF(min_x, max_y));
-                    painter->drawLine(QPointF(min_x, max_y), QPointF(max_x, max_y));
-                    painter->drawLine(QPointF(max_x, max_y), QPointF(max_x, min_y));
-                    painter->drawLine(QPointF(max_x, min_y), QPointF(min_x, min_y));
-                }
-
-                /////////////////////////////////////////////////////
-                // Draw a rect around the whole coordinate system //
-                /////////////////////////////////////////////////////
-
-                bool paintRectCoordArea = false;
-
-                if(paintRectCoordArea)
-                {
-                    int min_x = std::min(std::min(x.x, y.x), std::min(z.x, ursprung.x));
-                    int max_x = std::max(std::max(x.x, y.x), std::max(z.x, ursprung.x));
-
-                    int min_y = std::min(std::min(x.y, y.y), std::min(z.y, ursprung.y));
-                    int max_y = std::max(std::max(x.y, y.y), std::max(z.y, ursprung.y));
-
-                    painter->setFont(QFont("Arial", 20));
-
-                    painter->setPen(Qt::green);
-
-                    painter->drawLine(QPointF(min_x, min_y), QPointF(min_x, max_y));
-                    painter->drawLine(QPointF(min_x, max_y), QPointF(max_x, max_y));
-                    painter->drawLine(QPointF(max_x, max_y), QPointF(max_x, min_y));
-                    painter->drawLine(QPointF(max_x, min_y), QPointF(min_x, min_y));
-
-                    coordinaten = QString::asprintf("(%d, %d)", min_x, min_y);
-                    painter->drawText(QPoint(min_x - 45, min_y - 10), coordinaten);
-
-                    coordinaten = QString::asprintf("%d", max_y - min_y);
-                    painter->drawText(QPoint(min_x + 10, min_y + (max_y - min_y) / 2.0), coordinaten);
-
-                    coordinaten = QString::asprintf("%d", max_x - min_x);
-                    painter->drawText(QPoint(min_x + (max_x - min_x) / 2.0, min_y + 30), coordinaten);
-                }
+                    const auto imgPoint = extCalib->getImagePoint(realPoint);
+                    return QPointF(imgPoint.x, imgPoint.y);
+                };
 
 
                 //////////////////////////////
@@ -547,13 +383,9 @@ void CoordItem::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*opti
                 //////////////////////////////
 
                 painter->setPen(QPen(QBrush(Qt::blue), coordLineWidth));
-                p[0] = extCalib->getImagePoint(cv::Point3f(0, 0, 0));
-                p[1] = extCalib->getImagePoint(cv::Point3f(x3D.x, x3D.y, x3D.z));
-                painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                p[1] = extCalib->getImagePoint(cv::Point3f(y3D.x, y3D.y, y3D.z));
-                painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                p[1] = extCalib->getImagePoint(cv::Point3f(z3D.x, z3D.y, z3D.z));
-                painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
+                painter->drawLine(getImgPoint({0, 0, 0}), getImgPoint(x3D));
+                painter->drawLine(getImgPoint({0, 0, 0}), getImgPoint(y3D));
+                painter->drawLine(getImgPoint({0, 0, 0}), getImgPoint(z3D));
 
                 /////////////////////////////////
                 // Drawing the X,Y,Z - Symbols //
@@ -562,12 +394,13 @@ void CoordItem::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*opti
                 painter->setPen(QPen(QBrush(Qt::black), coordLineWidth));
                 painter->setFont(QFont("Arial", 15));
 
-                p[0] = extCalib->getImagePoint(cv::Point3f(x3D.x + 10, x3D.y, x3D.z));
-                painter->drawText(QPointF(p[0].x - 5, p[0].y + 5), QString("X"));
-                p[0] = extCalib->getImagePoint(cv::Point3f(y3D.x, y3D.y + 10, y3D.z));
-                painter->drawText(QPointF(p[0].x - 5, p[0].y + 5), QString("Y"));
-                p[0] = extCalib->getImagePoint(cv::Point3f(z3D.x, z3D.y, z3D.z + 10));
-                painter->drawText(QPointF(p[0].x - 5, p[0].y + 5), QString("Z"));
+                const QPointF labelOffset{-5, 5};
+                const QPointF xLabelPos = getImgPoint(x3D + cv::Point3f(10, 0, 0)) + labelOffset;
+                const QPointF yLabelPos = getImgPoint(y3D + cv::Point3f(0, 10, 0)) + labelOffset;
+                const QPointF zLabelPos = getImgPoint(z3D + cv::Point3f(0, 0, 10)) + labelOffset;
+                painter->drawText(xLabelPos, QString("X"));
+                painter->drawText(yLabelPos, QString("Y"));
+                painter->drawText(zLabelPos, QString("Z"));
 
                 //////////////////////////////
                 // Drawing the tick-markers //
@@ -582,193 +415,88 @@ void CoordItem::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*opti
                     // Solange Achsen-Ende noch nicht erreicht: Markierung zeichnen
                     if(i + tickLength < x3D.x)
                     {
-                        p[0] = extCalib->getImagePoint(cv::Point3f(i, -tickLength, 0));
-                        p[1] = extCalib->getImagePoint(cv::Point3f(i, tickLength, 0));
-                        painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                        p[0] = extCalib->getImagePoint(cv::Point3f(i, 0, -tickLength));
-                        p[1] = extCalib->getImagePoint(cv::Point3f(i, 0, tickLength));
-                        painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                        p[0] = extCalib->getImagePoint(cv::Point3f(i, 0, 0));
+                        painter->drawLine(
+                            getImgPoint(cv::Point3f(i, -tickLength, 0)), getImgPoint(cv::Point3f(i, tickLength, 0)));
+                        painter->drawLine(
+                            getImgPoint(cv::Point3f(i, 0, -tickLength)), getImgPoint(cv::Point3f(i, 0, tickLength)));
                     }
                     if(i + tickLength < y3D.y)
                     {
-                        p[0] = extCalib->getImagePoint(cv::Point3f(-tickLength, i, 0));
-                        p[1] = extCalib->getImagePoint(cv::Point3f(tickLength, i, 0));
-                        painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                        p[0] = extCalib->getImagePoint(cv::Point3f(0, i, -tickLength));
-                        p[1] = extCalib->getImagePoint(cv::Point3f(0, i, tickLength));
-                        painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
+                        painter->drawLine(
+                            getImgPoint(cv::Point3f(-tickLength, i, 0)), getImgPoint(cv::Point3f(tickLength, i, 0)));
+                        painter->drawLine(
+                            getImgPoint(cv::Point3f(0, i, -tickLength)), getImgPoint(cv::Point3f(0, i, tickLength)));
                     }
                     if(i + tickLength < z3D.z)
                     {
-                        p[0] = extCalib->getImagePoint(cv::Point3f(-tickLength, 0, i));
-                        p[1] = extCalib->getImagePoint(cv::Point3f(tickLength, 0, i));
-                        painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
-                        p[0] = extCalib->getImagePoint(cv::Point3f(0, -tickLength, i));
-                        p[1] = extCalib->getImagePoint(cv::Point3f(0, tickLength, i));
-                        painter->drawLine(QPointF(p[0].x, p[0].y), QPointF(p[1].x, p[1].y));
+                        painter->drawLine(
+                            getImgPoint(cv::Point3f(-tickLength, 0, i)), getImgPoint(cv::Point3f(tickLength, 0, i)));
+                        painter->drawLine(
+                            getImgPoint(cv::Point3f(0, -tickLength, i)), getImgPoint(cv::Point3f(0, tickLength, i)));
                     }
                 }
 
                 QFont font("Arial", tickLength * 0.5);
                 painter->setFont(font);
 
-                painter->setPen(Qt::green);
-                painter->setBrush(Qt::green);
-                painter->setFont(QFont("Arial", 20));
-
-                if(debug)
-                {
-                    coordinaten = QString::asprintf("(%.2f, %.2f)", ursprung.x, ursprung.y);
-                }
-                if(debug)
-                {
-                    painter->drawText(QPoint(ursprung.x - 100, ursprung.y), coordinaten);
-                }
-
                 //////////////////////////////////////////////
                 // Drawing the peaks at the end of the axis //
                 //////////////////////////////////////////////
 
-                int peakSize = AXIS_MARKERS_LENGTH;
+                constexpr int peakSize = AXIS_MARKERS_LENGTH;
+                painter->setPen(QPen(QBrush(Qt::blue), coordLineWidth));
+                painter->setBrush(Qt::NoBrush); // don't fill polygons
 
                 ///////
                 // X //
                 ///////
 
-                p[0]      = extCalib->getImagePoint(cv::Point3f(x3D.x, 0, 0));
-                p[1]      = extCalib->getImagePoint(cv::Point3f(x3D.x - peakSize, -peakSize, 0));
-                p[2]      = extCalib->getImagePoint(cv::Point3f(x3D.x - peakSize, peakSize, 0));
-                points[0] = QPointF(p[0].x, p[0].y);
-                points[1] = QPointF(p[1].x, p[1].y);
-                points[2] = QPointF(p[2].x, p[2].y);
-                painter->setPen(Qt::green);
-                painter->setPen(QPen(QBrush(Qt::blue), coordLineWidth));
-                painter->drawLine(points[0], points[1]);
-                painter->drawLine(points[0], points[2]);
-                painter->drawLine(points[2], points[1]);
-                p[0]      = extCalib->getImagePoint(cv::Point3f(x3D.x, 0, 0));
-                p[1]      = extCalib->getImagePoint(cv::Point3f(x3D.x - peakSize, 0, -peakSize));
-                p[2]      = extCalib->getImagePoint(cv::Point3f(x3D.x - peakSize, 0, peakSize));
-                p[3]      = extCalib->getImagePoint(cv::Point3f(x3D.x + peakSize, 0, 0));
-                points[0] = QPointF(p[0].x, p[0].y);
-                points[1] = QPointF(p[1].x, p[1].y);
-                points[2] = QPointF(p[2].x, p[2].y);
-                painter->setPen(Qt::green);
-                painter->setPen(QPen(QBrush(Qt::blue), coordLineWidth));
-                painter->drawLine(points[0], points[1]);
-                painter->drawLine(points[0], points[2]);
-                painter->drawLine(points[2], points[1]);
-
-                if(debug)
-                {
-                    coordinaten = QString::asprintf("(% .2f, % .2f)", p[1].x, p[1].y);
-                }
-                if(debug)
-                {
-                    painter->drawText(QPoint(p[3].x, p[3].y), coordinaten);
-                }
-
-                if(debug)
-                {
-                    coordinaten = QString::fromLatin1("X");
-                }
-                if(debug)
-                {
-                    painter->drawText(QPoint(p[1].x, p[1].y), coordinaten);
-                }
+                /* clang-format off */
+                QPolygonF arrowTipX1;
+                arrowTipX1 << getImgPoint({x3D.x, 0, 0})
+                           << getImgPoint({x3D.x - peakSize, -peakSize, 0})
+                           << getImgPoint({x3D.x - peakSize, peakSize, 0});
+                QPolygonF arrowTipX2;
+                arrowTipX2 << getImgPoint({x3D.x, 0, 0})
+                           << getImgPoint({x3D.x - peakSize, 0, -peakSize})
+                           << getImgPoint({x3D.x - peakSize, 0, peakSize});
+                /* clang-format on */
+                painter->drawPolygon(arrowTipX1);
+                painter->drawPolygon(arrowTipX2);
 
                 ///////
                 // Y //
                 ///////
 
-                p[0]      = extCalib->getImagePoint(cv::Point3f(0, y3D.y, 0));
-                p[1]      = extCalib->getImagePoint(cv::Point3f(-peakSize, y3D.y - peakSize, 0));
-                p[2]      = extCalib->getImagePoint(cv::Point3f(peakSize, y3D.y - peakSize, 0));
-                points[0] = QPointF(p[0].x, p[0].y);
-                points[1] = QPointF(p[1].x, p[1].y);
-                points[2] = QPointF(p[2].x, p[2].y);
-                painter->setPen(Qt::green);
-                painter->setPen(QPen(QBrush(Qt::blue), coordLineWidth));
-                painter->drawLine(points[0], points[1]);
-                painter->drawLine(points[0], points[2]);
-                painter->drawLine(points[2], points[1]);
-                p[0]      = extCalib->getImagePoint(cv::Point3f(0, y3D.y, 0));
-                p[1]      = extCalib->getImagePoint(cv::Point3f(0, y3D.y - peakSize, -peakSize));
-                p[2]      = extCalib->getImagePoint(cv::Point3f(0, y3D.y - peakSize, peakSize));
-                p[3]      = extCalib->getImagePoint(cv::Point3f(0, y3D.y + peakSize, 0));
-                points[0] = QPointF(p[0].x, p[0].y);
-                points[1] = QPointF(p[1].x, p[1].y);
-                points[2] = QPointF(p[2].x, p[2].y);
-                painter->setPen(Qt::green);
-                painter->setPen(QPen(QBrush(Qt::blue), coordLineWidth));
-                painter->drawLine(points[0], points[1]);
-                painter->drawLine(points[0], points[2]);
-                painter->drawLine(points[2], points[1]);
-
-                if(debug)
-                {
-                    coordinaten = QString::asprintf("(%.2f, %.2f)", p[1].x, p[1].y);
-                }
-                if(debug)
-                {
-                    painter->drawText(QPoint(p[3].x, p[3].y), coordinaten);
-                }
-
-                if(debug)
-                {
-                    coordinaten = QString::fromLatin1("Y");
-                }
-                if(debug)
-                {
-                    painter->drawText(QPoint(p[1].x, p[1].y), coordinaten);
-                }
+                /* clang-format off */
+                QPolygonF arrowTipY1;
+                arrowTipY1 << getImgPoint({0, y3D.y, 0})
+                           << getImgPoint({-peakSize, y3D.y - peakSize, 0})
+                           << getImgPoint({peakSize, y3D.y - peakSize, 0});
+                QPolygonF arrowTipY2;
+                arrowTipY2 << getImgPoint({0, y3D.y, 0})
+                           << getImgPoint({0, y3D.y - peakSize, -peakSize})
+                           << getImgPoint({0, y3D.y - peakSize, peakSize});
+                /* clang-format on */
+                painter->drawPolygon(arrowTipY1);
+                painter->drawPolygon(arrowTipY2);
 
                 ///////
                 // Z //
                 ///////
 
-                p[0]      = extCalib->getImagePoint(cv::Point3f(0, 0, z3D.z));
-                p[1]      = extCalib->getImagePoint(cv::Point3f(0, -peakSize, z3D.z - peakSize));
-                p[2]      = extCalib->getImagePoint(cv::Point3f(0, peakSize, z3D.z - peakSize));
-                points[0] = QPointF(p[0].x, p[0].y);
-                points[1] = QPointF(p[1].x, p[1].y);
-                points[2] = QPointF(p[2].x, p[2].y);
-                painter->setPen(Qt::green);
-                painter->setPen(QPen(QBrush(Qt::blue), coordLineWidth));
-                painter->drawLine(points[0], points[1]);
-                painter->drawLine(points[0], points[2]);
-                painter->drawLine(points[2], points[1]);
-                p[0]      = extCalib->getImagePoint(cv::Point3f(0, 0, z3D.z));
-                p[1]      = extCalib->getImagePoint(cv::Point3f(-peakSize, 0, z3D.z - peakSize));
-                p[2]      = extCalib->getImagePoint(cv::Point3f(peakSize, 0, z3D.z - peakSize));
-                p[3]      = extCalib->getImagePoint(cv::Point3f(0, 0, z3D.z + peakSize));
-                points[0] = QPointF(p[0].x, p[0].y);
-                points[1] = QPointF(p[1].x, p[1].y);
-                points[2] = QPointF(p[2].x, p[2].y);
-                painter->setPen(Qt::green);
-                painter->setPen(QPen(QBrush(Qt::blue), coordLineWidth));
-                painter->drawLine(points[0], points[1]);
-                painter->drawLine(points[0], points[2]);
-                painter->drawLine(points[2], points[1]);
-
-                if(debug)
-                {
-                    coordinaten = QString::asprintf("(%.2f, %.2f)", p[1].x, p[1].y);
-                }
-                if(debug)
-                {
-                    painter->drawText(QPoint(p[3].x, p[3].y), coordinaten);
-                }
-
-                if(debug)
-                {
-                    coordinaten = QString::fromLatin1("Z");
-                }
-                if(debug)
-                {
-                    painter->drawText(QPoint(p[1].x, p[1].y), coordinaten);
-                }
+                /* clang-format off */
+                QPolygonF arrowTipZ1;
+                arrowTipZ1 << getImgPoint({0, 0, z3D.z})
+                           << getImgPoint({0, -peakSize, z3D.z - peakSize})
+                           << getImgPoint({0, peakSize, z3D.z - peakSize});
+                QPolygonF arrowTipZ2;
+                arrowTipZ2 << getImgPoint({0, 0, z3D.z})
+                           << getImgPoint({-peakSize, 0, z3D.z - peakSize})
+                           << getImgPoint({peakSize, 0, z3D.z - peakSize});
+                /* clang-format on */
+                painter->drawPolygon(arrowTipZ1);
+                painter->drawPolygon(arrowTipZ2);
             }
         }
     }
-- 
GitLab