#ifndef GLWIDGET_H #define GLWIDGET_H #include class QGLView; class ObjectBase; class Scene; class GLWidget : public QWidget { Q_OBJECT Q_PROPERTY (QColor backColor READ backColor WRITE setBackColor) Q_PROPERTY (qreal lineWidth READ lineWidth WRITE setLineWidth) Q_PROPERTY (qreal FOV READ FOV WRITE setFOV) Q_PROPERTY (qreal depthStart READ depthStart WRITE setDepthStart) Q_PROPERTY (qreal depthEnd READ depthEnd WRITE setDepthEnd) Q_PROPERTY (QColor ambientColor READ ambientColor WRITE setAmbientColor) Q_PROPERTY (bool grabMouse READ isGrabMouseEnabled WRITE setGrabMouseEnabled) Q_PROPERTY (bool mouseRotate READ isMouseRotateEnabled WRITE setMouseRotateEnabled) Q_PROPERTY (bool mouseSelection READ isMouseSelectionEnabled WRITE setMouseSelectionEnabled) Q_PROPERTY (bool cameraOrbit READ isCameraOrbit WRITE setCameraOrbit) Q_PROPERTY (bool hoverHalo READ isHoverHaloEnabled WRITE setHoverHaloEnabled) Q_PROPERTY (QColor hoverHaloColor READ hoverHaloColor WRITE setHoverHaloColor) Q_PROPERTY (qreal hoverHaloFillAlpha READ hoverHaloFillAlpha WRITE setHoverHaloFillAlpha) Q_PROPERTY (bool selectionHalo READ isSelectionHaloEnabled WRITE setSelectionHaloEnabled) Q_PROPERTY (QColor selectionHaloColor READ selectionHaloColor WRITE setSelectionHaloColor) Q_PROPERTY (qreal selectionHaloFillAlpha READ selectionHaloFillAlpha WRITE setSelectionHaloFillAlpha) public: explicit GLWidget(QWidget *parent = nullptr); QGLView * view() {return view_;} QColor backColor() const; qreal lineWidth() const; qreal FOV() const; qreal depthStart() const; qreal depthEnd() const; QColor ambientColor() const; bool isLightEnabled() const; bool isGrabMouseEnabled() const; bool isMouseRotateEnabled() const; bool isMouseSelectionEnabled() const; bool isCameraOrbit() const; bool isHoverHaloEnabled() const; QColor hoverHaloColor() const; qreal hoverHaloFillAlpha() const; bool isSelectionHaloEnabled() const; QColor selectionHaloColor() const; qreal selectionHaloFillAlpha() const; Scene * scene(); void addObject(ObjectBase * o); QByteArray saveCamera(); void restoreCamera(const QByteArray & ba); public slots: void stop(); void start(float freq = 60.0); void setBackColor(const QColor & c); void setLineWidth(const qreal & arg); void setFOV(const qreal & arg); void setDepthStart(const qreal & arg); void setDepthEnd(const qreal & arg); void setAmbientColor(const QColor & arg); void setLightEnabled(const bool & arg); void setGrabMouseEnabled(const bool & arg); void setMouseRotateEnabled(const bool & arg); void setMouseSelectionEnabled(const bool & arg); void setCameraOrbit(const bool & arg); void setHoverHaloEnabled(const bool & arg); void setHoverHaloColor(const QColor & arg); void setHoverHaloFillAlpha(const qreal & arg); void setSelectionHaloEnabled(const bool & arg); void setSelectionHaloColor(const QColor & arg); void setSelectionHaloFillAlpha(const qreal & arg); private slots: void viewDoubleClicked(); private: QWidget * container; QGLView * view_; QLayout * lay; signals: }; #endif // GLWIDGET_H