You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
1.9 KiB
C++
86 lines
1.9 KiB
C++
#ifndef SCENEVIEW_H
|
|
#define SCENEVIEW_H
|
|
|
|
#include <QWidget>
|
|
#include <QPainter>
|
|
#include <QWheelEvent>
|
|
#include <QApplication>
|
|
#include <QDesktopWidget>
|
|
#include <QScreen>
|
|
#include <QTimer>
|
|
|
|
#include <QDebug>
|
|
|
|
#include "sceneControl.h"
|
|
|
|
#include "SceneLayersView.h"
|
|
|
|
//using namespace SuperMap;
|
|
|
|
class SceneView : public QWidget
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit SceneView(QWidget *parent = nullptr);
|
|
|
|
virtual ~SceneView();
|
|
|
|
public:
|
|
bool showSettingFlightPoint;
|
|
|
|
bool startTrackingFlag; //开始绘制追踪
|
|
|
|
bool isEditStateFlag; //编辑状态
|
|
/*
|
|
*@cbwu
|
|
*@brief 存储显示的几何对象集合
|
|
*/
|
|
// QMap<int,QString>m_qmapDisplayGeometryID;
|
|
|
|
|
|
//method
|
|
private:
|
|
unsigned int getMouseOrKeyFlag(QMouseEvent* event);
|
|
|
|
void ReviseCursor(int SceneUserAction); //设置鼠标光标形状
|
|
|
|
// override parent
|
|
protected:
|
|
virtual void paintEvent(QPaintEvent* event);
|
|
virtual void wheelEvent(QWheelEvent* event);
|
|
virtual void mousePressEvent(QMouseEvent* event);
|
|
virtual void mouseReleaseEvent(QMouseEvent* event);
|
|
virtual void mouseMoveEvent(QMouseEvent* event);
|
|
virtual void resizeEvent(QResizeEvent* event);
|
|
virtual void keyPressEvent(QKeyEvent* event);
|
|
virtual void mouseDoubleClickEvent(QMouseEvent *event);
|
|
|
|
private:
|
|
SceneControl* m_pSceneControl;
|
|
bool isRenderTimerStarted;
|
|
QTimer* renderTimer; // 场景渲染定时器
|
|
|
|
// SceneLayersView* pSceneLayersView;
|
|
|
|
public:
|
|
SceneControl* GetSceneControl();
|
|
|
|
void startRender(int ms = 30);
|
|
|
|
void stopRender();
|
|
|
|
// SceneLayersView* getSceneLayersView();
|
|
|
|
signals:
|
|
void sendTrackedGeometry(UGGeometry* pGeometry); //发送绘制完的3D几何对象信号
|
|
void sendTrackingGeometry(UGGeometry* pGeometry);
|
|
void showSettingFlightPointDialg(); //显示航点信息信号
|
|
void showAttributeMenu(); //显示右键属性菜单
|
|
|
|
public slots:
|
|
void RenderInTimer();
|
|
|
|
};
|
|
|
|
#endif // SCENEVIEW_H
|