Skip to content
QMap3DWidget.h 1.23 KiB
Newer Older
lm's avatar
lm committed
#ifndef QMAP3DWIDGET_H
#define QMAP3DWIDGET_H

pixhawk's avatar
pixhawk committed
#include <QLabel>

lm's avatar
lm committed
#include "Q3DWidget.h"

lm's avatar
lm committed
class UASInterface;

class QMap3DWidget : public Q3DWidget
{
    Q_OBJECT

public:
    explicit QMap3DWidget(QWidget* parent);
    ~QMap3DWidget();

    void buildLayout(void);
lm's avatar
lm committed
    static void display(void* clientData);
    void displayHandler(void);

    static void timer(void* clientData);
    void timerHandler(void);

    double getTime(void) const;

public slots:
    void setActiveUAS(UASInterface* uas);

private slots:
    void showGrid(int state);
    void showTrail(int state);
    void recenterCamera(void);
    void toggleLockCamera(int state);

lm's avatar
lm committed
protected:
    UASInterface* uas;
    void paintText(QString text, QColor color, float fontSize, float refX, float refY, QPainter* painter);
lm's avatar
lm committed

private:
    void drawPlatform(float roll, float pitch, float yaw);
    void drawGrid(void);
    void drawTrail(float x, float y, float z);

lm's avatar
lm committed
    double lastRedrawTime;

    bool displayGrid;
    bool displayTrail;
    bool lockCamera;

    typedef struct
    {
        float x;
        float y;
        float z;
    } Pose3D;
    QVarLengthArray<Pose3D, 10000> trail;

lm's avatar
lm committed
    QScopedPointer<CheetahModel> cheetahModel;
lm's avatar
lm committed
};

#endif // QMAP3DWIDGET_H