diff -r cd4df75924b7 -r 6ca6e8c647d4 src/ui/canvas.cpp --- a/src/ui/canvas.cpp Mon Jul 19 19:28:16 2021 +0300 +++ b/src/ui/canvas.cpp Mon Jul 19 23:41:52 2021 +0300 @@ -233,6 +233,20 @@ renderText(axis.text, *intersection); } } + for (const PreviewLayer& previewLayer : this->previewLayers) + { + painter.setBrush({previewLayer.color}); + for (const geom::NPolygon& polygon3d : previewLayer.polygons) + { + QVector points2d; + points2d.reserve(polygon3d.points.size()); + for (const glm::vec3& point : polygon3d.points) + { + points2d.push_back(this->modelToScreenCoordinates(point)); + } + painter.drawPolygon({points2d}); + } + } } } } @@ -272,3 +286,13 @@ const float dot = glm::dot(glm::normalize(this->gridPlane.normal), glm::normalize(cameraDirection)); return std::abs(dot) < threshold; } + +const Canvas::PreviewLayer& Canvas::getPreviewLayer(PreviewLayerName name) const +{ + return previewLayers[static_cast(name)]; +} + +Canvas::PreviewLayer& Canvas::modifyPreviewLayer(PreviewLayerName name) +{ + return previewLayers[static_cast(name)]; +}