bool tarch::plotter::griddata::regular::CartesianGridArrayWriter::containsVertex(
  const tarch::la::Vector<2,double>& x
) const {
  tarch::la::Vector<3,double> x3D;
  x3D(0) = x(0);
  x3D(1) = x(1);
  x3D(2) = 0.0;
  return containsVertex(x3D);
}
void CFlightVisualiser::drawCords(QPainter& painter, const QRect& fieldLimit)
{
    Point3D zero3D(0, 0, 0), x3D(100, 0, 0), y3D(0, 100, 0), z3D(0, 0, 100);
    Point2D zeroPoint = getScreenPoint(zero3D, fieldLimit);
    Point2D x = getScreenPoint(x3D, fieldLimit);
    Point2D y = getScreenPoint(y3D, fieldLimit);
    Point2D z = getScreenPoint(z3D, fieldLimit);
    painter.setPen(QPen(QColor(), 1));

    painter.drawLine(QPointF(zeroPoint), QPointF(x));
    painter.drawText(QRectF(QPointF(x), QPointF(x.X() + 20, x.Y() + 20)), "X");

    painter.drawLine(QPointF(zeroPoint), QPointF(y));
    painter.drawText(QRectF(QPointF(y), QPointF(y.X() + 20, y.Y() + 20)), "Y");

    painter.drawLine(QPointF(zeroPoint), QPointF(z));
    painter.drawText(QRectF(QPointF(z), QPointF(z.X() + 20, z.Y() + 20)), "Z");

    painter.setPen(Qt::SolidLine);


    const int distance = 1;
    std::vector<QPoint> frameVec = {QPoint(distance, distance), QPoint(distance, this->height() - distance),
                                    QPoint(distance, this->height() - distance), QPoint(this->width() - distance, this->height() - distance),
                                    QPoint(this->width() - distance, this->height() - distance), QPoint(this->width() - distance, distance),
                                    QPoint(this->width() - distance, distance), QPoint(distance, distance)};
    QVector<QPoint> frameCords;
    for(const auto& p: frameVec)
    {
        frameCords.push_back(p);
    }

    painter.drawLines(frameCords);

    Rectangle3D max3dRect = getMaximumRect();

    float xPosStart = max3dRect.minX;
    float yPosStart = max3dRect.minY;

    float xPosEnd = max3dRect.maxX;
    float yPosEnd = max3dRect.maxY;



    float xPos = xPosStart;
    float yPos = yPosStart;
    for(int i = 0; i < 11; ++i)
    {
        Point2D curXMinYWebPoint = getScreenPoint(Point3D(xPos, yPosStart, 0), fieldLimit);
        Point2D curXMaxYWebPoint = getScreenPoint(Point3D(xPos, yPosEnd, 0), fieldLimit);

        Point2D minXCurYWebPoint = getScreenPoint(Point3D(xPosStart, yPos, 0), fieldLimit);
        Point2D maxXCurYWebPoint = getScreenPoint(Point3D(xPosEnd, yPos, 0), fieldLimit);


        painter.drawLine(QPointF(curXMinYWebPoint.X(), curXMinYWebPoint.Y()), QPointF(curXMaxYWebPoint.X(), curXMaxYWebPoint.Y())); //x
        painter.drawLine(QPointF(minXCurYWebPoint.X(), minXCurYWebPoint.Y()), QPointF(maxXCurYWebPoint.X(), maxXCurYWebPoint.Y()));
        xPos += (xPosEnd - xPosStart) / 10;
        yPos += (yPosEnd - yPosStart) / 10;
    }
}