Files
qt5-legatus-legacy/Lts/Common/LtsWidgets/lts_height_plot_widget.h
T
2026-08-13 18:33:10 +02:00

98 lines
2.4 KiB
C++
Executable File

/**
* @RDE_HEADER@
* Widget that visualizes the topography of a bunch of points along a rubberband
* $Id$
* $HeadURL$
* $Author$
* Created by Malte Schroeder, NLSE, 2018-03-07
*/
#pragma once
#include <QWidget>
#include <QtCore/QVector>
#include <QtCore/QPointF>
#include <QtCore/QPair>
#include "lts_widgets_export.h"
class LTSWIDGETS_EXPORT LtsHeightPlotWidget final : public QWidget
{
Q_OBJECT
public:
explicit LtsHeightPlotWidget(QWidget *parent = nullptr);
virtual ~LtsHeightPlotWidget();
void clearView();
/**
* Set the data in the form
* QPoint - x/y values
* double - height values
* @param data the height data to display
*/
void setData(const QVector<QPair<QPointF, double> > &data);
/**
* Set the markers to show
* QPoint - x/y values
* @param data the markers to display
*/
void setMarks(const QVector<QPointF> &data);
/**
* Set the background of the widget
*/
void setBackgroundBrush(const QBrush &brush);
/**
* Set the font for the axis labels
*/
void setTextFont(const QFont &f);
/**
* Set the pen used for the axis lines
*/
void setAxisPen(const QPen &pen);
/**
* Set the pen for the position marker
*/
void setPositionPen(const QPen &pen);
/**
* Set the pen for the viewline
*/
void setViewLinePen(const QPen &pen);
/**
* Set the brush for the contour (+ fill)
*/
void setContourBrush(const QBrush &brush);
/**
* Set the pen for the markers
*/
void setMarkerPen(const QPen &pen);
Q_SIGNALS:
/**
* The current mouse position has changed.
* @param curPoint the current point (in map coordinates) of the mouse
* @param curHeight the current height at the given point
* @param mouseHeight the current height at the current mouse point (>= curHeight)
*/
void mousePositionChanged(const QPointF &curPoint, double curHeight, double mouseHeight);
/**
* A line of sight has started. This signal can emitted more than once
* wich means that the old line of sight was stopped
* @param startPoint the startpoint (in map coordinates) of the line
*/
void startLineOfSight(const QPointF &startPoint);
/**
* A line of sight has stopped
*/
void stopLineOfSight();
protected:
void resizeEvent(QResizeEvent *e) override;
void paintEvent(QPaintEvent *e) override;
void mouseMoveEvent(QMouseEvent *e) override;
void mouseReleaseEvent(QMouseEvent *e) override;
class Private;
Private *const d;
};