これがループです。基本的に、円の円周に沿って一定数の点を生成します。ポイント配列は明らかに定数であり、コンパイル時に計算できますが、それをconstexprに巻き上げる方法がわかりません。
#include <array>
#include <cmath>
template <std::size_t Len>
class Circle {
public:
Circle() {
for (int i = 0; i < Len; i++) {
float x = (float)std::cos(2 * M_PI * i / (Len - 1));
float y = (float)std::sin(2 * M_PI * i / (Len - 1));
points[i * 3] = x;
points[i * 3 + 1] = y;
points[i * 3 + 2] = 0;
}
}
private:
std::array<float, Len * 3> points;
};