diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-02-14 23:53:46 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-02-15 00:06:27 +0000 |
commit | f26559dcd25b649d37a1a30e087b70b95f530954 (patch) | |
tree | 4874868c9bbee81618343cee6a03f0e135d34f3d /game/geoData.cpp | |
parent | Use new helpers to simplify close entity search in GeoData::setPoint (diff) | |
download | ilt-f26559dcd25b649d37a1a30e087b70b95f530954.tar.bz2 ilt-f26559dcd25b649d37a1a30e087b70b95f530954.tar.xz ilt-f26559dcd25b649d37a1a30e087b70b95f530954.zip |
Range adaptor to make triangle strip triples
Diffstat (limited to 'game/geoData.cpp')
-rw-r--r-- | game/geoData.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/game/geoData.cpp b/game/geoData.cpp index 552d2ba..cfaf44b 100644 --- a/game/geoData.cpp +++ b/game/geoData.cpp @@ -344,12 +344,10 @@ GeoData::setHeights(const std::span<const GlobalPosition3D> triangleStrip, const std::ranges::for_each(newVerts, addVertexForNormalUpdate); // Create temporary triangles from triangleStrip - std::vector<Triangle<3>> strip; - std::transform( - strip_begin(triangleStrip), strip_end(triangleStrip), std::back_inserter(strip), [](const auto & newVert) { - const auto [a, b, c] = newVert; - return Triangle<3> {a, b, c}; - }); + const auto strip + = materializeRange(triangleStrip | TriangleTriples | std::views::transform([](const auto & newVert) { + return std::make_from_tuple<Triangle<3>>(*newVert); + })); auto getTriangle = [&strip](const auto point) -> const Triangle<3> * { if (const auto t = std::ranges::find_if(strip, [point](const auto & triangle) { |