150 } |
150 } |
151 if (this->worldPosition.has_value()) |
151 if (this->worldPosition.has_value()) |
152 { |
152 { |
153 QPainter painter{this}; |
153 QPainter painter{this}; |
154 painter.setRenderHint(QPainter::Antialiasing); |
154 painter.setRenderHint(QPainter::Antialiasing); |
155 painter.setPen(Qt::black); |
155 painter.setPen(this->isDark ? Qt::white : Qt::black); |
156 painter.setBrush(Qt::green); |
156 painter.setBrush(Qt::green); |
157 const QPointF pos = this->modelToScreenCoordinates(*this->worldPosition); |
157 const QPointF pos = this->modelToScreenCoordinates(*this->worldPosition); |
158 painter.drawEllipse(pos, 5, 5); |
158 painter.drawEllipse(pos, 5, 5); |
159 painter.setPen(Qt::white); |
|
160 painter.drawText(pos + QPointF{5, 5}, vectorToString(*this->worldPosition)); |
159 painter.drawText(pos + QPointF{5, 5}, vectorToString(*this->worldPosition)); |
161 } |
160 } |
162 { |
161 { |
163 QPainter painter{this}; |
162 QPainter painter{this}; |
164 painter.setRenderHint(QPainter::Antialiasing); |
163 painter.setRenderHint(QPainter::Antialiasing); |
338 return points2d; |
337 return points2d; |
339 } |
338 } |
340 |
339 |
341 void Canvas::updateCanvasRenderPreferences() |
340 void Canvas::updateCanvasRenderPreferences() |
342 { |
341 { |
|
342 this->isDark = luma(this->renderPreferences.backgroundColor) < 0.25; |
343 if (this->gridProgram.has_value()) |
343 if (this->gridProgram.has_value()) |
344 { |
344 { |
345 const bool isDark = luma(this->renderPreferences.backgroundColor) < 0.25; |
345 this->gridProgram->setGridColor(this->isDark ? Qt::white : Qt::black); |
346 this->gridProgram->setGridColor(isDark ? Qt::white : Qt::black); |
|
347 } |
346 } |
348 } |
347 } |
349 |
348 |
350 /** |
349 /** |
351 * @brief Clears the selection. |
350 * @brief Clears the selection. |