X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fface_position_cache.cpp;h=7a8f235fa4964a963b3265ddb28118ddabe0e0ec;hb=a5ec71f75840c3ed8da3dc266b27ee24dddb993d;hp=f57e75da9ac390add186549ba915a7d18814b1ba;hpb=77597c4ff3b666cc37dd257952938df48d7e6f09;p=dragonfireclient.git diff --git a/src/face_position_cache.cpp b/src/face_position_cache.cpp index f57e75da9..7a8f235fa 100644 --- a/src/face_position_cache.cpp +++ b/src/face_position_cache.cpp @@ -21,14 +21,14 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "threading/mutex_auto_lock.h" -UNORDERED_MAP > FacePositionCache::cache; -Mutex FacePositionCache::cache_mutex; +std::unordered_map> FacePositionCache::cache; +std::mutex FacePositionCache::cache_mutex; // Calculate the borders of a "d-radius" cube const std::vector &FacePositionCache::getFacePositions(u16 d) { MutexAutoLock lock(cache_mutex); - UNORDERED_MAP >::iterator it = cache.find(d); + std::unordered_map>::const_iterator it = cache.find(d); if (it != cache.end()) return it->second; @@ -40,39 +40,39 @@ const std::vector &FacePositionCache::generateFacePosition(u16 d) cache[d] = std::vector(); std::vector &c = cache[d]; if (d == 0) { - c.push_back(v3s16(0,0,0)); + c.emplace_back(0,0,0); return c; } if (d == 1) { // This is an optimized sequence of coordinates. - c.push_back(v3s16( 0, 1, 0)); // Top - c.push_back(v3s16( 0, 0, 1)); // Back - c.push_back(v3s16(-1, 0, 0)); // Left - c.push_back(v3s16( 1, 0, 0)); // Right - c.push_back(v3s16( 0, 0,-1)); // Front - c.push_back(v3s16( 0,-1, 0)); // Bottom + c.emplace_back(0, 1, 0); // Top + c.emplace_back(0, 0, 1); // Back + c.emplace_back(-1, 0, 0); // Left + c.emplace_back(1, 0, 0); // Right + c.emplace_back(0, 0,-1); // Front + c.emplace_back(0,-1, 0); // Bottom // 6 - c.push_back(v3s16(-1, 0, 1)); // Back left - c.push_back(v3s16( 1, 0, 1)); // Back right - c.push_back(v3s16(-1, 0,-1)); // Front left - c.push_back(v3s16( 1, 0,-1)); // Front right - c.push_back(v3s16(-1,-1, 0)); // Bottom left - c.push_back(v3s16( 1,-1, 0)); // Bottom right - c.push_back(v3s16( 0,-1, 1)); // Bottom back - c.push_back(v3s16( 0,-1,-1)); // Bottom front - c.push_back(v3s16(-1, 1, 0)); // Top left - c.push_back(v3s16( 1, 1, 0)); // Top right - c.push_back(v3s16( 0, 1, 1)); // Top back - c.push_back(v3s16( 0, 1,-1)); // Top front + c.emplace_back(-1, 0, 1); // Back left + c.emplace_back(1, 0, 1); // Back right + c.emplace_back(-1, 0,-1); // Front left + c.emplace_back(1, 0,-1); // Front right + c.emplace_back(-1,-1, 0); // Bottom left + c.emplace_back(1,-1, 0); // Bottom right + c.emplace_back(0,-1, 1); // Bottom back + c.emplace_back(0,-1,-1); // Bottom front + c.emplace_back(-1, 1, 0); // Top left + c.emplace_back(1, 1, 0); // Top right + c.emplace_back(0, 1, 1); // Top back + c.emplace_back(0, 1,-1); // Top front // 18 - c.push_back(v3s16(-1, 1, 1)); // Top back-left - c.push_back(v3s16( 1, 1, 1)); // Top back-right - c.push_back(v3s16(-1, 1,-1)); // Top front-left - c.push_back(v3s16( 1, 1,-1)); // Top front-right - c.push_back(v3s16(-1,-1, 1)); // Bottom back-left - c.push_back(v3s16( 1,-1, 1)); // Bottom back-right - c.push_back(v3s16(-1,-1,-1)); // Bottom front-left - c.push_back(v3s16( 1,-1,-1)); // Bottom front-right + c.emplace_back(-1, 1, 1); // Top back-left + c.emplace_back(1, 1, 1); // Top back-right + c.emplace_back(-1, 1,-1); // Top front-left + c.emplace_back(1, 1,-1); // Top front-right + c.emplace_back(-1,-1, 1); // Bottom back-left + c.emplace_back(1,-1, 1); // Bottom back-right + c.emplace_back(-1,-1,-1); // Bottom front-left + c.emplace_back(1,-1,-1); // Bottom front-right // 26 return c; } @@ -81,20 +81,20 @@ const std::vector &FacePositionCache::generateFacePosition(u16 d) for (s16 y = 0; y <= d - 1; y++) { // Left and right side, including borders for (s16 z =- d; z <= d; z++) { - c.push_back(v3s16( d, y, z)); - c.push_back(v3s16(-d, y, z)); + c.emplace_back(d, y, z); + c.emplace_back(-d, y, z); if (y != 0) { - c.push_back(v3s16( d, -y, z)); - c.push_back(v3s16(-d, -y, z)); + c.emplace_back(d, -y, z); + c.emplace_back(-d, -y, z); } } // Back and front side, excluding borders for (s16 x = -d + 1; x <= d - 1; x++) { - c.push_back(v3s16(x, y, d)); - c.push_back(v3s16(x, y, -d)); + c.emplace_back(x, y, d); + c.emplace_back(x, y, -d); if (y != 0) { - c.push_back(v3s16(x, -y, d)); - c.push_back(v3s16(x, -y, -d)); + c.emplace_back(x, -y, d); + c.emplace_back(x, -y, -d); } } } @@ -103,8 +103,8 @@ const std::vector &FacePositionCache::generateFacePosition(u16 d) // -d < x < d, y = +-d, -d < z < d for (s16 x = -d; x <= d; x++) for (s16 z = -d; z <= d; z++) { - c.push_back(v3s16(x, -d, z)); - c.push_back(v3s16(x, d, z)); + c.emplace_back(x, -d, z); + c.emplace_back(x, d, z); } return c; }