INNER CODE UNIT · C++
height
symphony-of-empires/symphony-of-empires · eng3d/eng3d/borders.cpp:159
int height = border_tex->height;
int width = border_tex->width;
auto pixels = border_tex->buffer.get();
std::vector<std::vector<glm::vec3>> borders;
BorderGenerator::build_borders(borders, pixels, width, height);
// TODO FIX THIS NOT INFINITE LOOP
auto curve = std::make_unique<Eng3D::Curve>();
for(size_t i = 0; i < borders.size(); i++) {
std::vector<glm::vec3> river = borders[i];
auto length = river.size();
if(length < 2) continue;
std::vector<glm::vec3> mid_points(length + 3);
mid_points[0] = river[0];
mid_points[1] = river[0];
for(size_t j = 0; j < length - 1; j++)
mid_points[j + 2] = 0.5f * (river[j] + river[j + 1]);