What kills performances is probably the call to update(), which recomputes the shape's geometry, for each new point, while it could be done once at the end. Instead of a setPoints function, we should probably do lazy updates (like in other classes).
In the meantime, you can easily work around this problem: look at sf::ConvexShape, it is made of 7 lines of code so I think you can create your own shape class based on it, with the optimizations that you need