|     33 	void initializeGL() override; | 
    33 	void initializeGL() override; | 
|     34 	void paintGL() override; | 
    34 	void paintGL() override; | 
|     35 Q_SIGNALS: | 
    35 Q_SIGNALS: | 
|     36 	void newStatusText(const QString& newStatusText); | 
    36 	void newStatusText(const QString& newStatusText); | 
|     37 	void selectionChanged(const QSet<ldraw::id_t>& newSelection); | 
    37 	void selectionChanged(const QSet<ldraw::id_t>& newSelection); | 
|     38 	void mouseClick(Canvas* canvas); | 
    38 	void mouseClick(Canvas* canvas, QMouseEvent* event); | 
|     39 	void mouseMove(Canvas* canvas); | 
    39 	void mouseMove(Canvas* canvas, QMouseEvent* event); | 
|     40 private: | 
    40 private: | 
|     41 	void updateGridMatrix(); | 
    41 	void updateGridMatrix(); | 
|     42 	glm::vec3 cameraVector() const; | 
    42 	glm::vec3 cameraVector() const; | 
|     43 	bool isGridPerpendicularToScreen(float threshold) const; | 
    43 	bool isGridPerpendicularToScreen(float threshold) const; | 
|     44 	std::optional<GridProgram> gridProgram; | 
    44 	std::optional<GridProgram> gridProgram; |