105 connect(this, &PartRenderer::modelMatrixChanged, |
105 connect(this, &PartRenderer::modelMatrixChanged, |
106 program, &AbstractBasicShaderProgram::setModelMatrix); |
106 program, &AbstractBasicShaderProgram::setModelMatrix); |
107 connect(this, &PartRenderer::viewMatrixChanged, |
107 connect(this, &PartRenderer::viewMatrixChanged, |
108 program, &AbstractBasicShaderProgram::setViewMatrix); |
108 program, &AbstractBasicShaderProgram::setViewMatrix); |
109 } |
109 } |
110 connect(this, &PartRenderer::renderPreferencesChanged, [&]() |
110 connect(this, &PartRenderer::renderPreferencesChanged, this, &Canvas::updateCanvasRenderPreferences); |
111 { |
|
112 if (this->gridProgram.has_value()) |
|
113 { |
|
114 const bool isDark = luma(this->renderPreferences.backgroundColor) < 0.25; |
|
115 this->gridProgram->setGridColor(isDark ? Qt::white : Qt::black); |
|
116 } |
|
117 }); |
|
118 PartRenderer::initializeGL(); |
111 PartRenderer::initializeGL(); |
119 // Set up XZ grid matrix |
112 // Set up XZ grid matrix |
120 this->setGridMatrix({{1, 0, 0, 0}, {0, 0, 1, 0}, {0, 1, 0, 0}, {0, 0, 0, 1}}); |
113 this->setGridMatrix({{1, 0, 0, 0}, {0, 0, 1, 0}, {0, 1, 0, 0}, {0, 0, 0, 1}}); |
|
114 this->updateCanvasRenderPreferences(); |
121 } |
115 } |
122 |
116 |
123 void Canvas::paintGL() |
117 void Canvas::paintGL() |
124 { |
118 { |
125 PartRenderer::paintGL(); |
119 PartRenderer::paintGL(); |
342 points2d.push_back(this->modelToScreenCoordinates(point)); |
336 points2d.push_back(this->modelToScreenCoordinates(point)); |
343 } |
337 } |
344 return points2d; |
338 return points2d; |
345 } |
339 } |
346 |
340 |
|
341 void Canvas::updateCanvasRenderPreferences() |
|
342 { |
|
343 if (this->gridProgram.has_value()) |
|
344 { |
|
345 const bool isDark = luma(this->renderPreferences.backgroundColor) < 0.25; |
|
346 this->gridProgram->setGridColor(isDark ? Qt::white : Qt::black); |
|
347 } |
|
348 } |
|
349 |
347 /** |
350 /** |
348 * @brief Clears the selection. |
351 * @brief Clears the selection. |
349 */ |
352 */ |
350 void Canvas::clearSelection() |
353 void Canvas::clearSelection() |
351 { |
354 { |