#pragma once // #include #include #include "scene/OEScene.h" #include "scene/ScaleBarHandler.h" class QMouseEvent; class QWheelEvent; class QKeyEvent; class QInputEvent; class QResizeEvent; class QtOsgViewWidget : public QWidget, public ScaleBarHandler::Delegate { Q_OBJECT public: explicit QtOsgViewWidget(QWidget* parent = nullptr); ~QtOsgViewWidget() override; //void setKeyboardModifiers(QInputEvent* event) override; QPaintEngine* paintEngine() const override { return nullptr; } void OnComputeScale() override; void Initialize(void); void Uninitialize(void); void LoadDefaultScene(void); void OnLoadDyt(const QString& path); //void setKeyboardModifiers(QInputEvent* event); signals: void signalResetWorkSpace(); void signalScaleInfo(const QString&); protected: void keyPressEvent(QKeyEvent* event) override; void keyReleaseEvent(QKeyEvent* event) override; //void InitEventHandle(Core::ICameraManipulator* pCameraMainp, Core::IView* pView); void resizeEvent(QResizeEvent* event) override; private: class OsgView* view_{ nullptr }; osg::ref_ptr activeScene_; class WorkSpace* workspace_{ nullptr }; ScaleBarHandler::Delegate::Units scaleUnits_{ ScaleBarHandler::Delegate::Units::UNITS_METERS }; float devicePixelRatio_{ 1.0f }; };