#pragma once // qt #include // optical design #include "opticaldesign.h" class GraphicsScene : public QGraphicsScene { Q_OBJECT public: explicit GraphicsScene(QObject* parent = nullptr); ~GraphicsScene() override = default; public slots: // TODO: store design in scene? void update(OpticalDesign* design); private: QGraphicsLineItem* m_lineOfActionItem{nullptr}; QGraphicsEllipseItem* m_lenseItem{nullptr}; QGraphicsLineItem* m_opticalAxisItem{nullptr}; QGraphicsLineItem* m_laserPlaneItem{nullptr}; QGraphicsLineItem* m_desiredLaserPlaneItem{nullptr}; QGraphicsLineItem* m_reverseLaserPlaneItem{nullptr}; QGraphicsLineItem* m_desiredImagePlaneItem{nullptr}; QGraphicsLineItem* m_sensorItem{nullptr}; QGraphicsLineItem* m_actualRangeItem{nullptr}; QGraphicsPolygonItem* m_desiredRangeAreaItem{nullptr}; QGraphicsPolygonItem* m_actualRangeAreaItem{nullptr}; // debug QGraphicsEllipseItem* m_sensorLenseIntersectionItem{nullptr}; QGraphicsEllipseItem* m_lenseLaserIntersectionItem{nullptr}; };