diff -r c1ff4f107569 -r 24590af32ad6 src/ui/canvas.cpp --- a/src/ui/canvas.cpp Sat Mar 05 15:40:43 2022 +0200 +++ b/src/ui/canvas.cpp Sat Mar 05 16:57:28 2022 +0200 @@ -240,6 +240,11 @@ painter->drawPolygon(QPolygonF{this->convertWorldPointsToScreenPoints(points)}); } +Winding Canvas::worldPolygonWinding(const std::vector &points) const +{ + return geom::winding(QPolygonF{this->convertWorldPointsToScreenPoints(points)}); +} + /** * @brief Gets the current position of the cursor in the model * @return 3D vector @@ -326,7 +331,7 @@ return std::abs(dot) < threshold; } -QVector Canvas::convertWorldPointsToScreenPoints(const std::vector &worldPoints) +QVector Canvas::convertWorldPointsToScreenPoints(const std::vector &worldPoints) const { QVector points2d; points2d.reserve(worldPoints.size());